Kubernetes DaemonSet 學習
阿新 • • 發佈:2020-09-22
Kubernetes-DaemonSet 學習
DaemonSet(守護程序集)和守護程序類似,它在符合匹配條件的節點上均部署一個Pod。
什麼是DaemonSet
DaemonSet確保全部(或者某些)節點上執行一個Pod副本。當有新節點加入叢集時,也會為它們新增一個Pod。當節點從叢集中移除時,這些Pod也會被回收,刪除DaemonSet將會刪除它建立的所有Pod。
DaemonSet的典型場景
- 執行叢集儲存daemon(守護程序),例如在每個節點上執行Glusterfs、Ceph等。
- 在每個節點執行日誌收集daemon,例如filebeat、Logstash。
- 在每個節點執行監控daemon,比如Prometheus Node Exporter。
建立DaemonSet
在生產環境中,公司業務的應用程式一般無須使用DaemonSet部署,一般情況下只有像FileBeat(日誌收集)、Ingress(叢集服務入口)、Flannel(叢集網路元件)、Node-Exporter(監控資料採集)等才需要使用DaemonSet部署到每個節點。本節只演示DaemonSet的使用。以Nginx Ingress為例。
[root@instance-gvpb80ao yaml]# kubectl apply -f deploy.yaml namespace/ingress-nginx created serviceaccount/ingress-nginx created configmap/ingress-nginx-controller created clusterrole.rbac.authorization.k8s.io/ingress-nginx created clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created role.rbac.authorization.k8s.io/ingress-nginx created rolebinding.rbac.authorization.k8s.io/ingress-nginx created service/ingress-nginx-controller-admission created service/ingress-nginx-controller created deployment.apps/ingress-nginx-controller created validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created serviceaccount/ingress-nginx-admission created clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created role.rbac.authorization.k8s.io/ingress-nginx-admission created rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created job.batch/ingress-nginx-admission-create created job.batch/ingress-nginx-admission-patch created [root@instance-gvpb80ao yaml]# kubectl get pods -n ingress-nginx NAME READY STATUS RESTARTS AGE nginx-ingress-controller-fjkf2 1/1 Running 0 44s nginx-ingress-controller-gfmcv 1/1 Running 0 44s nginx-ingress-controller-j89qc 1/1 Running 0 44s nginx-ingress-controller-sqsk2 1/1 Running 0 44s nginx-ingress-controller-tgdt6 1/1 Running 0 44s