Kubernetes 1.20.15 部署 Milvus:v2.1.1、Etcd v3.5.0 和 Minio:RELEASE.2023-04-07T05-28-58Z - 高可用方案
以下是一个可能的 Kubernetes 部署 YAML 文件示例,其中包含 Milvus、Etcd 和 Minio 的部署:
apiVersion: v1
kind: Service
metadata:
name: etcd
spec:
ports:
- port: 2379
targetPort: 2379
clusterIP: None
selector:
app: etcd
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: etcd
spec:
serviceName: etcd
replicas: 3
selector:
matchLabels:
app: etcd
template:
metadata:
labels:
app: etcd
spec:
containers:
- name: etcd
image: quay.io/coreos/etcd:v3.5.0
command:
- /usr/local/bin/etcd
args:
- --name=$(hostname)
- --data-dir=/etcd-data
- --listen-client-urls=http://0.0.0.0:2379
- --advertise-client-urls=http://$(hostname):2379
ports:
- containerPort: 2379
volumeMounts:
- name: etcd-data
mountPath: /etcd-data
volumes:
- name: etcd-data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: minio
spec:
type: ClusterIP
selector:
app: minio
ports:
- name: http
port: 9000
targetPort: 9000
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: minio
spec:
serviceName: minio
replicas: 2
selector:
matchLabels:
app: minio
template:
metadata:
labels:
app: minio
spec:
containers:
- name: minio
image: minio/minio:RELEASE.2023-04-07T05-28-58Z
args:
- server
- /data
env:
- name: MINIO_ACCESS_KEY
valueFrom:
secretKeyRef:
name: minio-credentials
key: accesskey
- name: MINIO_SECRET_KEY
valueFrom:
secretKeyRef:
name: minio-credentials
key: secretkey
ports:
- containerPort: 9000
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
emptyDir: {}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: milvus
spec:
serviceName: milvus
replicas: 2
selector:
matchLabels:
app: milvus
template:
metadata:
labels:
app: milvus
spec:
containers:
- name: milvus
image: milvusdb/milvus:v2.1.1-cpu-d050721-4c1e2f
env:
- name: ETCD_ENDPOINTS
value: 'etcd-0.etcd:2379,etcd-1.etcd:2379,etcd-2.etcd:2379'
- name: MINIO_ADDRESS
value: 'minio:9000'
ports:
- containerPort: 19530
- containerPort: 19121
上述 YAML 文件包含以下内容:
- Etcd StatefulSet 和 Service,使用 Quay.io 提供的 etcd:v3.5.0 镜像部署,使用三个副本,使用 headless Service。
- Minio StatefulSet 和 Service,使用 Minio 提供的 RELEASE.2023-04-07T05-28-58Z 镜像部署,使用两个副本,使用 ClusterIP Service。在容器中设置了 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 环境变量,这些密钥通过 Kubernetes Secret 对象提供。
- Milvus StatefulSet,使用 Milvus 提供的 v2.1.1-cpu-d050721-4c1e2f 镜像部署,使用两个副本。在容器中设置了 ETCD_ENDPOINTS 和 MINIO_ADDRESS 环境变量,以连接 Etcd 和 Minio。
请注意,这只是一个示例 YAML 文件,可能需要根据实际情况进行修改。例如,可以更改副本数、镜像版本、环境变量、端口等。同时,这个示例 YAML 文件中的 Milvus 只是单纯的部署,没有高可用方案。如果需要高可用,可以使用官方提供的 Milvus HA 方案。
原文地址: https://www.cveoy.top/t/topic/nlGJ 著作权归作者所有。请勿转载和采集!