Kubernetes - ReplicaSet

 A ReplicaSet's purpose is to maintain a stable set of replica Pods running at any given time. As such, it is often used to guarantee the availability of a specified number of identical Pods.

Replication Controller(Equality based)

ReplicaSet (Set Based

It uses the operators ( =, ==, !=)

Operators ( in, notin,exists)

Example env=prod, env!=stag

Env in(prod)

Command Line

kubectl get pods -l env=prod

Kubectl get pods ‘env in(prod,qa)’

Manifest

selector:

    app: nginx-app

 

  selector:

    matchLabels:

      app: nginx-app

    matchExpressions:

      - {key: tier, operator: In, values: [frontend]}


LAB


# nginx-rs.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-rs
spec:
  replicas: 3
  template:
    metadata:
      name: nginx-pod
      labels:
        app: nginx-app
        tier: frontend
    spec:
      containers:
      - name: nginx-container
        image: nginx
        ports:
        - containerPort: 80
  selector:
    matchLabels:
      app: nginx-app
    matchExpressions:
      - {key: tier, operator: In, values: [frontend]}



*******************************************************************

# 2. Create and display replicaset


kubectl create -f nginx-rs.yaml

kubectl get po -o wide

kubectl get po -l app=nginx-app

kubectl get rs nginx-rs -o wide

kubectl describe rs nginx-rs

kubectl get po -l 'tier in (frontend)'

*******************************************************************

# 3. Automatic Pod Reschedule 


kubectl get po -o wide --watch

kubectl get po -o wide

kubectl get nodes


*******************************************************************

# 4. Scale up pods


kubectl scale rs nginx-rs --replicas=5

kubectl get rs nginx-rs -o wide

kubectl get po -o wide


*******************************************************************

# 5. Scale down pods


kubectl scale rs nginx-rs --replicas=3

kubectl get rs nginx-rs -o wide

kubectl get po -o wide


*******************************************************************

# 6. Cleanup


kubectl delete -f nginx-rs.yaml

kubectl get rs

kubectl get po -l app=nginx-app

Comments

Popular posts from this blog

Terraform

Scrum Master Interview help - Bootcamp

Kubernetes