我在Kubernetes 1.12中以直接路由模式使用cilium。在IPv4模式下可以正常工作。我们正在使用cilium / cilium:no-routes映像和cloudnativelabs / kube-router通过BGP通告路由。
现在,我想在仅IPv6的Kubernetes集群中进行配置。但是我发现kube-router pod崩溃了,没有为--pod-network-cidr创建路由条目。
以下是实验室详细信息-
仅将IPv6 K8s集群创建为
主版:
sudo kubeadm init --kubernetes-version v1.13.2 --pod-network-cidr=2001:2::/64 --apiserver-advertise-address=fd0c:6493:12bf:2942::ac18:1164 --token-ttl 0
工人:
sudo kubeadm join [fd0c:6493:12bf:2942::ac18:1164]:6443 --token 9k9sdq.el298rka0sjqy0ha --discovery-token-ca-cert-hash sha256:b830c22dc21561c9e9287275ecc675ec6de012662fabde3bd1aba03be66562eb
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP
EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master NotReady master 38h v1.13.2 fd0c:6493:12bf:2942::ac18:1164
<none> Ubuntu 18.10 4.18.0-13-generic docker://18.6.0
worker1 Ready <none> 38h v1.13.2 fd0c:6493:12bf:2942::ac18:1165
<none> Ubuntu 18.10 4.18.0-10-generic docker://18.6.0
主节点尚未准备就绪,因为尚未配置cni且codedns pod尚未启动。
现在在ipv6中安装cilium。
1。。在主节点中运行etcd。
sudo docker run -d --network=host \
--name "cilium-etcd" k8s.gcr.io/etcd:3.2.24 \
etcd -name etcd0 \
-advertise-client-urls http://[fd0c:6493:12bf:2942::ac18:1164]:4001 \
-listen-client-urls http://[fd0c:6493:12bf:2942::ac18:1164]:4001 \
-initial-advertise-peer-urls http://[fd0c:6493:12bf:2942::ac18:1164]:2382 \
-listen-peer-urls http://[fd0c:6493:12bf:2942::ac18:1164]:2382 \
-initial-cluster-token etcd-cluster-1 \
-initial-cluster etcd0=http://[fd0c:6493:12bf:2942::ac18:1164]:2382 \
-initial-cluster-state new
[fd0c:6493:12bf:2942 :: ac18:1164]是主节点ipv6 ip。
2。。sudo安装bpffs / sys / fs / bpf -t bpf
3。。运行kuberouter。
预期结果:
Kube-router添加POD-CIDR的路由条目,该条目对应于群集中的每个其他节点。节点公共IP将设置为GW。对于IPv4,获得以下结果。对于IPv4,将在节点1中为节点2创建路由条目(公用IP 10.40.139.196和POD CIDR 10.244.1.0/24)。设备是绑定公共IP的接口。
$ ip route show
10.244.1.0/24 via 10.40.139.196 dev ens4f0.116 proto 17
注意:仅对于IPv6 Kubernetes,--pod-network-cidr = 2001:2 :: / 64
实际结果-
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-86c58d9df4-g7nvf 0/1 ContainerCreating 0 22h
coredns-86c58d9df4-rrtgp 0/1 ContainerCreating 0 38h
etcd-master 1/1 Running 0 38h
kube-apiserver-master 1/1 Running 0 38h
kube-controller-manager-master 1/1 Running 0 38h
kube-proxy-9xb2c 1/1 Running 0 38h
kube-proxy-jfv2m 1/1 Running 0 38h
kube-router-5xjv4 0/1 CrashLoopBackOff 15 73m
kube-scheduler-master 1/1 Running 0 38h
问题-
kuberouter可以使用Kubernetes集群使用的私有IPv6地址,而不是使用我们enter code here
IPv4的公共IP。