bhe*_*o39 11 ssl kubernetes kubectl
我在运行kubectl一台机器时遇到错误(windows)
k8s集群正在CentOs 7 kubernetes集群1.7 master,worker上运行
这是我的.kube\config
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://10.10.12.7:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: system:node:localhost.localdomain
name: system:node:localhost.localdomain@kubernetes
current-context: system:node:localhost.localdomain@kubernetes
kind: Config
preferences: {}
users:
- name: system:node:localhost.localdomain
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
使用kubeadm和pki目录中的默认证书构建集群
kubectl无法连接到服务器:x509:由未知权限签名的证书
Mit*_*was 22
就我而言,它的工作原理很简单 ,只需--insecure-skip-tls-verify 在命令末尾添加kubectl一次即可。
sap*_*ish 21
另一种解决方案,以防它对任何人有帮助:
我的场景:
~/.kube/config~/.kube/configfor 中的值server是https://kubernetes.docker.internal:6443 问题: kubectl此端点的命令正在通过代理,我在运行后发现kubectl --insecure-skip-tls-verify cluster-info dump它显示了代理 html 错误页面。
修复:只需确保此 URL 不通过代理,就我使用的 bash 而言export no_proxy=$no_proxy,*.docker.internal
小智 17
跑:
gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400
Run Code Online (Sandbox Code Playgroud)
这devops1-218400是我的项目名称。将其替换为您的项目名称。
Luk*_*ski 12
我在$ kubectl get nodes以 root 用户身份运行时遇到了同样的错误。我通过导出kubelet.conf到环境变量来修复它。
$ export KUBECONFIG=/etc/kubernetes/kubelet.conf
$ kubectl get nodes
Run Code Online (Sandbox Code Playgroud)
所以 kubectl 不信任集群,因为无论出于何种原因,配置都搞砸了(包括我的)。要解决此问题,您可以使用 openssl 从集群中提取证书
openssl.exe s_client -showcerts -connect IP:PORT
Run Code Online (Sandbox Code Playgroud)
IP:PORT 应该是您配置中的内容 server:
将从-----BEGIN CERTIFICATE-----to开始的粘贴内容-----END CERTIFICATE-----(包括这些行)复制到一个新的文本文件中,例如... myCert.crt 如果有多个条目,则复制所有条目。
现在转到 .kube\config 而不是
certificate-authority-data: <wrongEncodedPublicKey>`
Run Code Online (Sandbox Code Playgroud)
放
certificate-authority: myCert.crt
Run Code Online (Sandbox Code Playgroud)
(它假设您将 myCert.crt 与配置文件放在同一文件夹中)如果您正确制作了证书,它将信任集群(尝试重命名文件,之后不再信任)。我希望我知道证书颁发机构数据使用什么编码,但经过几个小时的谷歌搜索后,我求助于这个解决方案,回顾过去,我认为无论如何它更优雅。
我只是想分享,抱歉我没能早点提供这个,因为我刚刚意识到这是造成的
所以在主节点上我们运行了一个 kubectl 代理
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
Run Code Online (Sandbox Code Playgroud)
我停止了这个,瞧错误消失了。
我现在可以做
kubectl 获取节点 姓名 状态 年龄 版本 centos-k8s2 Ready 3d v1.7.5 localhost.localdomain Ready 3d v1.7.5
我希望这可以帮助那些偶然发现这种情况的人
对于那些像我一样迟到的人,这些答案都不适合你,我可能有解决方案:
当我将 .kube/config 文件复制到我的 Windows 10 计算机(安装了 kubectl)时,我没有将 IP 地址从 127.0.0.1:6443 更改为主服务器的 IP 地址 192.168.xx(运行连接的 Windows 10 计算机)到同一网络上的树莓派集群)。确保你这样做,它可能会像解决我的问题一样解决你的问题。
| 归档时间: |
|
| 查看次数: |
19935 次 |
| 最近记录: |