kubernetes 入门(三)----部署一组Nginx服务

69 阅读2分钟

一个大型的party只有一个服务员显然是不可能的,但是每一个黑奴都要本庄园主来操办也是件麻烦事。于是我又在市场找到了专业的商贩RepliacSet。只需要告诉他需要什么样的黑奴,需要多少即可。

ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合。 因此,它通常用来保证给定数量的、完全相同的 Pod 的可用性。我们可以动态的调整副本的数量,但是对模板的修改是不可以的,所以往往使用deployment代替它。

部署一组Nginx服务

目标:

  1. 使用ReplicaSet部署一组nginx服务
  2. 进行动态完成动态扩缩容

构建

依旧是提前准备好了yaml描述文件。

# replicaSet.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-rs
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template: # 黑奴模板  同上一节Pod中定义的内容一样
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.14.2
  • apiVersion: ReplicaSet 对应的apiVersion是 apps/v1
  • metadata.name:指名ReplicaSet资源的名称,可以在查看时看到
  • spec:对ReplicaSet的规格描述
    • replicas:副本数量
    • selector:用来筛选Pod的规则,满足规则的Pod才被认为是下属副本
      • matchLabels:通过metadata.label进行匹配,拥有相同标签的Pod奖杯匹配,和template中的内容对应
    • template:Pod模板,和上一节中Pod中的spec对应
kubectl apply -f replicaSet.yaml 

查看结果

# 查看pod
$ kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
nginx-rs-456hk   1/1     Running   0          65s
nginx-rs-flvh2   1/1     Running   0          65s
nginx-rs-gp92t   1/1     Running   0          65s

# 查看ReplicaSet
$ kubectl get rs
NAME       DESIRED   CURRENT   READY   AGE
nginx-rs   3         3         3       109s

扩缩容

使用kubectl scale命令设定副本数量

  • 扩容
$ kubectl scale --replicas=5 -f replicaSet.yaml 
replicaset.apps/nginx-rs scaled


$ kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
nginx-rs-456hk   1/1     Running   0          18m
nginx-rs-9hrf8   1/1     Running   0          25s
nginx-rs-flvh2   1/1     Running   0          18m
nginx-rs-gp92t   1/1     Running   0          18m
nginx-rs-z2sm9   1/1     Running   0          25s

$ kubectl get rs
NAME       DESIRED   CURRENT   READY   AGE
nginx-rs   5         5         5       18m
  • 缩容
kubectl scale --replicas=1 -f replicaSet.yaml 

$ kubectl get pods
NAME             READY   STATUS    RESTARTS   AGE
nginx-rs-456hk   1/1     Running   0          19m

至此本节就结束了,ReplicaSet更详细的内容请参考官方文档