Kubernetes(k8s)集群中有多种网络插件,这些插件用于为容器提供网络连接,实现Pod之间的通信,以及Pod与外部网络的连接.。常用的网络有Flannel、Calico和Cilium等。这里我们选用Calico作为k8s的网络插件,它支持多种网络模式(如 BGP、Overlay),并提供了强大的网络策略功能,适用于大规模 Kubernetes 集群。

  • 高性能:
    • 使用纯三层网络(基于 IP)实现 Pod 之间的通信,避免了 Overlay 网络的性能开销。
    • 支持 BGP(Border Gateway Protocol)协议,可以直接与物理网络集成,提供高效的网络路由。
  • 支持灵活的网络模式:
    • BGP 模式:通过 BGP 协议将 Pod 的路由信息分发到物理网络,适用于数据中心环境。
    • IP-in-IP 模式:通过封装 IP 包实现跨子网的通信,适用于云环境。
    • VXLAN 模式:通过 VXLAN 隧道实现跨子网的通信,适用于需要 Overlay 网络的场景。
  • 灵活稳定的网络策略:
    • 支持 Kubernetes 的 NetworkPolicy,可以实现精细化的网络流量控制。
    • 提供基于标签的流量过滤,允许或拒绝特定 Pod 之间的通信。
  • 跨集群网络配置:支持多集群网络互联,适用于混合云和多云环境。
  • 支持 IPv4 和 IPv6 双栈网络,适用于现代网络环境。
  • Calico其中的高性能和可扩展性非常适合大规模集群;
  • Calico 提供了强大的网络策略功能,适用于需要精细化流量控制的场景。
  • 支持跨集群网络互联,适用于混合云和多云环境。
  • BGP 模式可以直接与物理网络集成,适用于数据中心环境。

【下面我们利用calico插件为kubenetes部署一套网络环境】

安装calico

安装calico tiger-operator

#在线安装
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/tigera-operator.yaml

#或下载文件到本地
kubectl create -f tigera-operator.yaml
kubectl get ns
kubectl get pods -n tigera-operator
kubectl get pods -n tigera-operator -o wide
kubectl describe pod 
02-12 17:05