“一个副本”是什么意思?

“一个副本”是什么意思?

初步说明:对于我来说,“复制”一词意味着重复或复制,但是:

当有人说“一个副本”时,这是指总共一个实例还是两个实例?有趣的是,我遇到过前一种情况的使用,这让我有点不放心。基于第二种情况,如果总共只有一个应用程序或实例,会说“零副本”吗?

抱歉,这个问题似乎有点模糊。举个例子。我的应用程序或实例在 8 个不同的 pod 中有 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" |
| ...        | ...          | ...          |
+------------+--------------+--------------+

这里,“副本”一词是指单个容器/pod还是整个应用程序并不重要(它们是等效的),因为我将复制 8 个具有相同编号的容器/pod 中的每个不同容器/pod。我想知道您是否更愿意使用案例 1 或案例 2(在同事讨论中),或者编号是从一开始还是从零开始。如有必要,请将问题标记为基于意见。

答案1

您的问题取决于许多情景因素。很难说,因为您没有提供整个情景。不过您放了Kubernetes标签,所以我可以回答Kubernetes

如果你指的是ReplicaKubernetes意味着有多少同一应用程序的 pod应该在集群中运行。

它被描述在Kubernetes 文档当你创建时Deployment,它会创建ReplicaSet负责现有 pod 数量(副本数量)的。

如果你将部署和扩展副本值,Deployment它将自动将更改应用于副本集

$ 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,则此特定的 中将不会有任何正在运行的 pod 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

因此,如果你问的是Replicaregarding的含义Kubernetes concept,那么正确的是情况1

相关内容