Skip to content
SRE运维进阶之路SRE运维进阶之路
github icon
  • kubernetes

    • Kubernetes 学习笔记
      • 集群搭建

        • 使用 ansible 快速搭建 k8s 集群
        • 常见应用安装配置

          • Harbor 安装配置(k8s)
            • Harbor 高可用搭建(docker-compose)
              • Rancher 安装配置
                • Helm 安装配置
                • 容器运行时

                  • k8s 适配 GPU
                    • Kata2 尝试
                    • 存储

                      • Longorn 安装配置
                        • 使用 Rook 快速搭建 Ceph 集群
                        • 服务发现与路由

                          • ingress-nginx 安装配置
                          • 集群网络

                            • CNI
                              • CNI 是什么
                                • k8s 中如何使用CNI
                                  • 哪个 CNI 插件适合我
                                  • Calico
                                  • 监控告警

                                    • Prometheus Operator 安装配置
                                    • 实用技巧

                                      • 运维手册

                                        • etcd 备份恢复
                                          • velero 备份恢复
                                            • k8s 开启审计日志
                                              • 内核版本升级
                                                • 使用 kubeadm 手动更新证书
                                                  • 为 k8s node 配置资源预留
                                                    • 利用LXCFS提升容器资源可见性
                                                    • 最佳实践

                                                      • k8s node 配置资源预留
                                                        • 性能压测指标及方法
                                                          • CPU 绑核
                                                          • 集群排障

                                                            • 如何更新Terminating状态的命名空间
                                                              • 卸载 rancher 导致 node 被清空
                                                                • lvs 健康检查 k8s apiserver
                                                                  • k8s 更改apiserver使用强加密算法
                                                                  • 教程|项目|博客|文章推荐
                                                                    • 附录

                                                                      • 快捷命令

                                                                    CNI

                                                                    author iconClaycalendar icon2021年8月11日category icon
                                                                    • 云原生
                                                                    tag icon
                                                                    • Kubernetes
                                                                    timer icon大约 3 分钟

                                                                    此页内容
                                                                    • CNI 是什么
                                                                    • k8s 中如何使用CNI
                                                                    • 哪个 CNI 插件适合我

                                                                    转载自: 理解CNI和CNI插件 | 阿里云原生open in new window

                                                                    # CNI

                                                                    # CNI 是什么

                                                                    CNI,它的全称是 Container Network Interface,即容器网络的 API 接口。

                                                                    它是 K8s 中标准的一个调用网络实现的接口。Kubelet 通过这个标准的 API 来调用不同的网络插件以实现不同的网络配置方式。

                                                                    # k8s 中如何使用CNI

                                                                    K8s 通过 CNI 配置文件来决定使用什么 CNI。

                                                                    基本的使用方法为:

                                                                    1. 首先在每个结点上配置 CNI 配置文件,在 /etc/cni/net.d/ 目录下;
                                                                    2. 安装 CNI 配置文件中所对应的二进制插件到 /opt/cni/bin/ 目录下;
                                                                    3. 在这个节点上创建 Pod 之后,Kubelet 就会根据 CNI 配置文件执行前两步所安装的 CNI 插件;
                                                                    4. 上步执行完之后,Pod 的网络就配置完成了。

                                                                    具体的流程如下图所示:

                                                                    img

                                                                    在集群里面创建一个 Pod 的时候,首先会通过 apiserver 将 Pod 的配置写入。apiserver 的一些管控组件(比如 Scheduler)会调度到某个具体的节点上去。Kubelet 监听到这个 Pod 的创建之后,会在本地进行一些创建的操作。当执行到创建网络这一步骤时,首先它会读取刚才我们所说的配置目录中的配置文件,配置文件里面会声明所使用的是哪一个插件,然后去执行具体的 CNI 插件的二进制文件,再由 CNI 插件进入 Pod 的网络空间去配置 Pod 的网络。配置完成之后,Kuberlet 也就完成了整个 Pod 的创建过程,这个 Pod 就在线了。

                                                                    # 哪个 CNI 插件适合我

                                                                    通常来说,CNI 插件可以分为三种:Overlay、路由及 Underlay。

                                                                    常用插件模式分类:

                                                                    • overlay:flannel vxlan、calico ipip
                                                                    • 路由模式:calico bpg、flannel host-gw

                                                                    img

                                                                    • Overlay 模式的典型特征是容器独立于主机的 IP 段,这个 IP 段进行跨主机网络通信时是通过在主机之间创建隧道的方式,将整个容器网段的包全都封装成底层的物理网络中主机之间的包。该方式的好处在于它不依赖于底层网络;

                                                                    • 路由模式中主机和容器也分属不同的网段,它与 Overlay 模式的主要区别在于它的跨主机通信是通过路由打通,无需在不同主机之间做一个隧道封包。但路由打通就需要部分依赖于底层网络,比如说要求底层网络有二层可达的一个能力;

                                                                    • Underlay 模式中容器和宿主机位于同一层网络,两者拥有相同的地位。容器之间网络的打通主要依靠于底层网络。因此该模式是强依赖于底层能力的

                                                                    专家说:路由模式其实属于 Underlay 模式的一种特例

                                                                    img

                                                                    edit icon编辑此页open in new window
                                                                    上次编辑于: 2023/1/19 01:46:21
                                                                    贡献者: clay-wangzhi
                                                                    下一页
                                                                    Calico
                                                                    备案号:冀ICP备2021007336号
                                                                    Copyright © 2023 Clay