我在运行kubectl one one machine(windows)
时遇到错误k8s集群正在CentOs 7 kubernetes集群1.7上运行 主人,工人
这是我的.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:由未知权限签名的证书
答案 0 :(得分:3)
另一种解决方案,以防万一:
我的情况:
~/.kube/config
上创建了配置文件~/.kube/config
中server
中的值是https://kubernetes.docker.internal:6443
问题::对该端点的kubectl
命令正在通过代理,我在运行kubectl --insecure-skip-tls-verify cluster-info dump
后发现了该错误,该命令显示了代理html错误页面。
修正::只是确保该URL不会通过代理,在我的情况下,我使用export no_proxy=$no_proxy,*.docker.internal
答案 1 :(得分:2)
我只是想分享,抱歉我之前没有能够提供这个,因为我刚刚意识到这是造成的
所以在主节点上我们正在运行kubectl代理
kubectl proxy --address 0.0.0.0 --accept-hosts '.*'
我停止了这一点,并且错误消失了。
我现在能够做到
kubectl get nodes NAME STATUS AGE VERSION centos-k8s2 Ready 3d v1.7.5 localhost.localdomain Ready 3d v1.7.5
我希望这可以帮助那些偶然发现这种情况的人
答案 2 :(得分:2)
运行:
gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400
这里devops1-218400
是我的项目名称。将其替换为您的项目名称。
答案 3 :(得分:1)
我的情况是我解决了将kubelet配置复制到我的家庭kube配置中的问题
cat /etc/kubernetes/kubelet.conf>〜/ .kube / config
答案 4 :(得分:1)
之所以发生这种情况,是因为我公司的网络不允许通过其网络进行自签名证书。尝试切换到其他网络
答案 5 :(得分:1)
对于像我一样迟到线程的人,这些答案都没有对您有用,我可能会找到解决方案:
当我将.kube / config文件复制到Windows 10计算机(安装了kubectl)时,我没有将IP地址从127.0.0.1:6443更改为主机的IP地址192.168.x.x。 (正在运行Windows 10机器连接到同一网络上的raspberry pi群集)。确保执行此操作,它可以像解决我的问题一样解决您的问题。
答案 6 :(得分:1)
因此,kubectl不信任集群,因为无论出于何种原因,配置都被弄乱了(包括我的)。要解决此问题,您可以使用openssl从群集中提取证书
openssl.exe s_client -showcerts -connect IP:PORT
IP:PORT应该是您的配置中在server:
之后写的内容
将从-----BEGIN CERTIFICATE-----
到-----END CERTIFICATE-----
(包括这些行)的粘贴内容复制到一个新的文本文件中,例如... myCert.crt如果有多个条目,则将它们全部复制。
现在转到.kube \ config而不是
certificate-authority-data: <wrongEncodedPublicKey>`
放入
certificate-authority: myCert.crt
(假定您将myCert.crt放在配置文件所在的文件夹中) 如果您正确制作了证书,它将信任该群集(尝试重命名该文件,之后便不再信任该文件)。 我希望我知道对证书颁发机构数据进行编码的方式,但是在搜索了几个小时之后,我求助于此解决方案,回头看我仍然认为它更优雅。
答案 7 :(得分:0)
如果出现错误,您应该导出包含证书的所有kubecfg。 kops export kubecfg "your cluster-name
和export KOPS_STATE_STORE=s3://"paste your S3 store"
。
现在您应该能够访问并查看群集的资源。
答案 8 :(得分:0)
在GCP上
检查:gcloud版本
-localMacOS#gcloud版本
运行: --- localMacOS#gcloud容器集群获取凭据'clusterName'\ --zone = us-'zoneName'
从控制台获取clusterName和zoneName -在这里:https://console.cloud.google.com/kubernetes/list?
ref:.x509 @GCP #Kubernetes上的市场部署
答案 9 :(得分:0)
以root用户身份运行$ kubectl get nodes
时遇到相同的错误。我通过将kubelet.conf
导出到环境变量来修复它。
$ export KUBECONFIG=/etc/kubernetes/kubelet.conf
$ kubectl get nodes
答案 10 :(得分:0)
这是一个古老的问题,但是如果这也可以帮助其他人,则是另一个可能的原因。
让我们假设您已经用用户x部署了Kubernetes。如果.kube目录位于/ home / x用户下,并且您以root或y用户连接到该节点,则会出现此错误。
您需要切换到用户配置文件,以便kubernetes可以从.kube目录中加载配置。
更新:从主节点复制本地PC上的(numberOfJokers-- > 0 || cardsTable[i + c] == 1)
文件内容时,请确保使用有效IP替换负载均衡器的主机名。就我而言,问题与dns查找有关。
希望这会有所帮助。
答案 11 :(得分:0)
我收到这个是因为我没有连接到办公室的 VPN