You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

kubectl scale操作中replicas字段的管理字段异常问题问询

Kubernetes Deployment replicas字段所有权问题分析

版本信息

客户端:"v1.25.13"
服务端:"v1.26.8"
同时在以下版本中测试:
  客户端:v1.29.1
  服务端:v1.28.4

操作背景

我创建了一个Deployment,按指定顺序执行kubectl scale和kubectl edit操作,所有观察结果与问题均针对replicas字段。

操作步骤与观察结果

  1. apply操作:yaml中未指定replicas,采用默认值1;该字段仍为被kubectl-client-side-apply和kube-controller-manager管理的托管字段
  2. 从1扩缩容至3:由kube-controller-manager和kubectl的scale子资源管理
  3. 从3扩缩容至0:无所有权,处于非托管状态
  4. 从0扩缩容至1:仅由kube-controller-manager拥有所有权
  5. edit操作从1修改至0:仅由kubectl-edit拥有所有权
  6. 从0扩缩容至1:由kube-controller-manager和kubectl的scale子资源拥有所有权
  7. 从1扩缩容至0:无所有权,处于非托管状态
  8. edit操作从0修改至1:由kube-controller-manager和kubectl-edit拥有所有权

问题

Q1. 在步骤(2)中,为何kubectl-client-side-apply的所有权会被撤销?
Q2. 步骤(3)的行为看似异常,是否意味着replicas=0时不应被拥有所有权?replicas=0有何特殊之处?
Q3. 在步骤(4)中,为何该字段未同时被带有scale子资源的kubectl拥有所有权?
Q4. 与步骤(3)中使用kubectl scale将replicas设为0时无所有权的情况不同,步骤(5)中使用kubectl edit设为0时为何仅由kubectl-edit拥有所有权?
Q5. 与步骤(4)相比,步骤(6)中kubectl edit和kubectl scale操作有何差异导致结果不同?

参考YAML配置

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: demo-pvc-claim
  namespace: demo
  labels:
    app: nginx
spec:
  storageClassName: nutanix-volume
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: clear-nginx-deployment
  namespace: demo
spec:
  selector:
    matchLabels:
      app: clear-nginx
  template:
    metadata:
      labels:
        app: clear-nginx
    spec:
      containers:
      - name: clear-nginx
        image: clearlinux/nginx
        volumeMounts:
        - mountPath: /var/www/html
          name: site-data
        ports:
        - containerPort: 80
      volumes:
      - name: site-data
        persistentVolumeClaim:
          claimName: demo-pvc-claim

内容的提问来源于stack exchange,提问作者subtleseeker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:47:34