Replica Set¶
- Replication controller (RC) is the old tech while Replica Set (RS) is the new one.
- 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.
- A ReplicaSet then fulfills its purpose by creating and deleting Pods as needed to reach the desired number. When a ReplicaSet needs to create new Pods, it uses its Pod template.
Using Deployment and RS together
ReplicaSet
ensures that a specified number of pod replicas are running at any given time. However, a Deployment is a higher-level concept that manages ReplicaSets and provides declarative updates to Pods along with a lot of other useful features.
Imperative create¶
k create -f RS-FILE.YAML
# or use this one
k apply -f RS-FILE.YAML
A sample file is given below
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
Scaling an RS¶
# Get the values from the file
k replace -f RS-FILE.YAML
# the file will be used while replicas will be replaced by the number you specify
k scale --replicas=6 -f RS-FILE.YAML
# this one is recommended if already existing
k scale --replicas=6 rs RS-NAME