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

Ala*_*orm 7 kubernetes linux-containers kubectl

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

kubectl create -f k8-deployment.yaml
Run Code Online (Sandbox Code Playgroud)

我的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: {}
Run Code Online (Sandbox Code Playgroud)

这会导致启动单个 Pod。

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

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

是否有一种公认的方式来完成我想要的事情,或者 K8s 是一种我只需要进行试验并希望获得最好结果的技术?

Jon*_*nas 10

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

命令式方式:(这将与 yaml 文件中的内容有所不同)

kubectl scale deployment mage-di --replicas=2
Run Code Online (Sandbox Code Playgroud)

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

replicas: 2
Run Code Online (Sandbox Code Playgroud)

然后将其应用到集群:

kubectl apply -f k8-deployment.yaml
Run Code Online (Sandbox Code Playgroud)

也可以看看: