junior
Что такое ReplicaSet?
ReplicaSet — контроллер, который гарантирует, что указанное количество одинаковых Pod’ов (реплик) запущено в любой момент времени.
Основные функции
- Поддерживает заданное количество реплик Pod’а (поле
replicas) - Если Pod упал или был удалён — автоматически создаёт новый
- Если Pod’ов больше, чем нужно — удаляет лишние
- Использует label selector для определения, какие Pod’ы принадлежат данному ReplicaSet
Пример манифеста ReplicaSet
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: my-app-rs
spec:
replicas: 3
selector:
matchLabels:
app: my-java-app
template:
metadata:
labels:
app: my-java-app
spec:
containers:
- name: app
image: my-registry/my-java-app:1.0.0
ports:
- containerPort: 8080
На практике ReplicaSet не создают напрямую. Вместо этого используют Deployment, который управляет ReplicaSet’ами автоматически и предоставляет возможности обновления и отката.
На собеседовании: достаточно сказать, что ReplicaSet поддерживает нужное количество реплик Pod’ов и что напрямую его не создают — используют Deployment. Частая ошибка — не знать разницу между ReplicaSet и Deployment.