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

Docker Desktop Kubernetes证书缺失致kubectl命令报错的解决方法求助

Docker Desktop(Mac)Kubernetes中kubectl exec/kubectl logs命令失败的解决方法

我按照官方步骤在Mac版Docker Desktop中启用了Kubernetes,kubectl apply、kubectl get这类命令能正常运行,但kubectl exec、kubectl logs执行失败,报错如下:

$ kubectl.docker logs -n kube-system kube-apiserver-docker-desktop
Error from server: Get "https://192.168.65.4:10250/containerLogs/kube-system/kube-apiserver-docker-desktop/kube-apiserver": open /run/config/pki/apiserver-kubelet-client.crt: no such file or directory

相关版本信息:

$ kubectl.docker version --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.24.0
Kustomize Version: v4.5.4
Server Version: v1.24.0
$ docker version
Client:
 Cloud integration: v1.0.24
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:49:20 2022
 OS/Arch:           darwin/arm64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.8.2 (79419)
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:45:44 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

解决步骤

1. 重置Kubernetes集群

打开Docker Desktop偏好设置,切换到Kubernetes标签页,勾选「Reset Kubernetes cluster」,等待重置完成后重启Docker Desktop。

2. 确认kubectl上下文

执行以下命令确保kubectl使用的是Docker Desktop的Kubernetes上下文:

kubectl config get-contexts
kubectl config use-context docker-desktop

3. 手动修复证书缺失(重置无效时使用)

进入Docker Desktop的Kubernetes节点容器:

docker exec -it docker-desktop bash

创建证书目录并复制现有证书:

mkdir -p /run/config/pki
cp /etc/kubernetes/pki/apiserver-kubelet-client.crt /run/config/pki/
cp /etc/kubernetes/pki/apiserver-kubelet-client.key /run/config/pki/

退出容器后重启kube-apiserver Pod(Kubernetes会自动重建):

kubectl delete pod -n kube-system kube-apiserver-docker-desktop

4. 升级Docker Desktop版本

当前使用的Docker Desktop 4.8.2存在已知的Kubernetes证书挂载bug,建议升级到最新稳定版,升级后重新启用Kubernetes即可解决此类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:24:53