微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

microk8s,DEVOPS:无法连接到服务器:x509:证书对<内部IP>有效,对<外部IP>有效

如何解决microk8s,DEVOPS:无法连接到服务器:x509:证书对<内部IP>有效,对<外部IP>有效

我在ubuntu笔记本电脑上有一个microk8s集群。 我想通过azure devops管道在其上应用部署yaml文件

我已经在我的devops中成功定义了Kubernetes Service连接,并通过了验证。虽然当我尝试应用yaml文件时我得到了以下几行

/usr/bin/kubectl apply -f /home/vsts/work/1/s/devops/deploymen.yaml -o json


##[error]Unable to connect to the server: x509: certificate is valid for 127.0.0.1,10.152.183.1,192.168.50.69,172.17.0.1,10.1.80.0,not <my external IP>

192.168.50.69是我的网络中笔记本电脑的IP地址

我应该在哪里添加外部IP?

编辑:

我找到了Authentication and authorization,并编辑了 /var/snap/microk8s/current/certs/csr.conf.template,所以它现在包含了我的IP。

文章说:

更改后,apiserver-kicker将自动检测差异,生成新证书并重新启动apiserver。您的DNS服务器设置和 kubeconfig 文件必须适当更新。

证书颁发机构数据/var/snap/microk8s/current/certs/ca.crt中的证书现在看起来与 microk8s config中的证书不同

我还如上所述更新了 kubeconfig

但是仍然没有运气!

解决方法

解决这些问题的方法是修改模板,添加缺少的IP地址

/var/snap/microk8s/current/certs/csr.conf.template

...

[ alt_names ]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster
DNS.5 = kubernetes.default.svc.cluster.local
IP.1 = 127.0.0.1
IP.2 = 192.168.1.1
IP.100 = 192.168.1.1 # USE IP > 100
#MOREIPS

...

当你修改这个模板文件时,microk8s 守护进程会生成一个新的 csr.conf

发生这种情况是因为如果您检查 sudo cat /var/snap/microk8s/current/certs/csr.conf 文件,您分配的 IP 的 ID 已被另一个 IP 占用。

要解决此冲突,必须使用更高的 ID,这将起作用

,

我转载了您的问题,解决方案似乎是在kubeconfig文件中添加证书或跳过tls验证。

您可以通过将insecure-skip-tls-verify: true添加到kubeconfig文件来做到这一点,使其看起来像这样:

- cluster:
    insecure-skip-tls-verify: true
    server: https://<master_ip>:<port>

或在您的microk8s集群上修改kubeconfig,并将server: https://127.0.0.1:16443更改为server: https://<master_ip>:16443并将其复制到您要从中访问集群的主机。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。