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

Ubuntu microk8s,DEVOPS:无法连接到服务器:x509:证书对<;有效;内部IP>;,不是<;外部IP>;,ubuntu,kubernetes,microk8s,Ubuntu,Kubernetes,Microk8s,我在ubuntu笔记本电脑上有一个microk8s集群。 我想从azure devops管道在其上应用部署yaml文件 我已经在我的devops中成功地定义了Kubernetes服务连接,并通过了验证。虽然当我尝试应用yaml文件时,我得到了以下行 /usr/bin/kubectl apply -f /home/vsts/work/1/s/devops/deploymen.yaml -o json ##[error]Unable to connect to the server: x509:

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

我已经在我的devops中成功地定义了Kubernetes服务连接,并通过了验证。虽然当我尝试应用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>
/usr/bin/kubectl apply-f/home/vsts/work/1/s/devops/deploymen.yaml-o json
##[错误]无法连接到服务器:x509:证书对127.0.0.1、10.152.183.1、192.168.50.69、172.17.0.1、10.1.80.0有效,而不是
192.168.50.69是我网络中笔记本电脑的ip

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

编辑:

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

文章说,

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

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

如上所述,我还更新了kubeconfig


但还是没有运气

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

您可以通过向kubeconfig文件添加
不安全的跳过tls验证:true
来完成此操作,使其看起来像这样:

- cluster:
    insecure-skip-tls-verify: true
    server: https://<master_ip>:<port>
-集群:
不安全跳过tls验证:true
服务器:https://:

或者在microk8s群集上修改
kubeconfig
,并更改
服务器:https://127.0.0.1:16443
服务器:https://:16443
并将其复制到您要从中访问群集的主机。

我复制了您的问题,解决方案似乎是在kubeconfig文件中添加证书或跳过tls核实

您可以通过向kubeconfig文件添加
不安全的跳过tls验证:true
来完成此操作,使其看起来像这样:

- cluster:
    insecure-skip-tls-verify: true
    server: https://<master_ip>:<port>
-集群:
不安全跳过tls验证:true
服务器:https://:

或者在microk8s群集上修改
kubeconfig
,并更改
服务器:https://127.0.0.1:16443
服务器:https://:16443
并将其复制到要从中访问群集的主机。

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

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

。。。
[备选名称]
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#使用IP>100
#莫雷普斯
...
修改此模板文件时,microk8s守护程序将生成一个新的
csr.conf

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


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

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

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

。。。
[备选名称]
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#使用IP>100
#莫雷普斯
...
修改此模板文件时,microk8s守护程序将生成一个新的
csr.conf

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


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

谢谢,很好,我至少已经启动并运行了,尽管它不安全。我想知道如何“在kubeconfig中添加证书”是我在上面提到的同一个证书,在这种情况下,我运行$kubectl config set cluster microk8s cluster--certificate authority=home/daniel/.kube/kubernetes.ca.crt--embed certs=true,它说配置文件已更新,但它仍保持原来的状态谢谢你,我至少已经启动并运行了,尽管它不安全。我想知道如何“在kubeconfig中添加证书”是我在上面提到的同一个证书,在这种情况下,我运行$kubectl config set cluster microk8s cluster--certificate authority=home/daniel/.kube/kubernetes.ca.crt--embed certs=true,它说配置文件已更新,但它仍然是旧的,正如预期的那样工作,谢谢你,如你所料,谢谢