kubernetes k3s 代理无法连接到主 CA/SSL 错误

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

我正在尝试使用 k3s kubernetes 部署应用程序。目前,我在负载均衡器后面有两个主节点,并且将工作节点连接到它们时遇到一些问题。所有节点和负载均衡器都在单独的虚拟机中运行。

负载均衡器是一个 nginx 服务器,配置如下。

load_module /usr/lib/nginx/modules/ngx_stream_module.so;
events {}
stream {
  upstream k3s_servers {
    server {master_node1_ip}:6443;
    server {master_node2_ip}:6443;
  }
  server {
    listen 6443;
    proxy_pass k3s_servers;
  }
}

主节点通过负载均衡器连接,看起来它按预期工作。

ubuntu@ip-172-31-20-78:/$ sudo k3s kubectl get nodes
NAME               STATUS   ROLES                  AGE   VERSION
ip-172-31-33-183   Ready    control-plane,master   81m   v1.20.2+k3s1
ip-172-31-20-78    Ready    control-plane,master   81m   v1.20.2+k3s1

但是工作节点会产生有关 SSL 证书的错误?

sudo systemctl status k3s-agent
● k3s-agent.service - Lightweight Kubernetes
     Loaded: loaded (/etc/systemd/system/k3s-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-01-24 15:54:10 UTC; 19min ago
       Docs: https://k3s.io
    Process: 3065 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
    Process: 3066 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
   Main PID: 3067 (k3s-agent)
      Tasks: 6
     Memory: 167.3M
     CGroup: /system.slice/k3s-agent.service
             └─3067 /usr/local/bin/k3s agent
Jan 24 16:12:23 ip-172-31-27-179 k3s[3311]: time="2021-01-24T16:34:02.483557102Z" level=info msg="Running load balancer 127.0.0.1:39357 -> [104.248.34.
Jan 24 16:12:23 ip-172-31-27-179 k3s[3067]: time="2021-01-24T16:12:23.313819380Z" level=error msg="failed to get CA certs: Get \"https://127.0.0.1:339

level=error msg="获取CA证书失败:获取“https://127.0.0.1:39357/cacerts”: EOF"

如果我尝试将

/etc/systemd/system/k3s-agent.service.env
中的 K3S_URL 更改为使用
http
,我会收到一条错误消息,指出仅接受 https。

nginx ssl kubernetes ca k3s
2个回答
1
投票

k3s-agent.service.env
中使用 IP 地址而不是主机名对我有用。与其说是一个真正的解决方案,不如说是一个解决方法。

/etc/systemd/system/k3s-agent.service.env

K3S_TOKEN='<token>'
K3S_URL='192.168.xxx.xxx:6443'

0
投票

尝试在主节点上卷曲证书:

curl -vk https://<master_ip>:6443/cacerts

如果您无法卷曲证书,则您的主节点可能会阻止端口 6443 上的请求。您可以从主节点使用 IP 表接受端口 6443 上的输入。

iptables -A INPUT -p tcp --dport 6443 -j ACCEPT

设置此规则后,再次尝试从其他节点进行卷曲。

© www.soinside.com 2019 - 2024. All rights reserved.