【问题标题】:microk8s, DEVOPS : Unable to connect to the server: x509: certificate is valid for <internal IPs>, not <external IP>microk8s,DEVOPS:无法连接到服务器:x509:证书对 <internal IPs> 有效,而不是 <external IP>
【发布时间】:2020-12-06 14:46:27
【问题描述】:

我在 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>

192.168.50.69 是我网络中笔记本电脑的 ip

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

编辑:

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

文章说:

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

certificate-authority-data /var/snap/microk8s/current/certs/ca.crt 中的证书现在看起来与 microk8s config 中的证书不同

如上所述,我还更新了 kubeconfig

但还是没有运气!

【问题讨论】:

    标签: ubuntu kubernetes microk8s


    【解决方案1】:

    我重现了您的问题,解决方案似乎是在 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://&lt;master_ip&gt;:16443,复制到你想访问集群的主机上。

    【讨论】:

    • 谢谢你,这很好,尽管它不安全,但我至少可以正常运行。我想知道如何“在 kubeconfig 中添加证书”与我上面提到的证书相同,在这种情况下我运行 $ kubectl config set-cluster microk8s-cluster --certificate-authority=home/daniel/.kube/kubernetes。 ca.crt --embed-certs=true ,它说配置文件已更新,但它仍然是旧的
    【解决方案2】:

    解决这些问题的方法是修改模板并添加缺少的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 daemon 会生成一个新的csr.conf

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

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

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 2018-02-24
      • 2019-06-15
      • 2021-06-21
      • 1970-01-01
      相关资源
      最近更新 更多