"MountVolume.SetUp" 失败,无法为卷 "kube-api-access-cvwdt" 进行设置:对象 "default"/"kube-root-ca.crt" 未注册。

6

我只是想运行一个简单的批处理作业,但是遇到了这个错误:“MountVolume.SetUp failed for volume "kube-api-access-cvwdt" : object "default"/"kube-root-ca.crt" not registered”

当我在该Pod上运行describe pod时,这些是我的日志:

  Normal   Scheduled    59s                default-scheduler  Successfully assigned default/stock-api to ip-192-168-63-5.us-west-2.compute.internal
  Normal   Pulling      58s                kubelet            Pulling image "mpriv32/stockapi:latest"
  Normal   Pulled       38s                kubelet            Successfully pulled image "mpriv32/stockapi:latest" in 19.862095063s
  Normal   Created      35s                kubelet            Created container stock-api
  Normal   Started      35s                kubelet            Started container stock-api
  Warning  FailedMount  33s (x3 over 34s)  kubelet            MountVolume.SetUp failed for volume "kube-api-access-cvwdt" : object "default"/"kube-root-ca.crt" not registered

我的job.yaml文件用于创建Pod

apiVersion: v1
kind: Pod
metadata:
  name: stock-api
  labels:
    app: stock-api

spec:
  containers:
  - name: stock-api
    image: mpriv32/stock-api:latest
    envFrom:
    - secretRef:
        name: api-credentials
  restartPolicy: Never

如果有所不同的话,我正在尝试在EKS上运行这个程序。

1个回答

9
你可能面临的问题是 kubelet 上的一个 bug,此问题在 这里 进行了讨论,已经在 K8s 1.23.6 中修复。
故障应该是零星的,因此简单地重新创建 Pod 可能已经可以解决它。更可靠的方法是升级 K8s 或禁用 automountServiceAccountToken。这将停止挂载有关的 CA 到你的 Pod。由于只有在需要访问 Kube API 服务器时才需要该 CA,因此这是一个明智的安全措施。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接