Я развернул сборку mlflow в модуле в моем кластере kubernetes. Я могу портировать вперед на интерфейс mlflow, и теперь я пытаюсь проверить это. Для этого я запускаю следующий тест на ноутбуке Jupyter, который работает на другом модуле в том же кластере.
import mlflow
print("Setting Tracking Server")
tracking_uri = "http://mlflow-tracking-server.default.svc.cluster.local:5000"
mlflow.set_tracking_uri(tracking_uri)
print("Logging Artifact")
mlflow.log_artifact('/home/test/mlflow-example-artifact.png')
print("DONE")
Когда я запускаю это, я получаю
ConnectionError: HTTPConnectionPool(host='mlflow-tracking-server.default.svc.cluster.local', port=5000): Max retries exceeded with url: /api/2.0/mlflow/runs/get? (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object>: Failed to establish a new connection: [Errno 111] Connection refused'))
Способ развертывания модуля mlflow показан ниже в yaml и docker:
Yaml:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mlflow-tracking-server
namespace: default
spec:
selector:
matchLabels:
app: mlflow-tracking-server
replicas: 1
template:
metadata:
labels:
app: mlflow-tracking-server
spec:
containers:
- name: mlflow-tracking-server
image: <ECR_IMAGE>
ports:
- containerPort: 5000
env:
- name: AWS_MLFLOW_BUCKET
value: <S3_BUCKET>
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: aws-secret
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: aws-secret
key: AWS_SECRET_ACCESS_KEY
---
apiVersion: v1
kind: Service
metadata:
name: mlflow-tracking-server
namespace: default
labels:
app: mlflow-tracking-server
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
spec:
externalTrafficPolicy: Local
type: LoadBalancer
selector:
app: mlflow-tracking-server
ports:
- name: http
port: 5000
targetPort: http
Пока dockerfile вызывает скрипт, который выполняет команду mlflow server: mlflow server --default-artifact-root ${AWS_MLFLOW_BUCKET} --host 0.0.0.0 --port 5000
Проблема заключается в том, что я не могу подключиться к службе, которую создал, используя этот модуль mlflow. Я попытался использовать отслеживание uri http://mlflow-tracking-server.default.svc.cluster.local:5000
, я попытался использовать службу EXTERNAL-IP: 5000, но все, что я пробовал, не может подключиться и войти в систему с помощью службы. Есть ли что-то, что я упустил при развертывании моего модуля mlflow server в моем кластере kubernetes?