k8s学习-DaemonSet(模板创建更新回滚删除等)
Posted lady_killer9
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s学习-DaemonSet(模板创建更新回滚删除等)相关的知识,希望对你有一定的参考价值。
目录
概念
DaemonSet:守护进程集,在kubectl中缩写为ds,在所有节点或者是匹配的节点上都部署一个Pod,当有节点加入集群时, 也会为他们新增一个 Pod 。
使用DaemonSet的场景
- 运行集群存储的daemon,比如ceph或者glusterd
- 节点的CNI网络插件:calico
- 节点日志的收集:fluentd或者是filebeat
- 节点的监控:node exporter
- 服务暴露:部署一个ingress nginx
日志和监控比较经典。
我们安装集群的时候,calico和kube-proxy是daemonset的方式启动的。
模板
apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
app: nginx
name: nginx
spec:
revisionHistoryLimit: 10
selector:
matchLabels:
app: nginx
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.15.2
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
terminationGracePeriodSeconds: 30
相较于Deployment,DaemonSet没有副本数,因为他是一个节点启动一个,容器。
实战
创建
命令
kubectl create -f ds-test.yaml
结果
查看全部的yaml
命令
kubectl get ds nginx -n killer -o yaml > ds-all.yaml
结果
apiVersion: apps/v1
kind: DaemonSet
metadata:
annotations:
deprecated.daemonset.template.generation: "1"
creationTimestamp: "2022-06-26T17:16:22Z"
generation: 1
labels:
app: nginx
name: nginx
namespace: killer
resourceVersion: "146918"
selfLink: /apis/apps/v1/namespaces/killer/daemonsets/nginx
uid: 50c28ba2-aa39-4fa6-b1c1-97d4b2c7c8f9
spec:
revisionHistoryLimit: 10
selector:
matchLabels:
app: nginx
template:
metadata:
creationTimestamp: null
labels:
app: nginx
spec:
containers:
- image: nginx:1.15.2
imagePullPolicy: IfNotPresent
name: nginx
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 200Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
terminationGracePeriodSeconds: 30
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
status:
currentNumberScheduled: 1
desiredNumberScheduled: 1
numberAvailable: 1
numberMisscheduled: 0
numberReady: 1
observedGeneration: 1
updatedNumberScheduled: 1
不同于deployment的strategy,ds的回滚策略字段和sts的一样,是updateStrategy。
更新
以更新镜像为例
命令
kubectl set image ds nginx nginx=nginx:1.15.3 -n killer --record
结果
回滚
再更新几次之后,查看下更新记录
命令
kubectl rollout history ds nginx -n killer
结果
回滚到上一版本
命令
kubectl rollout undo ds nginx -n killer
截图
回滚到指定版本
命令
kubectl rollout history ds nginx --revision=2 -n killer
截图
删除
命令
kubectl delete ds nginx -n killer
结果
更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记
参考
CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~以上是关于k8s学习-DaemonSet(模板创建更新回滚删除等)的主要内容,如果未能解决你的问题,请参考以下文章
再战 k8s(12):Deployment 指导下 Pod 的升级和回滚
k8s中的pod控制器之DeploymentDaemonSetStatefulSet