当前位置: 首页 > 知识库问答 >
问题:

kubectl无法连接到服务器:x509:证书由未知的机构签署

贾越
2023-03-14

我得到一个错误时运行kubectl一个机器(windows)

k8s集群运行在CentOs 7 kubernetes集群1.7主,工作者

这是我的.库贝配置

  
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:证书由未知的机构签署

共有3个答案

高和通
2023-03-14

所以kubectl不信任集群,因为无论出于什么原因,配置都被搞砸了(包括我的)。要解决这个问题,您可以使用openssl从集群中提取证书

openssl.exe s_client -showcerts -connect IP:PORT

IP:端口应该是配置文件中在服务器:

将从----BEGIN CERTIFICATE---开始粘贴到----END CERTIFICATE---(包括这些行)的内容复制到一个新的文本文件中,例如。。。迈卡特尔。crt如果有多个条目,请复制所有条目。

现在去吧。kube\config,而不是

certificate-authority-data: <wrongEncodedPublicKey>`

certificate-authority: myCert.crt

(它假设你把myCert.crt和配置文件放在同一个文件夹中)如果你正确地做了证书,它将信任集群(尝试重命名文件,之后它不再信任)。我希望我知道证书-权威-数据使用什么编码,但是在谷歌搜索了几个小时后,我求助于这个解决方案,回头看,我认为它更优雅。

姬自强
2023-03-14

运行:

gcloud container clusters get-credentials standard-cluster-1 --zone us-central1-a --project devops1-218400

这里devops1-218400是我的项目名称。将其替换为您的项目名称。

许鸿志
2023-03-14

如果它能帮助任何人,还有一个解决方案:

我的设想是:

  • 使用Windows 10
  • 库伯内特斯通过Docker桌面用户界面安装2.1.0.1
  • 安装程序在~/创建了配置文件。库贝/config
  • ~/中的值。server的库贝/confighttps://kubernetes.docker.internal:6443
  • 使用代理

问题:kubectl指向该endpoint的命令正在通过代理,我在运行显示代理html错误页面的kubectl--unsecure skip tls verify cluster info dump后发现了这个问题。

修正:只是确保这个URL不会通过代理,在我的bash中,我使用了export no_proxy=$no_proxy,*。码头工人。内部

 类似资料:
  • 我正在配置一个Kubernetes集群,在CoreOS中有2个节点,如中所述https://coreos.com/kubernetes/docs/latest/getting-started.html没有法兰绒。两台服务器都在同一个网络中。 但在worker中运行kubelet时,我得到了:x509:未知授权机构签署的证书(可能是因为尝试验证候选授权机构证书“kube ca”时出现了“crypto

  • 我试图从Web请求数据的一些基本示例,但是所有对不同主机的请求都会导致SSL错误:。注意:我不支持代理,也没有发生任何形式的证书拦截,因为使用curl或浏览器没有问题。 我目前使用的代码示例是: 编辑:代码运行在Arch linux内核4.9.37-1-lts上。 编辑2:显然在我的系统上的版本之间有差异,通过(重新)移动证书并重新手动安装包,问题得到了解决。

  • 我正在使用Go包来查询pzug。应用程序的容器化如下: 但是,我得到以下错误: 我已经尝试过这里建议的x509证书,该证书由未知的权威机构签署,但运气不佳。有什么想法吗?

  • 我正在使用和创建。我正在使用该公司的VPN。 通过kubectl create-f./rc/mongo-rc.yaml命令创建了RC。 使用kubectl describe pod mongo-5zttk命令时出现以下kubernetes事件: 当我尝试使用访问网址时: 我可以成功地从泊坞中心注册表中提取 映像。 环境信息: minikube版本:v1.14.1 kubectl 客户端版本:v1.

  • 在https://kubernetes.io/blog/2019/03/15/kubernetes-setup-using-ansible-and-vagrant/之后,试图在苹果电脑上使用流浪者来设置库伯内特斯。通过安西珀剧本步骤: 我收到错误: 致命:[k8s-master]:失败!= 因此,我尝试手动运行Kubeadm init命令: 我用--ignore preflight errors

  • 我正在尝试设置一个私有docker注册表,由一个反向nginx代理保护,该代理通过客户端证书验证用户。 我得到的错误是: x509:由未知机构签署的证书 根据文档,您应该能够将证书添加到/etc/docker/certs中。我已经这么做了。Docker似乎看到了证书的位置: EBU[0015]呼叫POST/v1。24/图像/创建?fromImage=docker。矮人。组织/名册 我还尝试从myd