kubectl create与apply创建ServiceAccount时字段管理器差异问题
关于kubectl create与apply创建ServiceAccount的字段管理器差异问题
在CAPI集群中,分别使用kubectl create和kubectl apply命令创建如下空ServiceAccount:
apiVersion: v1 kind: ServiceAccount metadata: name: build-robot
使用kubectl create创建后的结果
执行kubectl create后,通过k get sa -oyaml --show-managed-fields查看ServiceAccount的yaml:
apiVersion: v1 items: - apiVersion: v1 kind: ServiceAccount metadata: creationTimestamp: "2024-01-24T15:11:24Z" name: build-robot namespace: default resourceVersion: "7337504" uid: e2414d28-d897-4099-ac5d-699c89835615 secrets: - name: build-robot-token-77p6d
使用kubectl apply创建后的结果
执行kubectl apply后,通过k get sa -oyaml --show-managed-fields查看结果:
apiVersion: v1 items: - apiVersion: v1 kind: ServiceAccount metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"ServiceAccount","metadata":{"annotations":{},"name":"build-robot","namespace":"default"}} creationTimestamp: "2024-01-24T15:10:55Z" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:secrets: .: {} k:{"name":"build-robot-token-8rqgq"}: {} manager: kube-controller-manager operation: Update time: "2024-01-24T15:10:55Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/last-applied-configuration: {} manager: kubectl-client-side-apply operation: Update time: "2024-01-24T15:10:55Z" name: build-robot namespace: default resourceVersion: "7337399" uid: 0bac2513-844f-4526-b374-3642bdf26838 secrets: - name: build-robot-token-8rqgq
差异现象
通过kubectl apply创建的ServiceAccount存在由kube-controller-manager管理的secrets字段管理器,而kubectl create创建的ServiceAccount则无此字段管理器。使用Pod进行相同测试时,两种方式仅存在预期内的差异(如last-applied-configuration注解),无此异常现象。
问题原因更新
该现象属于特定Kubernetes版本中的bug,后续版本中使用kubectl apply创建ServiceAccount时,将不会出现kube-controller-manager字段管理器。
内容的提问来源于stack exchange,提问作者subtleseeker
相关产品推荐
相关产品推荐

