kubernetes DaemonSet ds
来源:原创
时间:2019-04-21
作者:脚本小站
分类:云原生
DaemonSet 通常用于执行系统级操作的任务。一个节点一个Pod,后加入的节点也会运行这个Pod,可以指定节点选择器来指定在某些节点上运行。启动节点时这些Pod会先于其他节点运行。
创建
主要字段:selector,template
API版本:apps/v1
创建DaemonSet:
apiVersion: apps/v1 kind: DaemonSet metadata: name: filebeat-ds labels: app: filebeat spec: selector: matchLabels: app: filebeat template: metadata: labels: app: filebeat spec: containers: - name: filebeat image: ikubernetes/filebeat:5.6.5-alpine env: - name: REDIS_HOST value: 10.244.1.79 - name: LOG_LEVEL value: info
上面这个Pod需要使用到redis,下面是redis statefulset。
apiVersion: apps/v1 kind: StatefulSet metadata: name: redis labels: app: redis spec: serviceName: redis replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis imagePullPolicy: IfNotPresent ports: - name: redis-port containerPort: 6379 volumeMounts: - name: redis-data mountPath: /data volumes: - name: redis-data emptyDir: {}
节点选择:spec.template.spec.nodeSelector
spec: nodeSelector: disktype: ssd
更新
滚动更新:RollingUpdate
类似ds的更新机制,只支持maxUnavailabe 最大不可用默认值为1。
删除更新:OnDelete
删除后重建。
配置字段:spec.updateStrategy
spec: updateStrategy: rollingUpdate: maxUnavailable: 1 type: RollingUpdate
更新镜像:不支持 pause 和 resume。
kubectl set image daemonsets filebeat-ds filebeat=ikubernetes/filebeat:5.6.6-alpine
查看更新过程:可以使用minReadySeconds来控制更新节奏。
kubectl describe daemonsets filebeat-ds
回滚
查看历史版本:
kubectl rollout history daemonset
回滚到指定版本:
kubectl rollout undo daemonset filebeat-ds --to-revision=3
查看更新状态:
kubectl rollout status daemonset filebeat-ds