Kubernetes 1.24+手动创建ServiceAccount Secret后无法查询求助
排查Kubernetes 1.24+手动创建ServiceAccount Secret后无法找到的问题
核心排查步骤:
全命名空间排查Secret
先确认cicd-secret是否存在于任何命名空间中:kubectl get secrets --all-namespaces检查当前上下文的命名空间
你创建Secret的YAML未指定命名空间,Kubernetes会默认使用当前上下文的命名空间。执行以下命令查看当前上下文的默认命名空间:kubectl config view --minify --output 'jsonpath={..namespace}'查看集群事件日志
若创建命令提示成功但Secret不存在,检查事件日志找异常:kubectl get events --all-namespaces | grep -i secret或聚焦
weatherdispatch命名空间:kubectl get events -n weatherdispatch | grep -i secret确保ServiceAccount与Secret同命名空间
你的cicdServiceAccount在weatherdispatch命名空间,创建Secret时必须指定相同命名空间才能关联。修改创建脚本:kubectl apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: cicd-secret namespace: weatherdispatch annotations: kubernetes.io/service-account.name: cicd type: kubernetes.io/service-account-token EOF执行后再次在
weatherdispatch命名空间查询Secret:kubectl get secrets -n weatherdispatch检查准入控制器或清理策略
部分集群可能配置了OPA Gatekeeper、PodSecurityPolicy等准入控制器,或定时清理任务,会删除未关联的ServiceAccount Secret。可联系集群管理员确认相关配置。
内容的提问来源于stack exchange,提问作者Kishan Kumar
相关产品推荐
相关产品推荐

