daemonset
daemonset(简称ds)和deployment类似,也是pod的控制器,区别在于daemonset会在所有节点(包括master)上创建一个pod。一般用于监控、日志等。系统中kube-proxy、 calico-node就属于ds。
- 创建damonset
mkdir ds
cd ds
kubectl create deployment ds1 --image=busybox --dry-run=client -o yaml -- sh -c "sleep 10000" > ds1.yaml
- 将kind字段修改为DaemonSet,damonset没有副本数选项,删除sepc里replicas字段,删除.spec里strategy: {},删除最后一行status: {}
vi ds1.yaml
- 应用此文件,可以看到ds在所有worker节点上生成了一个pod(master有污点没有生成pod)
kubectl apply -f ds1.yaml
kubectl get ds
kubectl get pod -o wide
- 删除
kubectl delete ds ds1
其他控制器
ReplicationController(rc)
ReplicaSet(rs)
使用方法和deployment基本一致。只是在yaml文件语法上以及是否支持集合式选择器上有差异。
api | select | |
---|---|---|
deployment | apps/v1 | selector:matchLabels: |
daemonset | apps/v1 | selector:matchLabels: |
ReplicationController | v1 | selector: |
ReplicaSet | apps/v1 | selector:matchLabels: |