第一章 K8s Deployment控制器/DaemonSet控制器
原创
©著作权归作者所有:来自51CTO博客作者小杨同学THY的原创作品,请联系作者获取转载授权,否则将追究法律责任
第一代副本控制器
Replication Controller: 副本控制器(selector = !=)
https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/replicationcontroller/
https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels/
第二代pod副本控制器
ReplicaSet: 和第一代控制器的区别:对选择器的支持(select 还支持in not in)
https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/deployment/
第三代副本控制器
比rs更高一级的控制器,除了有rs的功能之外,还有很多高级能,比如说重要的滚动升级、回滚等。第三代pod控制器
创建deployment yaml
vim nginx-deployment.ymal
apiVersion: apps/v1
kind: Deployment
metadata:
# 创建名为 nginx-deployment
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
# 定义了 Deployment 查找匹配key为app,value为nginx的pod
matchLabels:
app: nginx
template:
metadata:
# 给pod定义了key为app,value为nginx的标签
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
创建deployment
kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml
查看deployment
kubectl get deployment nginx-deployment
kubectl describe deployment nginx-deployment
kubectl get pods -A
kubectl get pods -A --show-labels -o wide
kubectl get pods --show-labels -o wide -n default
更新deploy
kubectl edit deployment/nginx-deployment
kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1
删除deploy
kubectl delete deploy nginx-dp
回滚版本
回滚到最近一个版本,回滚到版本号为2的版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-revision=2
查看回滚状态
查看回滚状态。查看历史版本。查看指定恢复的版本
kubectl rollout status deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment --revision=4
运行 kubectl get rs
以查看 Deployment 通过创建新的 ReplicaSet 并将其扩容到 3 个副本并将旧 ReplicaSet 缩容到 0 个副本完成了 Pod 的更新操作
添加deployment副本数
kubectl scale deployment/nginx-deployment --replicas=10
水平伸缩
kubectl autoscale deployment/nginx-deployment --min=10 --max=15 --cpu-percent=80
资源限制
kubectl set resources deployment/nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi
DaemonSet控制器
DaemonSet控制器使用方法
https://kubernetes.io/zh-cn/docs/concepts/workloads/controllers/daemonset/