跳转至

Pod 扩容与缩容

我们创建了一个 Deployment ,然后通过 服务 提供访问 Pod 的方式。我们发布的 Deployment 只创建了一个 Pod 来运行我们的应用程序。当流量增加时,我们需要对应用程序进行伸缩操作以满足系统性能需求。

  1. 修改 nginx-deployment.yaml 文件
  2. 将 replicas 修改为 4

查看 pod
apiVersion: v1
kind: Namespace # 配置的类型,我们使用的是 Namespace
metadata:
  name: datarc # 命令空间名称

---

apiVersion: apps/v1 #与k8s集群版本有关,使用 kubectl api-versions 即可查看当前集群支持的版本
kind: Deployment    #该配置的类型,我们使用的是 Deployment
metadata:           #译名为元数据,即 Deployment 的一些基本属性和信息
  namespace: datarc #命名空间
  name: nginx-deployment    #Deployment 的名称
  labels:       #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组,目前不需要理解
    app: nginx  #为该Deployment设置key为app,value为nginx的标签
spec:           #这是关于该Deployment的描述,可以理解为你期待该Deployment在k8s中如何使用
  replicas: 4   # 使用该 Deployment 创建4个应用程序实例
  selector:     #标签选择器,与上面的标签共同作用,目前不需要理解
    matchLabels: #选择包含标签app:nginx的资源
      app: nginx
  template:     #这是选择或创建的Pod的模板
    metadata:   #Pod的元数据
      labels:   #Pod的标签,上面的selector即选择包含标签app:nginx的Pod
        app: nginx
    spec:       #期望Pod实现的功能(即在pod中部署)
      containers:   #生成container,与docker中的container是同一种
      - name: nginx #container的名称
        image: nginx:1.7.9  #使用镜像nginx:1.7.9创建container,该container默认80端口可访问
        ports:
       - containerPort: 80
3. 执行命令
kubectl apply -f nginx-deployment.yaml
4. 查看结果
kubectl get pods -o wide -n datarc

替换为你的 Deployment 的名称, 替换为你期望的Pod副本数

kubectl scale deployment <deployment-name> --replicas=<desired-replicas>

image-20240117153359129

Deployment 名为 datarc-test-pod,将 Pod 副本数扩展到 5 个:

kubectl scale deployment my-deployment --replicas=5

image-20240117153433548

Deployment 名为 datarc-test-pod,将 Pod 副本数缩容到 1 个:

kubectl scale deployment my-deployment --replicas=1

image-20240117153530958

kubectl edit deployment <deployment-name>

image-20240117152635929

spec.replicas字段设置为所需的Pod副本数

image-20240117152800336