Replication Controller 作用
当应用托管在Kubernetes之后,Kubernetes需要保证应用能够持续稳定运行,
RC工作目的也是这,它要确保在任何时间Kubernetes中都有指定数量的pod在
运行。rc还有一些高级功能,如滚动升级,升级回滚。
功能验证:
rc会确保在任何时间Kubernetes中都有指定数量的pod在运行
新建一个nginx_rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 2
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: nginx
image: nginx:1.13
ports:
- containerPort: 80
创建rc
kubectl create -f nginx_rc.yaml
查看rc状态
kubectl get rc
kubectl get pods
默认情况pod名字,会以rc名字作为前缀
前面说过rc会确保在任何时间Kubernetes中都有指定数量的pod在运行
这里即使删除一个pod也会再生成一个pod,以保证有两个pod在运行
滚动升级
新建一个nginx_rc2.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb2
spec:
replicas: 2
selector:
app: myweb2
template:
metadata:
labels:
app: myweb2
spec:
containers:
- name: nginx
image: nginx:1.15
ports:
- containerPort: 80
下载nginx:1.15
docker pull nginx:1.15
接着就可以滚动升级
kubectl rolling-update myweb -f nginx_rc2.yaml
滚动升级过程也会一致保持pod数量是2
升级回滚
kubectl rolling-update myweb2 -f nginx_rc.yaml![](https://img-blog.csdnimg.cn/ad3d98ad400e47ae9b2cdb9654c2549c.png)