Kubernetes:如何扩展我的豆荚

Den*_*boy 9 kubernetes

我是Kubernetes的新手.我尝试扩展我的豆荚.首先,我开始了3个豆荚:

./cluster/kubectl.sh run my-nginx --image=nginx --replicas=3 --port=80
Run Code Online (Sandbox Code Playgroud)

有3个豆荚.首先,我尝试使用复制控制器进行扩展/缩小,但这不存在.它现在似乎是一个replicaSet.

./cluster/kubectl.sh get rs
NAME                  DESIRED   CURRENT   AGE
my-nginx-2494149703   3         3         9h
Run Code Online (Sandbox Code Playgroud)

我试图更改我的replicaset中描述的副本数量:

./cluster/kubectl.sh scale --replicas=5 rs/my-nginx-2494149703
replicaset "my-nginx-2494149703" scaled
Run Code Online (Sandbox Code Playgroud)

但我仍然看到我的3个原始豆荚

./cluster/kubectl.sh get pods
NAME                        READY     STATUS    RESTARTS   AGE
my-nginx-2494149703-04xrd   1/1       Running   0          9h
my-nginx-2494149703-h3krk   1/1       Running   0          9h
my-nginx-2494149703-hnayu   1/1       Running   0          9h
Run Code Online (Sandbox Code Playgroud)

我希望看到5个豆荚.

./cluster/kubectl.sh describe rs/my-nginx-2494149703
Name:       my-nginx-2494149703
Namespace:  default
Image(s):   nginx
Selector:   pod-template-hash=2494149703,run=my-nginx
Labels:     pod-template-hash=2494149703
        run=my-nginx
Replicas:   3 current / 3 desired
Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed
Run Code Online (Sandbox Code Playgroud)

为什么不扩大规模?我是否还必须在部署中更改某些内容?

当我在扩展后描述我的rs时,我看到类似的东西:(这里我尝试从一个正在运行的pod扩展到3个正在运行的pod).但它仍然是一个运行的pod.其他2人立即开始杀死

  34s       34s     1   {replicaset-controller }            Normal      SuccessfulCreate    Created pod: my-nginx-1908062973-lylsz
  34s       34s     1   {replicaset-controller }            Normal      SuccessfulCreate    Created pod: my-nginx-1908062973-5rv8u
  34s       34s     1   {replicaset-controller }            Normal      SuccessfulDelete    Deleted pod: my-nginx-1908062973-lylsz
  34s       34s     1   {replicaset-controller }            Normal      SuccessfulDelete    Deleted pod: my-nginx-1908062973-5rv8u
Run Code Online (Sandbox Code Playgroud)

Har*_*ler 34

这对我有用

kubectl scale --replicas=<expected_replica_num> deployment <deployment_label_name>
Run Code Online (Sandbox Code Playgroud)

例子

# kubectl scale --replicas=3 deployment xyz
Run Code Online (Sandbox Code Playgroud)


Rob*_*ley 13

TL; DR:您需要直接扩展部署而不是副本集.

如果您尝试扩展副本集,那么这将(在很短的时间),有5新的计数,但部署控制器将看到副本集的当前计数为5,因为它知道,它应该如果是3,它会将其重置为3.通过手动修改为您创建的副本集,您正在与系统控制器进行战斗(这是不懈的,并且几乎总是比您长.).

  • 尝试在副本集上启用自动缩放将使您处于与手动缩放副本集相同的情况 - 除非现在您将有两个控制器进行战斗,而不是与控制器进行战斗.使用`kubectl autoscale deployment`在部署上启用自动缩放是向nginx pod添加水平pod自动缩放的正确方法. (2认同)

AAT*_*RAN 12

kubectl run my-nginx --image=nginx --replicas=3 --port=80kubectl run将创建一个部署作业来管理创建的容器。
Deployment-->ReplicaSet-->Pod这就是 kubernetes 的工作方式。
如果您更改底层对象,则其更高级别的对象将撤消您的更改。您必须更改顶层对象。

在此处输入图片说明


Isu*_*nga 10

将其缩小到零,然后缩小到您需要的 pod 数量(猜它等于 3)

kubectl scale deployment <deployment-name> --replicas=0 -n <namespace>
kubectl scale deployment <deployment-name> --replicas=3 -n <namespace>
Run Code Online (Sandbox Code Playgroud)