ReplicaSet是kubernetes的一种副本控制器,简称rs,kubernetes通过ReplicaSet来维护一个数量稳定的Pod副本集合,从而保证Pod始终有指定数量的副本数在运行。通常我们不会直接使用ReplicaSet,而是使用更高级的概念,比如Deployment,这是因为Deployment有许多ReplicaSet没有的特性,比如说滚动升级和回滚。

ReplicaSet的简单使用:

1. 定义一个ReplicaSet

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: rs-nginx
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest


replicas:副本数,用于指定该ReplicaSet需要维护多少个Pod副本。
selector:标签选择器,用于指定哪些Pod属于该ReplicaSet的管辖范围。
template:Pod模板,在ReplicaSet使用Pod模板创建新的Pod。

需要注意的是:标签一旦确认下来了不要随意改动,否则可能会导致有些Pod将不被管理。

2. 创建ReplicaSet

kubectl apply -f 文件名.yml

[root@k8s-master1 replicaSet]# kubectl apply -f 01-create-rs.yml 
replicaset.apps/rs-nginx created

3. 查看ReplicaSet

简单查看:kubectl get rs
查看更多信息:kubectl get rs -o wide
查看配置文件:kubectl edit rs rs名称 -o yaml

[root@k8s-master1 replicaSet]# kubectl get rs
NAME       DESIRED   CURRENT   READY   AGE
rs-nginx   2         2         1       50s
[root@k8s-master1 replicaSet]# kubectl get rs -o wide
NAME       DESIRED   CURRENT   READY   AGE     CONTAINERS   IMAGES         SELECTOR
rs-nginx   2         2         2       2m28s   nginx        nginx:latest   app=nginx

4. 修改ReplicaSet

kubectl replace -f 文件名.yml
kubectl edit rs rs名称 -o yaml
通过kubectl edit 进行编辑页面(类似vi),修改配置信息之后,执行:wq保存退出生效。

5. 删除ReplicaSet

kubectl delete -f 文件名.yml
kubectl delete rs rs名称

[root@k8s-master1 replicaSet]# kubectl delete -f 01-create-rs.yml 
replicaset.apps "rs-nginx" deleted
[root@k8s-master1 replicaSet]# kubectl delete rs rs-nginx
replicaset.apps "rs-nginx" deleted
[root@k8s-master1 replicaSet]# kubectl get rs
No resources found in default namespace.
打赏
支付宝 微信
上一篇 下一篇