Gymterview
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.