Kubeflow без Google Cloud Storage
Можно ли заменить использование сегментов Google Cloud Storage альтернативным локальным решением, чтобы можно было запускать, например, Kubeflow Pipelines полностью независимо от Google Cloud Platform?
1 ответ
Да, это возможно. Вы можете использовать minio, это похоже на s3/gs, но он работает на постоянном томе вашего локального хранилища.
Вот инструкции о том, как использовать его в качестве хранилища выводов kfserving:
Убедитесь, что minio работает в вашей установке kubeflow:
$ kubectl get svc -n kubeflow |grep minio
minio-service ClusterIP 10.101.143.255 <none> 9000/TCP 81d
Включите туннель для вашего мини-видео:
$ kubectl port-forward svc/minio-service -n kubeflow 9000:9000
Forwarding from 127.0.0.1:9000 -> 9000
Forwarding from [::1]:9000 -> 9000
Просмотрите http://localhost:9000/, чтобы перейти к пользовательскому интерфейсу minio и создать корзину / загрузить свою модель. Полномочияminio/minio123
. В качестве альтернативы вы можете использоватьmc
команда, чтобы сделать это с вашего терминала:
$ mc ls minio/models/flowers/0001/
[2020-03-26 13:16:57 CET] 1.7MiB saved_model.pb
[2020-04-25 13:37:09 CEST] 0B variables/
Создайте секретную и служебную учетную запись для доступа minio, обратите внимание, что конечная точка s3 определяет путь к minio, keyid и acceskey - это учетные данные, закодированные в base64:
$ kubectl get secret mysecret -n homelab -o yaml
apiVersion: v1
data:
awsAccessKeyID: bWluaW8=
awsSecretAccessKey: bWluaW8xMjM=
kind: Secret
metadata:
annotations:
serving.kubeflow.org/s3-endpoint: minio-service.kubeflow:9000
serving.kubeflow.org/s3-usehttps: "0"
name: mysecret
namespace: homelab
$ kubectl get serviceAccount -n homelab sa -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: sa
namespace: homelab
secrets:
- name: mysecret
Наконец, создайте свой inferenceservice
следующее:
$ kubectl get inferenceservice tensorflow-flowers -n homelab -o yaml
apiVersion: serving.kubeflow.org/v1alpha2
kind: InferenceService
metadata:
name: tensorflow-flowers
namespace: homelab
spec:
default:
predictor:
serviceAccountName: sa
tensorflow:
storageUri: s3://models/flowers