k8s资源清单
一、 什么是控制器
Kubernetes 中内建了很多 controller(控制器),这些相当于一个状态机,用来控制 Pod 的具体状态和行为
二、 控制器的分类
ReplicationController 和 ReplicaSet 维护用户定义副本数
Deployment 声明式 创建rs管理pod
DaemonSet 在所有node或者部分node运行pod
StateFulSet 解决有状态服务的问题
Job/CronJob 批处理任务/ 按照计划任务特定时间来执行特定任务
Horizontal Pod Autoscaling pod 自动伸缩扩容
三、 ReplicationController 和 ReplicaSet
ReplicationController(RC)用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收;
在新版本的 Kubernetes 中建议使用 ReplicaSet 来取代 ReplicationController 。ReplicaSet 跟ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
apiVersion: extensions/v1beta1 kind: ReplicaSet metadata: name: frontend spec: replicas: 3 selector: matchLabels: tier: frontend template: metadata: labels: tier: frontend spec: containers: - name: php-redis image: nginx env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 80
四、RS 与 Deployment 的关联
4.1 应用场景
1)定义Deployment来创建Pod和ReplicaSet
2)滚动升级和回滚应用
3)扩容和缩容
4)暂停和继续Deployment
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-deployment1 spec: replicas: 3 template: metadata: labels: app: nginx-test spec: containers: - name: nginx-test image: nginx:1.7.9 ports: - containerPort: 80
4.2 扩容
kubectl scale deployment nginx-deployment --replicas 10
4.3 如果集群支持 horizontal pod autoscaling 的话,还可以为Deployment设置自动扩展
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
4.4 更新镜像也比较简单
kubectl set image deployment/nginx-deployment nginx=nginx:1.9.1
4.5 回滚
kubectl rollout undo deployment/nginx-deployment
本文来自博客园,作者:鱼丸粗面没鱼丸,转载请注明原文链接:https://www.cnblogs.com/Robi-9662/p/12659478.html