5.6 KiB
ReplicaSet
1. Создаем Replicaset
Для этого выполним команду:
kubectl apply -f ~/school-dev-k8s/practice/2.application-abstractions/2.replicaset/replicaset.yaml
Проверим результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-replicaset-pbtdm 0/1 ContainerCreating 0 2s
my-replicaset-z7rwm 0/1 ContainerCreating 0 2s
2. Скейлим Replicaset
Для этого выполним команду:
kubectl scale replicaset my-replicaset --replicas 3
Проверим результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-replicaset-pbtdm 1/1 Running 0 2m
my-replicaset-szqgz 0/1 ContainerCreating 0 1s
my-replicaset-z7rwm 1/1 Running 0 2m
3. Удаляем один из Pod
Для этого выполним команду подставив имя своего Pod:
можно воспользоваться автоподстановкой по TAB
kubectl delete pod my-replicaset-pbtdm
Проверим результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-replicaset-55qdj 0/1 ContainerCreating 0 1s
my-replicaset-pbtdm 1/1 Running 0 4m
my-replicaset-szqgz 1/1 Running 0 2m
my-replicaset-z7rwm 0/1 Terminating 0 4m
4. Добавляем в Replicaset лишний Pod
Открываем файл 2.replicaset/pod.yaml
vim ~/school-dev-k8s/practice/2.application-abstractions/2.replicaset/pod.yaml
И в него после metadata: на следующей строке добавляем:
labels:
app: my-app
В итоге должно получиться:
.............
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
.............
Сохраняем и выходим.
Создаем дополнительный Pod, для этого выполним команду:
kubectl apply -f ~/school-dev-k8s/practice/2.application-abstractions/2.replicaset/pod.yaml
Проверяем результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-pod 0/1 Terminating 0 1s
my-replicaset-55qdj 1/1 Running 0 3m
my-replicaset-pbtdm 1/1 Running 0 8m
my-replicaset-szqgz 1/1 Running 0 6m
5. Обновляем версию Image
Для этого выполним команду:
kubectl set image replicaset my-replicaset nginx=nginx:1.13
Проверяем результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-replicaset-55qdj 1/1 Running 0 3m
my-replicaset-pbtdm 1/1 Running 0 8m
my-replicaset-szqgz 1/1 Running 0 6m
И проверяем сам Replicaset, для чего выполним команду:
kubectl describe replicaset my-replicaset
В результате находим строку Image и видим:
Containers:
nginx:
Image: nginx:1.13
Проверяем версию image в pod. Для этого выполним команду, подставив имя своего Pod
kubectl describe pod my-replicaset-55qdj
Видим что версия имаджа в поде не изменилась:
Containers:
nginx:
Image: nginx:1.12
Помогаем поду обновиться - для этого выполним команду, подставив имя своего Pod
kubectl delete po my-replicaset-55qdj
Проверяем результат, для этого выполним команду:
kubectl get pod
Результат должен быть примерно следующим:
NAME READY STATUS RESTARTS AGE
my-replicaset-55qdj 0/1 Terminating 0 11m
my-replicaset-cwjlf 0/1 ContainerCreating 0 1s
my-replicaset-pbtdm 1/1 Running 0 16m
my-replicaset-szqgz 1/1 Running 0 14m
Проверяем версию Image в новом Pod. Для этого выполним команду, подставив имя своего Pod
kubectl describe pod my-replicaset-cwjlf
Результат должен быть примерно следующим:
Image: nginx:1.13
6. Чистим за собой кластер
Для этого выполним команду:
kubectl delete replicaset --all