我正在尝试使用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“:”
如果我尝试将/etc/systemd/system/k3s-agent.service.env
中K3S_URL更改为使用http
,我会得到一个错误,说只接受https。
2条答案
按热度按时间ie3xauqp1#
在
k3s-agent.service.env
中使用IP地址而不是主机名对我来说很有效。不是一个真正的解决方案,而是一个变通方案。/etc/systemd/system/k3s-agent.service.env
2mbi3lxu2#
尝试 curl 主节点上的证书:
如果您无法 curl 证书,则可能是您的主节点阻止了端口6443上的请求。从主节点,您可以使用IP表来接受端口6443上的输入。
设置此规则后,尝试从其他节点再次 curl 。