您好,我目前在家中运行一个 Kubernetes 集群,其中有 1 个主节点和 1 个工作节点。我尝试将 Oracle Cloud 上运行的实例作为工作节点添加到此 Kubernetes 集群。我在家中的路由器上对官方文档中列出的所有端口进行了端口转发,并对 Oracle Cloud 防火墙进行了同样的操作。
之后,我尝试使用 kubeadm join 命令将 Oracle Cloud 的一个节点添加到集群中(我输入了主节点 ip 的公共 ip),但发生了与 X509 证书相关的错误(X509 证书与公共 ip 不匹配的错误),因此添加了公共 ip。(通过 'kubectl get configmap kubeadm-config -n kube-system -o jsonpath='{.data.ClusterConfiguration}' > kubeadm-conf.yaml' 命令提取配置文件并在下部添加的 certSANs、公共和私有 ip 后)不再出现 X509 证书错误,但出现以下错误
ubuntu@a1-worker:~$ sudo kubeadm join (public-ip):6443 --token q4a65r.r32wc9cdwtv83jzj --discovery-token-ca-cert-hash sha256:eea8ad19b5d7484ea86f5c06bf993a83b602d44df1aa9c1728ead596e49a7dde --cri-socket=/var/run/crio/crio.sock W0808 16:19:57.287856 1033278 initconfiguration.go:120] 没有 URL 方案的 CRI 端点的使用已被弃用,并且将来可能会导致 kubelet 错误。自动将方案“unix”添加到“criSocket”,值为“/var/run/crio/crio.sock”。请更新您的配置![preflight] 正在运行预检 [preflight] 正在从集群读取配置... [preflight] 仅供参考:您可以使用“kubectl -n kube-system get cm kubeadm-config -o yaml”查看此配置文件 错误执行阶段 preflight:无法获取 kubeadm-config ConfigMap:无法获取配置图:获取“https://172.30.1.4:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s”:net/http:等待连接时请求被取消(等待标头时超出 Client.Timeout)要查看此错误的堆栈跟踪,请使用 --v=5 或更高版本执行
你能告诉我这里我还需要采取什么进一步的措施吗?
我尝试通过编辑节点的设置将节点的私有 IP 替换为公共 IP。此外,为了解决 X509 问题,通过添加主节点的公共 IP 重新生成了 api 服务器的密钥。