Contiv 为多种用例提供可配置网络(使用 BGP 的原生 L3,使用 vxlan 的 overlay,经典 L2 和 Cisco-SDN/ACI)和丰富的策略框架。Contiv 项目完全开源。安装工具同时提供基于和不基于 kubeadm 的安装选项。
Flannel 是一个可以用于 Kubernetes 的 overlay 网络提供者。
+Romana 是一个 pod 网络的层 3 解决方案,并且支持 NetworkPolicy API。Kubeadm add-on 安装细节可以在这里找到。
Weave Net 提供了在网络分组两端参与工作的网络和网络策略,并且不需要额外的数据库。
CNI-Genie 使 Kubernetes 无缝连接到一种 CNI 插件,例如:Flannel、Calico、Canal、Romana 或者 Weave。
提示:本方案使用Calico插件。
确认相关配置,如MTU,网卡接口,Pod的IP地址段。
[root@master01 ~]# cat kubeadm/calico/calico.yaml | grep -A1 -E 'CALICO_IPV4POOL_CIDR|IP_AUTODETECTION_METHOD|veth_mtu:' #检查配置 …… veth_mtu: "1400" #calico建议为主机MTU减去50, -- - name: IP_AUTODETECTION_METHOD value: "interface=eth.*" #检查节点之间的网卡 -- - name: CALICO_IPV4POOL_CIDR value: "10.10.0.0/16" #检查Pod网段 …… [root@master01 ~]# kubectl apply -f kubeadm/calico/calico.yaml [root@master01 ~]# kubectl get pods --all-namespaces -o wide #查看部署 [root@master01 ~]# kubectl get nodes提示:官方calico参考:https://docs.projectcalico.org/manifests/calico.yaml。
修改node端口范围
默认Kubernetes的端口范围为30000-32767,为便于后期应用,如ingress的80、443端口,建议开放全端口。同时开放全端口范围后,需要注意避开公共端口,如8080。
[root@master01 ~]# vi /etc/kubernetes/manifests/kube-apiserver.yaml …… - --service-node-port-range=1-65535 ……提示:如上需要在所有Master节点操作。
kube-scheduler和kube-controller-manager的健康检查使用非安全端口,因此建议打开。
root@master01:~# vi /etc/kubernetes/manifests/kube-scheduler.yaml …… # - --port=0 #删掉或注释关闭非安全端口的配置,从而打开非安全端口 …… root@master01:~# vi /etc/kubernetes/manifests/kube-controller-manager.yaml …… # - --port=0 #删掉或注释关闭非安全端口的配置,从而打开非安全端口 ……提示:如上需在所有Master节点操作。
提示:如上仅需Master01节点操作,从而实现所有Worker节点添加至集群,若添加异常可通过如下方式重置:
提示:更多Kubetcl使用参考:https://kubernetes.io/docs/reference/kubectl/kubectl/
https://kubernetes.io/docs/reference/kubectl/overview/
更多kubeadm使用参考:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/