环境:
Os:Centos 7
miluvs:2.5.27
##############################前置准备项###############################
安装好minio
https://www.cnblogs.com/hxlasky/p/19953948
安装好etcd
https://www.cnblogs.com/hxlasky/p/19945112
安装好kafka
https://www.cnblogs.com/hxlasky/p/19950657
#############################milvus部署###############################
1.打标签
k8s master节点上执行
kubectl get nodes
kubectl label nodes test-k8s-192.168.1.162 milvus=allowed
kubectl get nodes --show-labels
2.各组件yaml文件
1-milvus-ns.yaml
apiVersion: v1
kind: Namespace
metadata:name: hxlmilvus
2-milvus-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: milvus-confignamespace: hxlmilvuslabels:app: milvus
data:milvus.yaml: |etcd:endpoints:- etcd-0-0.etcd-headless.hxletcd.svc.cluster.local:2379- etcd-1-0.etcd-headless.hxletcd.svc.cluster.local:2379- etcd-2-0.etcd-headless.hxletcd.svc.cluster.local:2379rootPath: milvus/metause: etcdkafka:brokerList: kafka-0-0.kafka-headless.hxlkafka.svc.cluster.local:9092,kafka-1-0.kafka-headless.hxlkafka.svc.cluster.local:9092,k
afka-2-0.kafka-headless.hxlkafka.svc.cluster.local:9092use: kafkaminio:address: minio-0-0.minio-headless.hxlminio.svc.cluster.local:9000port: 9000accessKeyID: minioadminsecretAccessKey: minioadmin123456bucketName: milvus-bucketuse: miniolocalStorage:path: /var/lib/milvus
3-milvus-rootcoord.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-rootcoordnamespace: hxlmilvuslabels:app: milvuscomponent: rootcoord
spec:replicas: 1selector:matchLabels:app: milvuscomponent: rootcoordtemplate:metadata:labels:app: milvuscomponent: rootcoordspec:nodeSelector:milvus: allowedcontainers:- name: rootcoordimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "rootcoord"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
4-milvus-datacoord.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-datacoordnamespace: hxlmilvuslabels:app: milvuscomponent: datacoord
spec:replicas: 1selector:matchLabels:app: milvuscomponent: datacoordtemplate:metadata:labels:app: milvuscomponent: datacoordspec:nodeSelector:milvus: allowedcontainers:- name: datacoordimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "datacoord"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
5-milvus-querycoord.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-querycoordnamespace: hxlmilvuslabels:app: milvuscomponent: querycoord
spec:replicas: 1selector:matchLabels:app: milvuscomponent: querycoordtemplate:metadata:labels:app: milvuscomponent: querycoordspec:nodeSelector:milvus: allowedcontainers:- name: querycoordimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "querycoord"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
6-milvus-indexcoord.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-indexcoordnamespace: hxlmilvuslabels:app: milvuscomponent: indexcoord
spec:replicas: 1selector:matchLabels:app: milvuscomponent: indexcoordtemplate:metadata:labels:app: milvuscomponent: indexcoordspec:nodeSelector:milvus: allowedcontainers:- name: indexcoordimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "indexcoord"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
7-milvus-datanode.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-datanodenamespace: hxlmilvuslabels:app: milvuscomponent: datanode
spec:replicas: 1selector:matchLabels:app: milvuscomponent: datanodetemplate:metadata:labels:app: milvuscomponent: datanodespec:nodeSelector:milvus: allowedcontainers:- name: datanodeimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "datanode"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
8-milvus-querynode.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-querynodenamespace: hxlmilvuslabels:app: milvuscomponent: querynode
spec:replicas: 1selector:matchLabels:app: milvuscomponent: querynodetemplate:metadata:labels:app: milvuscomponent: querynodespec:nodeSelector:milvus: allowedcontainers:- name: querynodeimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "querynode"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
9-milvus-indexnode.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-indexnodenamespace: hxlmilvuslabels:app: milvuscomponent: indexnode
spec:replicas: 1selector:matchLabels:app: milvuscomponent: indexnodetemplate:metadata:labels:app: milvuscomponent: indexnodespec:nodeSelector:milvus: allowedcontainers:- name: indexnodeimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "indexnode"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
10-milvus-proxy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-indexnodenamespace: hxlmilvuslabels:app: milvuscomponent: indexnode
spec:replicas: 1selector:matchLabels:app: milvuscomponent: indexnodetemplate:metadata:labels:app: milvuscomponent: indexnodespec:nodeSelector:milvus: allowedcontainers:- name: indexnodeimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "indexnode"]volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
[root@yunwei-k8s-master1-test milvus]# more 10-milvus-proxy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: milvus-proxynamespace: hxlmilvuslabels:app: milvuscomponent: proxy
spec:replicas: 1selector:matchLabels:app: milvuscomponent: proxytemplate:metadata:labels:app: milvuscomponent: proxyspec:nodeSelector:milvus: allowedcontainers:- name: proxyimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/milvus:v2.5.27command: ["milvus", "run", "proxy"]ports:- containerPort: 19530- containerPort: 9091volumeMounts:- name: milvus-configmountPath: /milvus/configs/milvus.yamlsubPath: milvus.yamlvolumes:- name: milvus-configconfigMap:name: milvus-config
11-milvus-service.yaml
apiVersion: v1
kind: Service
metadata:name: milvusnamespace: hxlmilvuslabels:app: milvus
spec:type: ClusterIPselector:app: milvuscomponent: proxyports:- name: grpcport: 19530targetPort: 19530- name: metricsport: 9091targetPort: 9091
3.部署
cd /root/hxl/milvus
kubectl apply -f 1-milvus-ns.yaml
kubectl apply -f 2-milvus-configmap.yaml
kubectl apply -f 3-milvus-rootcoord.yaml --ok
kubectl apply -f 4-milvus-datacoord.yaml --ok
kubectl apply -f 5-milvus-querycoord.yaml --ok
kubectl apply -f 6-milvus-indexcoord.yaml --ok
kubectl apply -f 7-milvus-datanode.yaml --ok
kubectl apply -f 8-milvus-querynode.yaml --ok
kubectl apply -f 9-milvus-indexnode.yaml --ok
kubectl apply -f 10-milvus-proxy.yaml --ok
kubectl apply -f 11-milvus-service.yaml
kubectl get pods -n hxlmilvus
kubectl describe pods milvus-querynode-5848f45f8-nqpg6 -n hxlmilvus
kubectl logs milvus-querynode-5848f45f8-nqpg6 -n hxlmilvus
kubectl describe pods milvus-querynode-5848f45f8-m5d9d -n hxlmilvus
4.attu链接
[root@yunwei-k8s-master1-test ~]# kubectl get svc -n hxlmilvus
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
milvus ClusterIP 10.17.21.151 <none> 19530/TCP,9091/TCP 112m
12-attu.yaml 内容
apiVersion: apps/v1
kind: Deployment
metadata:name: attunamespace: hxlmilvus
spec:replicas: 1selector:matchLabels:app: attutemplate:metadata:labels:app: attuspec:containers:- name: attuimage: registry.cn-shenzhen.aliyuncs.com/hxlk8s/attu:v2.5.12ports:- containerPort: 3000env:- name: MILVUS_URLvalue: "milvus.hxlmilvus.svc.cluster.local:19530"
---
apiVersion: v1
kind: Service
metadata:name: attunamespace: hxlmilvus
spec:selector:app: attuports:- port: 80targetPort: 3000type: NodePort
应用
kubectl apply -f 12-attu.yaml
kubectl get pods -n hxlmilvus
kubectl get svc -n hxlmilvus
[root@yunwei-k8s-master1-test milvus]# kubectl get svc -n hxlmilvus
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
attu NodePort 10.17.207.233 <none> 80:31210/TCP 4m3s
milvus ClusterIP 10.17.21.151 <none> 19530/TCP,9091/TCP 132m
浏览器访问
http://192.168.1.162:31210
默认的账号密码为:
root/Milvus

