我有一个 3 节点k3s
集群,使用以下命令在全新安装的 Ubuntu 服务器 22.04 上安装:
# first server
curl -sfL https://get.k3s.io | sh -s - server --cluster-init
# other two
curl -sfL https://get.k3s.io | K3S_TOKEN='$K3S_TOKEN' sh -s - server \
--server '$K3S_URL'
创建一个简单的“hello world”pod 和NodePort
服务后,我注意到我只能从运行该 pod 的节点访问该 pod。我还注意到它kube-proxy
没有运行,而我很确定它应该在运行。
我检查了日志,发现这两行重复了,但没有其他与之相关的内容kube-proxy
:
Feb 27 16:03:01 bigrig k3s[1621]: time="2024-02-27T16:03:01-05:00" level=info msg="Running kube-proxy --cluster-cidr=10.42.0.0/16 --conntrack-max-per-core=0 --conntrack-tcp-timeout-close-wait=0s --conntrack-tcp-timeout-established=0s --healthz-bind-address=127.0.0.1 --hostname-override=bigrig --kubeconfig=/var/lib/rancher/k3s/agent/kubeproxy.kubeconfig --proxy-mode=iptables"
Feb 27 16:03:01 bigrig k3s[1621]: I0227 16:03:01.445209 1621 server.go:632] "kube-proxy running in dual-stack mode" primary ipFamily="IPv4"
我确保conntrack
按照官方调试文档并重新启动了所有节点,但仍然无法kube-proxy
访问NodePort
未运行 pod 的节点。
我感觉好像漏掉了什么。我在全新安装的 Ubuntu 上设置了大部分默认k3s
部署,不确定为什么这样的核心组件会失败。非常感谢您的帮助。