1. 程式人生 > 實用技巧 >Kubernetes DaemonSet 學習

Kubernetes DaemonSet 學習

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