Kubernetes技术极速入门(七)---- 我又带了把神器
16.Kubernetes集群Controller控制器
1.Controller介绍
控制器;对于应用运行的资源对象进行监控
当pod出现问题时,会把pod重新拉起,以达到用户的期望状态
2.Controller分类
常见控制器
控制器名称 | 作用 |
---|---|
Deployment | 声明式更新控制器,用于发布无状态应用 |
ReplicaSet | 副本集控制器,对于pod进行副本规模扩大或剪裁 |
StatefulSet | 有状态副本集,用于发布有状态应用 |
DaemonSet | 在每个node运行一个副本,用于发布监控或日志收集类等应用 |
Job | 运行一次性作业任务 |
CronJob | 运行周期性作业任务 |
3.Deployment控制器介绍
具有上线部署,滚动升级,创建副本,版本回滚等功能
Deployment包含ReplicaSet,除非需要自定义升级功能或根本不需要升级pod,否则建议使用Deployment
4.创建Deployment控制器
(1)命令行创建Deployment应用
kubectl run nginx-app --image=nginx:latest --image-pull-policy=IfNotPresent --replicas=2
字段说明
nginx-app : deployment控制器类型的应用名称
nginx:latest : 应用运行的pod中的Container所使用的镜像
IfNotPresent : Container的镜像下载策略,如果本地有镜像,就使用本地,没有就去下载镜像
--replicas=2 : 应用运行的pod共计2个副本,这是用户的期望,Deployment中的ReplicaSet会监视pod副本的运行情况,数量不够,就拉取,使pod数量一直维持在用户的期望数量。
查看Deployment控制器类型应用
kubectl get deployment.apps
查看ReplicaSet控制器类型
kubectl get replicaset
查看pod状态
kubectl get pods
查看pod详细状态
kubectl get pods -o wide
(2)使用资源清单创建Deployment应用
编写yaml文件
vi 03-create-deployment-nginx1-app.yaml
内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx1-apps
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx1-app-containers
image: nginx: latest
imagePullPolicy: IfNotPresent
ports:
- name: nginx1-app
containerPort: 80
应用yaml
kubectl apply -f 03-create-deployment-nginx1-app.yaml
查看Deployment控制器类型应用
kubectl get deployment.apps
或
kubectl get deployment
查看ReplicaSet控制器类型
kubectl get replicaset
查看pod状态
kubectl get pods
查看pod详细状态
kubectl get pods -o wide
5.删除Deployment控制器
带控制器类型的pod不能随便删除,如果必须删除,请删除控制器类型的应用名称。
(1)命令行删除的控制器类型应用
先查看要删除的Deployment控制器类型应用是否存在
kubectl get deployment.apps
或
kubectl get deployment
删除Deployment控制器应用
kubectl delete deployment.apps nginx-app
查看Deployment应用是否删除
kubectl get deployment.apps
或
kubectl get deployment
(2)资源清单删除Deployment制器类型应用
删除Deployment控制器类型应用
kubectl delete -f 03-create-deployment-nginx1-app.yaml
这里的yaml文件是上面写好了的
查看Deployment应用是否删除
kubectl get deployment.apps
或
kubectl get deployment
其他博客:
Kubernetes技术极速入门(一)---- 初次见面,请多多关照
Kubernetes技术极速入门(二)----初次交锋,请手下留情
Kubernetes技术极速入门(三)---- 我有神器,能赢不
Kubernetes技术极速入门(四)---- 太强了,干不过
Kubernetes技术极速入门(五)----再来,我必定胜你
Kubernetes技术极速入门(六)---- 我搬救兵,等我回来
Kubernetes技术极速入门(八)---- 挥挥手,不带走一片云彩
感谢大家,点赞,收藏,关注,评论!