当前位置: 首页 > news >正文

K8S-CNI

CNI的设计思想即为:Kubernetes在启动Pod的pause容器之后,直接调用CNI网络插件,从而实现为Pod内部应用容器月在的Network Namespace配置符合预期的网络信息。

这里面需要特别关注两个方面:Container必须有自己的网络命名空间的环境,也就是endpoint地址。Container所在的网段必须能够注册网络地址信息。
ip地址的管理网络通信的管理
对容器网络的设置和操作都通过插件 ( Plugin)CNI插件包括两种类型: CNIPlugin和IPAM(IP Address进行具体实现,Management) Plugin。

CNI Plugin负责为容器配置网络资源,IPAM Pugin负责对容器的IP地址进行分配和管理。IPAMplugin作为CNI plugin的一部分,与CNI Plugin一起工作。

在 Kubernetes中,CNI对于容器网络的设置主要是以CNI Plugin插件的方式来为容器配置网络资源,它主要有三种模式
MainPlugin
     - 用来创建具体的网络设备的二进制文件
    - 比如bridge、ipvlan、 vlan、 host-deviceIPAM Plugin
IPAM 就是 IP Address Management
    负责对容器的IP地址进行分配和管理,作为CNI Plugin的一部分,与CNI PIugin一起工作

Meta Plugin
- 由CNI社区维护的内部插件功能模块,常见的插件功能模块有以下几种
flannel 专门为Flannel项目提供的插件
tuning 通过sysctl调整网络设备参数的二进制文件
portmap 通过iptables配置端口映射的二进制文件
bandwidth 使用 Token Bucket Eilter (TBE)来进行限流的二进制文件firewall 通过iptables或者firewalled添加规则控制容器的进出流量

CNI目前被谁管理?
在 Kubernetes 1.24 之前,CNI 插件也可以由 kubelet 使用命令行参数 cni-bin-dir 和 network-plugin 管理。而在Kubernetes 1.24 移除了这些命令行参数, CNI 的管理不再是 kubelet 的工作。而变成下层的容器引擎需要做的事情了,比如cri-dockerd服务的启动文件。

查看服务文件 /etc/systemd/system]cri-docker.serviceExecStart=/usr/local/bin/cri-dockerd --network-plugin=cnidir=/opt/cni/bin ...
--cni-conf-dir=/etc/cni/net.d.-cni-bin-
注意:/opt/cni/bin 目录是部署kubernetes的时候,安装的cni-tools软件包自动创建出来的,这里面包含了很多的网络命令工具。

http://www.lryc.cn/news/178881.html

相关文章:

  • Redis 集合类型(Set)和命令 (数据类型 四)
  • thinkphp5 如何模拟在apifox里面 post数据接收
  • 建造者模式 创建型模式之三
  • 发布以太坊测试网络中的第一笔交易
  • No module named ipykernel解决方案
  • Java 基于 SpringBoot 的校园疫情防控系统
  • windows的ui自动化测试相关
  • Mybatis 二级缓存(使用Ehcache作为二级缓存)
  • C语言 Cortex-A7核 IIC实验
  • 【每日一题】2769. 找出最大的可达成数字
  • 开源电子合同签署平台小程序源码 在线签署电子合同小程序源码 合同在线签署源码
  • 36 二叉树中序遍历
  • 广州华锐互动:VR结绳逃生训练模拟真实火灾场景,增强训练沉浸感
  • Flink安装及简单使用
  • QT信号槽
  • Spring Boot 技术架构图(InsCode AI 创作助手辅助)
  • python使用mitmproxy和mitmdump抓包在手机上抓包(三)
  • react create-react-app v5 从零搭建(使用 npm run eject)
  • 在微信小程序中跳转到另一个小程序(多种实现方式)
  • beanstalkd 启动跟停止【经常使用 nohup 和 配合来启动程序,如: nohup ./test 同时免疫SIGINT和SIGHUP信号】
  • 企业年报API的应用:从金融投资到市场研究
  • 基于Matlab实现评价型模型求解方法(附上源码+数据)
  • Prettier - Code formatter格式化规则文件
  • 用C++实现文件读写操作
  • 【我的创作纪念日】使用pix2pixgan实现barts2020数据集的处理(完整版本)
  • 背包算法(Knapsack problem)
  • “童”趣迎国庆 安全“童”行-柿铺梁坡社区开展迎国庆活动
  • 常用压缩解压缩命令
  • 第四十一章 持久对象和SQL - Storage
  • 【Java接口性能优化】skywalking使用