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.
打赏