我按照RKE2的快速入门指南和这篇戴尔的文章来使用一对RKE2服务器和代理。我用v1.24.9+rke2r2
。安装是用Ubuntu 20.04的Virtualbox完成的。两个虚拟机都使用适配器1进行NAT转换,它总是显示为enp0s3
, IP为10.0.2.15
。适配器2与仅主机适配器选项一起使用。它显示为enp0s8
,服务器的IP为192.168.56.101
,代理的IP为192.168.56.102
。通过这种设置,vm-01
和vm-02
可以相互ping通。我让服务器节点正常工作。在重新启动服务器服务之前,我修改了文件/etc/rancher/rke2/config.yaml
,如下所示:
tls-san:
- "192.168.56.101"
- "192.168.56.102"
server:
- "https://192.168.56.101:9345"
token:
- "K101795742c954c5c8f5d9aa21588a6e6990f29ccdb3e5412292f01ea4bb41f31ae::server:6bf9ab3e0a1e214d85335657578cac67"
在代理节点(vm-02
)上,我将/etc/rancher/rke2/config.yaml
文件设置如下:
server:
- "https://192.168.56.101:9345"
token:
- "K101795742c954c5c8f5d9aa21588a6e6990f29ccdb3e5412292f01ea4bb41f31ae::server:6bf9ab3e0a1e214d85335657578cac67"
然后,我启动代理服务。我注意到的第一个问题是节点kube-proxy-vm-02
在初始启动时从未出现。我必须重新启动代理服务才能显示它。
第二个问题是来自代理的额外rke2-coredns-rke2-coredns-XXX
和rke2-canal-XXX
节点永远不会成功。coredns
节点一直处于Pending
状态。canal
节点最终进入Init:CrashLoopBackOff
状态。我只是journalctl -u rke2-agent -f
检查错误,这显示:
Jan 18 11:49:48 vm-02 rke2[2346]: time="2023-01-18T11:49:48+07:00" level=info msg="Connecting to proxy" url="wss://10.0.2.15:9345/v1-rke2/connect"
Jan 18 11:49:48 vm-02 rke2[2346]: time="2023-01-18T11:49:48+07:00" level=error msg="Failed to connect to proxy. Empty dialer response" error="dial tcp 10.0.2.15:9345: connect: connection refused"
Jan 18 11:49:48 vm-02 rke2[2346]: time="2023-01-18T11:49:48+07:00" level=error msg="Remotedialer proxy error" error="dial tcp 10.0.2.15:9345: connect: connection refused"
在我看来,代理服务一直在呼叫10.0.2.15:9345
的服务器节点。但是,我明确指定服务器位于192.168.56.101:9345
。看来这就是我的问题所在。有人能告诉我我应该做些什么来克服这一点,并继续前进吗?很多谢谢!
这类似于RKE2的Github上的问题3176。我已经设法让它工作使用以下步骤:
$ systemctl enable rke2-server
$ systemctl start rke2-server
... WAIT FOR ALL PODS TO BE READY
$ sudo touch /etc/rancher/rke2/config.yaml
$ sudo nano /etc/rancher/rke2/config.yaml
... EDIT CONFIG FILE
$ systemctl stop rke2-server
$ sudo rke2 server --cluster-reset --node-ip 192.168.56.101 --node-external-ip 192.168.56.101 --advertise-address 192.168.56.101
$ sudo reboot
之后,它按预期工作。