Назад | Перейти на главную страницу

Что значит «одна реплика»?

Предварительное замечание: слово реплика для меня означает повторение или копирование, но:

Когда кто-то говорит об «одной реплике», означает ли это один или два экземпляра всего? Интересно, что я сталкивался с использованием первого случая, и это меня немного неуверенно. Основываясь на втором случае, можно ли говорить о «нулевых репликах», если всего существует только одно приложение или экземпляр?

Извините, если этот вопрос кажется немного расплывчатым. Пример время. В моем приложении или экземпляре 8 разных контейнеров в 8 разных модулях.

+------------+--------------+--------------+
| #container |    case 1    |    case 2    |
+------------+--------------+--------------+
| 8 x 1      | "1 replica"  | "0 replicas" |
| 8 x 2      | "2 replicas" | "1 replica"  |
| 8 x 3      | "3 replicas" | "2 replicas" |
| ...        | ...          | ...          |
+------------+--------------+--------------+

Вопрос о том, относится ли слово «реплика» к одному контейнеру / модулю или ко всему приложению, здесь не важен (это эквивалентно), потому что я буду реплицировать каждый отдельный контейнер / модуль из 8 контейнеров / модулей с тем же номером. Я хотел бы знать, предпочитаете ли вы вариант 1 или случай 2 (в обсуждениях с коллегами), или если нумерация начинается с единицы или с нуля. При необходимости отметьте вопрос как основанный на мнении.

Ваш вопрос зависит от многих сценарных факторов. Трудно сказать, потому что вы не представили весь сценарий. Однако вы положили Kubernetes тег, чтобы я мог ответить относительно Kubernetes.

Если вы имеете в виду Replica в Kubernetes это означает, сколько капсулы того же приложения должен работать в кластере.

Это описано в Документы Kubernetes что, когда вы создаете Deployment, это создает ReplicaSet который отвечает за количество существующих подов (количество реплик).

Если вы развернете и масштабируете значение реплик в Deployment он автоматически применяет изменения к ReplicaSet.

$ kubectl run nginx --image=nginx --replicas=3
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
$ kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7db9fccd9b-4gzfd   1/1     Running   0          9s
nginx-7db9fccd9b-7msm2   1/1     Running   0          9s
nginx-7db9fccd9b-mfj9s   1/1     Running   0          9s

$ kubectl scale deployment nginx --replicas=1
deployment.extensions/nginx scaled
$ kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7db9fccd9b-7msm2   1/1     Running   0          78s

В Kubernetes, если вы установите значение реплики на 0, у вас не будет запущенных модулей в этом конкретном Deployment.

$ kubectl scale deploy nginx --replicas=0
deployment.extensions/nginx scaled
sekreta@cloudshell:~ (composite-rune-239911)$ kubectl get deploy
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
nginx   0/0     0            0           6m48s

Итак, если вы спрашиваете о значении Replica относительно Kubernetes concept, собственно это Случай 1.