0
点赞
收藏
分享

微信扫一扫

k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)


目录

  • ​​前言​​
  • ​​副本控制器-RC(已废弃)​​
  • ​​工作原理​​
  • ​​模板​​
  • ​​实战​​
  • ​​创建​​
  • ​​删除​​

  • ​​副本集合-RS​​
  • ​​工作原理​​
  • ​​模板​​
  • ​​参考​​

前言

前面文章​​k8s学习-Pod(生命周期、探针、模板、创建、删除等)​​学习了Pod,Pod在集群中可能会有多个,一个Pod也可能会有多个副本来提高高可用性。本篇文章学习RC与RS,对于RC,不必太多关注,这两个一般都不用管理手动创建,而是使用更高级的workload,Deployment基于RS,所以RS可以关注一下。

副本控制器-RC(已废弃)

工作原理

如果 pod 太多,ReplicationController 会终止多余的 pod。如果太少,ReplicationController 会启动更多的 pod。

模板

RC除了需要apiVersion、kind和metadata字段,还需要.spec字段。
spec字段下一般有

  • replicas:期望的副本数
  • selector:Pod选择器,用于管理所有带此label的Pod,若指定,template中的需要一致
  • template:Pod 模板
apiVersion: v1
kind: ReplicationController
metadata:
name: nginx # RC的名字
spec:
replicas: 3 # 期望的副本数
selector: # 选择器,需要与template.metadata.labels一致
app: nginx
template: # Pod模板
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80

实战

创建

kubectl create -f rc-test.yaml -n killer
kubectl get pods -n killer
kubectl get rc -n killer

k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)_nginx

删除

直接删除Pod是不行
k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)_字段_02
可以看到RC会保证Pod的数量

kubectl delete rc nginx -n killer

k8s学习-ReplicationController 、ReplicaSet(工作原理、模板、实战)_字段_03

副本集合-RS

工作原理

ReplicaSet 由字段定义,包括指定如何识别可以获取的 Pod 的选择器、指示它应该维护多少个 Pod 的副本数量以及指定它应该创建以满足数量的新 Pod 的数据的 Pod 模板副本标准。

模板

apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
# modify replicas according to your case
replicas: 3
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google_samples/gb-frontend:v3

这个就不实战了,生产环境中更多的是使用Deployment等进行替代。

参考

​​k8s-RC​​​​k8s-RS​​


举报

相关推荐

0 条评论