kubernetes - 没有 Google Cloud Storage 的 Kubeflow
问题描述
是否可以用替代的本地解决方案替换 Google Cloud Storage 存储桶的使用,以便可以完全独立于 Google Cloud Platform 运行例如 Kubeflow Pipelines?
解决方案
对的,这是可能的。您可以使用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 UI 并创建一个存储桶/上传您的模型。凭证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访问创建一个secret&serviceaccount,注意s3-endpoint定义了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
推荐阅读
- vba - Microsoft Access VBA,compact n 修复,数据库损坏
- c++ - 无法在 docker 容器中打开目录运行代码
- reactjs - 如何避免 React Hook UseState 共享状态?
- mysql - 如何在 MySQL 中选择与 MAX 值列相关的 DATE
- android-studio - 如何将项目添加到文本保持操作的下拉菜单
- java - Creating dynamic query using jpa criteria
- c# - 如何在c#中使用字典来比较两个列表
- excel - 将多个单元格中的值添加到列表框并取回第一个选定的值
- bootstrap-4 - 有没有办法设置引导下拉菜单何时变为下拉菜单?
- google-maps - 为什么我无法在 Google Cloud 中点击“启用”来启用地图地理编码?