通过Lens IDE访问远程k3s集群

问题描述 投票:0回答:2

我尝试配置新安装的 Lens IDE 以与我的远程集群(在远程服务器上、虚拟机上)配合使用,但遇到了一些错误,并且找不到针对这种情况的正确解释。

Lens 需要一个配置文件,我从集群中将其提供给它,并将其更改为

server: https://127.0.0.1:6443

server: https://
(远程服务器地址)
:
(为集群中虚拟机的 6443 分配中间端口)

之后在镜头中我得到了这个:

2021/06/14 22:55:13 http: proxy error: x509: certificate is valid for 10.43.0.1, 127.0.0.1, 192.168.1.122, not (address to the remote server)

我可以看到一些证书必须重新配置,但我对这件事绝对陌生。

这里是原始配置文件的完整内容:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0...
    server: https://127.0.0.1:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    client-certificate-data: LS0...
    client-key-data: LS0...
kubernetes proxy certificate k3s
2个回答
1
投票

解决方案非常明显且简单。

k3s 必须将新 IP 添加到证书中。因为默认情况下,它只包含 localhost 和它运行的节点的 IP,如果您(像我一样)有某种机器(例如 lb 或专用防火墙),则该机器的 IP 必须是手动添加。

有两种方法可以做到:

  1. 安装k3s过程中:
curl -sfL https://get.k3s.io | sh -s - server --tls-san desired IP
  1. 或者可以将此参数添加到已安装的 k3s 中:
sudo nano /etc/systemd/system/k3s.service
ExecStart=/usr/local/bin/k3s \
    server \
        '--tls-san' \
        'desired IP' \
sudo systemctl daemon-reload

附注不过,我在使用第二种方法时遇到了问题。


0
投票

对于变体 2,还必须重新创建证书:

sudo k3s kubectl -n kube-system delete secrets/k3s-serving
sudo mv /var/lib/rancher/k3s/server/tls/dynamic-cert.json /tmp/dynamic-cert.json

sudo systemctl daemon-reload
sudo systemctl restart k3s
© www.soinside.com 2019 - 2024. All rights reserved.