3.2.2 ReplicationController初体验
本节,我们通过一些例子来演示ReplicationController的创建、查看、更新、删除等操作。
创建
首先我们准备一个名为replication_controller_simple.yaml的配置文件,其内容如下所示:
[root@ecs-d8b6 manifests]# cat replication_controller_simple.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: replication-controller-runs-pod
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19.0该ReplicationController配置保证同时有3个Pod副本在运行。
使用kubectl create命令创建资源,如下所示:
查看
我们先查看刚刚创建的ReplicationController资源:
可以看到期望的Pod数量(DESIRED)为3,当前已创建的Pod数量(CURRENT)也为3,并且处于运行状态的Pod数量(READY)同样是3,正是我们所期望的状态。
接着,我们查看实际运行的Pod:
可以看到Pod运行也是正常的。
最后,我们查看ReplicationController的详细信息:
通过最后部分的Events信息可知,上面显示的Pod确实是名为replication-controller-runs-pod的ReplicationController创建的。
更新
改变副本个数
我们把上面replication_controller_simple.yaml配置文件中的副本数由3改为5,然后使用kubectl apply提交更改:
然后再次查看Pod,可以发现Pod数量也会相应地调整为5。
同样地,当副本数变小时,多出的Pod会被删除。
模拟Pod异常
假定当前名为replication-controller-runs-pod的ReplicationController维护的Pod副本数为3,我们通过删除Pod的方式模拟Pod异常,如下所示:
可以看到,当我们删除了名为replication-controller-runs-pod-gv4l6的Pod后,新的Pod对象replication-controller-runs-pod-4598b马上被创建了出来,从而保证副本数维持不变。
删除
当删除ReplicationController对象时,由该对象创建的Pod默认也会被删除,如下所示:
最后更新于
这有帮助吗?