如何使用更多副本更新 K8s 部署

时间:2021-05-13 21:04:28

标签: kubernetes kubectl linux-containers

我使用 kubectl create 命令创建了一个简单的 K8s 部署

kubectl create -f k8-deployment.yaml

我的 k8-deployment.yaml 文件看起来像这样

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: mage-di
  name: mage-di
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mage-di
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: mage-di
    spec:
      containers:
      - image: astorm/mage-di
        name: mage-di
        imagePullPolicy: Never
        resources: {}
status: {}

这会导致启动单个 Pod。

我想告诉我的 k8 集群需要更多的 Pod 来处理预期的流量高峰。

我该怎么做?如果我查看 kubectl help,我会看到有一个 edit 命令允许我编辑部署对象的配置,但这需要交互式编辑器。此外,我是 K8s 的新手,我不确定就地编辑部署并更新其副本计数是否足以触发 正确 新 Pod 的创建。如果我查看其他 kubectl 命令,我会发现还有一个 rolloutapplypatch 命令可以执行我想要的操作。

是否有一种规范可接受的方式来做我想做的事,或者 K8s 是那种我只需要试验并希望最好的技术?

1 个答案:

答案 0 :(得分:3)

您可以通过两种方式执行此操作。 命令式 - 一个快速命令 或者 声明式 - 适用于将部署清单存储在 Git 中的生产环境。

势在必行的方式:(这将与您在 yaml 文件中的内容有所不同)

kubectl scale deployment mage-di --replicas=2

声明方式,在您的 Yaml 文件中编辑这一行:

replicas: 2

然后将其应用到集群中:

kubectl apply -f k8-deployment.yaml

另见: