IPv6模式下的cilium配置

时间:2019-01-21 06:09:48

标签: kubernetes cni cilium

我在Kubernetes 1.12中以直接路由模式使用cilium。在IPv4模式下可以正常工作。我们正在使用cilium / cilium:no-routes映像和cloudnativelabs / kube-router通过BGP通告路由。

现在,我想在仅IPv6的Kubernetes集群中进行配置。但是我发现kube-router pod崩溃了,没有为--pod-network-cidr创建路由条目。

以下是实验室详细信息-

  • 主节点:IPv6专用IP -fd0c:6493:12bf:2942 :: ac18:1164
  • 工作节点:IPv6专用IP -fd0c:6493:12bf:2942 :: ac18:1165
  • 两个节点的公共IP均为IPv4,因为我没有IPv6公共IP。

仅将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。

0 个答案:

没有答案