目录
使用以下两种方式来创建:
kubectl run mynginx --image=nginx
kubectl create deployment mytomcat --image=tomcat:8.5.68
然后执行删除操作:
kubectl delete pod mynginx
kubectl delete pod mytomcat-6f5f895f4f-7m478
再查看一次:
kubectl get pod
可以看到普通创建的pod被直接删除了,但是部署创建的pod在被删除后,他自己又启了一个新的出来。这也正是k8s自愈能力的表现。
若要删除部署的话操作如下:
kubectl delete deploy mytomcat
kubectl create deployment mydeploy --image=nginx --replicas=3
vi test.yaml
- apiVersion: apps/v1
- kind: Deployment
- metadata:
- labels:
- app: my-dep
- name: my-dep
- spec:
- replicas: 3
- selector:
- matchLabels:
- app: my-dep
- template:
- metadata:
- labels:
- app: my-dep
- spec:
- containers:
- - image: nginx
- name: nginx
kubectl apply -f test.yaml
先看一眼目前的部署,一共是有4个副本:
从4个增加到5个:
kubectl scale --replicas=5 deployment/mydeploy
从5个缩到2个(可以看到命令是一样的,改一下数量就行):
kubectl scale --replicas=2 deployment/mydeploy
kubectl edit deployment mydeploy
直接对此处的数字进行修改,然后保存退出即可。
直接在这里改数字就行,下面也会显示出相应的代码:
kubectl get pod -owide
可以看到他们跑在node1节点上:
复制左边的name,然后去node1上去看看:
docker ps|grep mydeploy-d566c6fbb-gbfrv
把它停掉:
docker stop e484a06e6be2
然后回master上看看:
kubectl get pod
可以看到已经被停掉了,但是只要稍等一会再看:
k8s已经把它修好了,这也就是k8s的自愈功能。
先在master打开监控:
kubectl get pod -w
这回咱们直接把node1节点给关掉,看看k8s会是什么反应(这个反应阈值大概有5分钟):
5分钟后:
故障转移成功!
这里针对ngx的镜像进行升级更新:
kubectl set image deploy/mydeploy nginx=nginx:1.16.1 --record
kubectl rollout history deploy/mydeploy
kubectl rollout history deploy/mydeploy --revision=2
kubectl rollout undo deploy/mydeploy
kubectl rollout undo deploy/mydeploy --to-revision=2