Replication Controller (контроллер репликации) помогает запускать несколько экземпляров приложения в кластере, обеспечивая высокую доступность. Он гарантирует, что заданное количество реплик будет всегда работать. Когда кол-во пользователей увеличивается, мы увеличиваем кол-во Pod, он еще и помогает распределять нагрузку между узлами.
Контроллер репликаций — создание rc-definition.yml
Структура файла:
apiVersion: v1
kind: ReplicationController
metadata:
name: myapp-rc
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: nginx
labels:
app: myapp
type: front-end
spec:
containers:
— name: nginx-container
image: nginx
replicas: 3
Сохраните файл и выполните команду:
kubectl create -f rc-definition.yml
Будет создан контроллер репликации и он создаст 3 копии модуля.
kubectl get replicationcontroller
Покажет список репликаций, их текущее кол-во и количество готовых реплик.
kubectl get pods
Выведет список созданных Pod и их статус.
Replica Set — набор реплик, новый рекомендуемый способ настройки репликаций.
Структура файла replicaset-definition.yml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: myapp-replicaset
labels:
app: myapp
type: front-end
spec:
template:
metadata:
name: nginx
labels:
app: myapp
type: front-end
spec:
containers:
— name: nginx-container
image: nginx
replicas: 3
selector:
matchLabels:
type: front-end
Для создания ReplicaSet (набор реплик) нужно выполнить команду:
kubectl create -f replicaset-definition.yml
Набор реплик — процесс отслеживающий Pod, и в случае сбоя — развертывает новые. Он поддерживает желаемое кол-во Pod.
Варианты увеличения кол-ва реплик:
- Изменить файл replicaset-definition.yml указал большее кол-во replicas и затем выполнить команду kubectl replace -f replicaset-definition.yml
- kubectl scale —replicas=6 -f replicaset-definition.yml
Удаление ReplicaSet (набора реплик):
kubectl delete replicaset myapp-replicaset