Kubeflow без Google Cloud Storage - PullRequest
1 голос
/ 06 апреля 2020

Можно ли заменить использование контейнеров Google Cloud Storage альтернативным локальным решением, чтобы можно было запускать, например, конвейеры Kubeflow, полностью независимые от Google Cloud Platform?

1 Ответ

0 голосов
/ 25 апреля 2020

Да, это возможно. Вы можете использовать minio , он похож на s3 / gs, но работает на постоянном томе вашего локального хранилища.

Ниже приведены инструкции по его использованию в качестве хранилища логических выводов kfserving. :

Проверьте, запущен ли minio в вашей установке kubeflow:

$ kubectl get svc -n kubeflow |grep minio
minio-service                                  ClusterIP   10.101.143.255   <none>        9000/TCP            81d

Включите туннель для вашего minio:

$ 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
...