Предварительное замечание: слово реплика для меня означает повторение или копирование, но:
Когда кто-то говорит об «одной реплике», означает ли это один или два экземпляра всего? Интересно, что я сталкивался с использованием первого случая, и это меня немного неуверенно. Основываясь на втором случае, можно ли говорить о «нулевых репликах», если всего существует только одно приложение или экземпляр?
Извините, если этот вопрос кажется немного расплывчатым. Пример время. В моем приложении или экземпляре 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.