1、概述html
在k8s裏面部署kafka、zookeeper這種有狀態的服務,不能使用deployment和RC,k8s提供了一種專門用來部署這種有狀態的服務的API--statefulset,有狀態簡單來講就是須要持久化數據,好比日誌、數據庫數據、服務狀態等。git
statefulset應用場景:github
statefulset組成:數據庫
StatefulSet中每一個Pod的DNS格式爲statefulSetName-{0..N-1}.serviceName.namespace.svc.cluster.local
,其中
網絡
0..N-1
爲Pod所在的序號,從0開始到N-1serviceName
爲Headless Service的名字statefulSetName
爲StatefulSet的名字namespace
爲服務所在的namespace,Headless Servic和StatefulSet必須在相同的namespace.cluster.local
爲Cluster Domain
2、部署less
首先下載相關的部署文件:dom
git clone https://github.com/cuishuaigit/k8s-kafka.git
部署前須要提早準備nfs提供動態存儲,參考我以前的博客:https://www.cnblogs.com/cuishuai/p/9152277.htmlui
cd k8s-kafka
kubectl create -f namesapce.yaml
kubectl create -f zk.yaml
kubectl create -f kafka.yaml
詳細信息參考:https://github.com/cuishuaigit/k8s-kafkaspa