kubernetes 学习笔记5
kubernetes 自我恢复
重启失败的container,当node不可用时,替换和重新调度container,杀死不能对用户自定义的健康检查做出repond的containr,直到这些container可以提供服务才advertise它们
rc是确保集群中的pod是可用的,当产生很多pod的时候,需要杀死一些,到数量变少的时候,需要重新产生一些。k8s实现了用户应用集群的高可用性,并且大大减少了系统管理员在传统it环境需要手工运维工作(如主机监控脚本、应用监控脚本、故障恢复脚本),声明某种pod的副本数量在任意时刻都符合某个期望值。
1.pod期望的f副本数(replicas)
2.用于筛选目标pod的label selector
3.当pod的副本数量小于预期数量的时候,用于创建新的新的pod的pod模版
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
$ kubectl create -f ./replication.yaml
replicationcontrollers/nginx
$ kubectl describe replicationcontrollers/nginx
Name: nginx
Namespace: default
Image(s): nginx
Selector: app=nginx
Labels: app=nginx
Replicas: 3 current / 3 desired
Pods Status: 0 Running / 3 Waiting / 0 Succeeded / 0 Failed
Events:
FirstSeen LastSeen Count From
SubobjectPath Reason Message
Thu, 24 Sep 2015 10:38:20 -0700 Thu, 24 Sep 2015 10:38:20 -0700 1
{replication-controller } SuccessfulCreate Created pod: nginx-qrm3m
Thu, 24 Sep 2015 10:38:20 -0700 Thu, 24 Sep 2015 10:38:20 -0700 1
{replication-controller } SuccessfulCreate Created pod: nginx-3ntk0
Thu, 24 Sep 2015 10:38:20 -0700 Thu, 24 Sep 2015 10:38:20 -0700 1
{replication-controller } SuccessfulCreate Created pod: nginx-4ok8v
spec:定义pod模版
labels:标签
pod selector:监控相应标签的pod
replicas:模版数
运行时,可以修改rc的副本数量,来实现pod的动态缩放(scaling),可以通过命令kubectl scale一件完成
删除rc并不会影响rc已经创建好的pod。为了删除所有的pod,可以设置replicas为0,然后更新rc。kubectl 可以通过stop和delete命令来一次性删除
应用升级时候,通过build一个新的docker镜像,并用新的镜像版本来替代旧的版本来达到目的。滚动升级时候(rolling update),采用平滑形式,停止一个旧镜像,升级一个新镜像
Rc的特性和应用
1.大多数情况下,我们通过定义一个rc实现pod的创建过程和副本数量的自动控制
2.rc包括完整的pod定义的模版
3.rc通过label selector 机制实现对pod副本的自动控制
4.通过改变rc的pod副本数量,可以实现pod的扩容和缩功能
5.通过改变rc的pod模版中的镜像版本,可以实现pod的滚动升级功能
Talk is cheap,show me the code! Bitch

浙公网安备 33010602011771号