以下是一个可能的 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录