有以下拓扑:

'left-1','left-2','right-1','right-2','center‘-主机(DNS名称相同)。
“云”-网络。
所有主机上的kubeadm、kubectl、kubelet、docker均已正确安装。
Kubernetes需要这样安装:'Master-1‘在主机'left-1’上,'Master-2‘在主机'right-1’上,而worker在主机'left-2‘和'right-2’上。
所有主机通过域名相互ping。所有主机上的所有端口都已打开。任何地方都没有防火墙。
所有主机都可以访问互联网。
这里有一个安装Kubernetes的手册:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
如果我只在“left-1”和“left-2”上安装Kubernetes,那么一切都可以正常工作。
如果我只在“right-1”和“right-2”上安装Kubernetes,那么一切正常。
但是如果我在所有节点上安装--左边的pod不能连接到右边的pod,右边的pod也不能连接到左边的pod。
如何在左右节点同时安装Kubernetes?
我使用纤毛网络。
我使用以下命令安装了一个Cilium网络:
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.6.8/install/kubernetes/quick-install.yaml
初始化第一个主节点时,我描述了CIDR: 10.217.0.0/16
我尝试将etcd与kubernetes分开安装。我得到了一个错误:
2020-06-25 02:49:37.073290 I | embed: rejected connection from "10.7.0.1:48422" (error "tls: \"10.7.0.1\" does not match any of DNSNames [\"right-1\" \"localhost\"]", ServerName "", IPAddresses ["10.8.1.1" "127.0.0.1" "::1" "10.8.1.1"], DNSNames ["right-1" "localhost"])
10.7.0.1 -是center,center不是etcd集群的一部分。为什么etcd会检查它?
[left-1]$ traceroute right-1
traceroute to right-1 (10.8.1.1), 30 hops max, 60 byte packets
1 center (10.7.0.1) 1.381 ms 1.252 ms 1.159 ms
2 right-1 (10.8.1.1) 1.068 ms 0.990 ms 0.912 ms发布于 2020-06-26 13:58:06
我们解决了这个问题。
必须使用以下命令创建群集:
kubeadm init --config=kubeadm-config.yaml --upload-certs
其中kubeadm-config.yaml包含:
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: 1.18.3
controlPlaneEndpoint: "10.7.1.1:6443"
networking:
podSubnet: "10.217.0.0/16"
etcd:
local:
serverCertSANs: ["10.7.1.1", "10.7.2.2", "10.7.0.1", "10.8.1.1", "10.8.2.2", "10.8.0.1"]
peerCertSANs: ["10.7.1.1", "10.7.2.2", "10.7.0.1", "10.8.1.1", "10.8.2.2", "10.8.0.1"]注意yaml-参数:serverCertSAN和peerCertSAN:它包含10.7.0.1和10.8.0.1 -这些IP作为客户端IP到达网络包中的节点,并且必须注册为可信IP。如果您在节点间交互中有其他If,也必须进行注册。
https://stackoverflow.com/questions/62494288
复制相似问题