62 lines
1.3 KiB
Markdown
62 lines
1.3 KiB
Markdown
|
## ReplicaSet 03 - Solution
|
||
|
|
||
|
1. Create a ReplicaSet with 2 replicas. Make sure the label used for the selector and in the Pods is "type=web"
|
||
|
|
||
|
```
|
||
|
cat >> rs.yaml <<EOL
|
||
|
apiVersion: apps/v1
|
||
|
kind: ReplicaSet
|
||
|
metadata:
|
||
|
name: web
|
||
|
labels:
|
||
|
app: somewebapp
|
||
|
type: web
|
||
|
spec:
|
||
|
replicas: 2
|
||
|
selector:
|
||
|
matchLabels:
|
||
|
type: web
|
||
|
template:
|
||
|
metadata:
|
||
|
labels:
|
||
|
type: web
|
||
|
spec:
|
||
|
containers:
|
||
|
- name: httpd
|
||
|
image: registry.redhat.io/rhscl/httpd-24-rhel7
|
||
|
EOL
|
||
|
|
||
|
kubectl apply -f rs.yaml
|
||
|
```
|
||
|
|
||
|
2. Verify a ReplicaSet was created and there are 2 replicas
|
||
|
|
||
|
```
|
||
|
kubectl get rs
|
||
|
# OR a more specific way: kubectl get -f rs.yaml
|
||
|
```
|
||
|
|
||
|
3. List the Pods running and save the output somewhere
|
||
|
|
||
|
```
|
||
|
kubectl get po > running_pods.txt
|
||
|
```
|
||
|
|
||
|
4. Remove the label (type=web) from one of the Pods created by the ReplicaSet
|
||
|
|
||
|
```
|
||
|
kubectl label pod <POD_NAME> type-
|
||
|
```
|
||
|
|
||
|
5. List the Pods running. Are there more Pods running after removing the label? Why?
|
||
|
|
||
|
```
|
||
|
Yes, there is an additional Pod running because once the label, used as a matching selector, was removed, the Pod became independant meaning, it's not controlled by the ReplicaSet anymore and the ReplicaSet was missing replicas based on its definition so, it created a new Pod.
|
||
|
```
|
||
|
|
||
|
6. Verify the ReplicaSet indeed created a new Pod
|
||
|
|
||
|
```
|
||
|
kubectl describe rs web
|
||
|
```
|