2、k8s的cni网络插件和基本操作命令

embedded/2025/2/12 4:06:44/

kube-prxoy属于节点组件,网络代理,实现服务的自动发现和负载均衡。

k8s的内部网络模式

1、pod内的容器容器之间的通信。

2、一个节点上的pod之间的通信,docker0网桥直接通信。

3、不同节点上的pod之间的通信:

通过物理网卡的ip地址和其他节点上的物理网卡的设备进行通信然后把流量转发到指定的pod内。

CNI作用:1、给每个pod提供一个全局的ip地址。

                 2、cni是一个标准接口,用于容器运行时调用网络插件,配置容器网络

设置容器网络命令空间,IP地址,路由等等参数。

CNI的插件类型

CNI的插件可以让在集群内不同节点上创建的pod都拥有全局内唯一的IP地址。

flannel插件

是一种overlay网络模式,tcp数据包封装在另一种网络里面进行路由转发的模式。在二层的基础上创建一个逻辑上的网络层,可以实现跨节点的容器通信。

工作模式:udp模式,基于应用层转发,性能最差。

                  vxlan模式,基于内核转发,最常用的方式。

                  host-gw,性能最好,但是配置麻烦。

vxlan模式的工作原理:

1、数据帧从主机A上的POD1出发,进行二次封装源IP和目的IP(flannel会通过apiserver保存一张路由表到etcd)。

2、从pod1出发的数据包,经过docker0/cni0网络接口转到flannel.1接口(vxlan模式的默认接口)

3、flannel.1接口收到数据后添加vxlan头部,封装在udp报文中。

4、主机A的网卡收到flannel.1接口的数据包,封装主机A的IP和主机B的IP。

5、数据包到达主机B,vxlan默认接口8472,主机B收到数据包之后,解包,传送到8472端口,就是flannel.1接口,然后再解包,把数据转发到指定的pod。

  • UDP网络:flannel.0
  • vxlan:flannel.1

calico插件

把主机作为路由器,使用BGP(BGP动态路由,自动实现路由选择)同步路由的方式转发数据包。

calico的组成部分:

1、felix维护宿主机上的路由规则,以及FIB库(转发信息库)。

2、BIRD分发路由规则

3、confd配置管理组件

转发原理:

1、为每一个容器设置一个veth pair的设备。相当于桥接的功能,veth pair的一端接入宿主机的网络空间,另一端配置一个路由规则,接入容器docker0/cni0。

路由传播:

1、Felix在节点上添加pod的IP地址,添加pod的子网路由。

2、BIRD在集群内节点上建立BGP的会话,广播本机的路由节点。

3、集群内的节点学习整个路由,如何能够到达其他节点的pod的吓一跳的地址。

4、宿主机直接把数据包发送到目标主机,通过veth pair设备直接转发到目标pod。

k8s基本操作命令

 查看k8s版本

查看api资源对象

查看证书api有效期时间

查看集群中组件的状态-cs

查看集群节点的状态-get

查看默认命名空间里pod的状态

查看pod的详细状态-wide

 查看资源的详细信息-describe

查看pod与本机端口映射-svc

查看当前集群的命名空间

指定命名空间-n

创建命名空间

创建pod-create

  • 基于deployment控制器创建pod控制器的名称是nginx1
  • pod使用的镜像:nginx:1.22
  • --replicas=3:pod的数量有多少 3个

pod端口映射-expose

  • expose暴露出来的是service的类型,可以供内网访问的一个方式。
  • --port=80:集群对外服务的端口
  • NodePort:宿主机的随机端口

  • target-port=80:集群里面容器暴露的端口

删除pod-delete

  • 基于控制器创建的pod,删除pod相当于重启,不能把pod完全销毁。

基于控制器创建的pod删除pod副本需要删除相应的控制器

查看pod日志-logs

进入pod内的容器-exec

pod数量的扩缩容-scale

1、命令行改:kubectl scale deployment nginx --replicas=1

2、改yaml配置文件-edit

3、自动扩缩容:HPA根据cpu的负载自动扩缩容

直接创建pod-run

没有通过控制器创建的pod,可以直接删除-kubectl delete pod zw1

查看pod配置文件-explain

强制立刻删除该pod-force

表示强制立刻删除该pod,没有资源回收的过程。

特殊情况下,需要使用立刻删除,正常情况下不需要使用。


http://www.ppmy.cn/embedded/161147.html

相关文章

CVPR | CNN融合注意力机制,芜湖起飞!

**标题:**On the Integration of Self-Attention and Convolution **论文链接:**https://arxiv.org/pdf/2111.14556 **代码链接:**https://github.com/LeapLabTHU/ACmix 创新点 1. 揭示卷积和自注意力的内在联系 文章通过重新分解卷积和自…

springboot基于微信小程序的仓储管理系统

大家好,我是2013crazy,今天为大家带来的是Java 基于 SpringBootVue 的校园兼职平台。Java 项目的安装部署教程,包括软件的下载,软件的安装。该系统采用 Java 语言开发,SpringBoot 框架,MySql 作为数据库&am…

AI大模型评测对比2—ChatGPT对比DeepSeek

近期,DeepSeek 凭借其超高的性价比与卓越性能,在国内外各大社交媒体平台上赚足了眼球。令人瞩目的是,它仅耗费 2048 块显卡, 600 亿美元的成本,便成功训练出了可与顶级模型比肩的 Deepseek - V3 模型。这与美国公布的一…

把DeepSeek 装进 VSCode中

Visual Studio Code(简称VSCode)是一个由微软开发的免费、开源的代码编辑器。VSCode 发布于 2015 年,而且很快就成为开发者社区中广受欢迎的开发工具。 VSCode 可用于 Windows、macOS 和 Linux 等操作系统。VSCode 拥有一个庞大的扩展…

在线免费 HTML 预览导出为图片,并且支持水平切割

在线体验 作用:可以直接预览 html 的页面效果,导出为图片,支持指定切割的数量,等高水平切割。 https://houbb.github.io/tools/html-preview.html 创作背景 有时候希望给一段 html 导出为长度,或者水平切分&#xff…

Web3 开发者的机遇与挑战:技术趋势与职业发展

随着 Web3 技术的迅速发展,互联网的未来正朝着去中心化、用户主权、隐私保护等方向演进。作为 Web3 生态的核心力量,Web3 开发者在推动这一变革中扮演着至关重要的角色。无论是在区块链技术、智能合约开发、去中心化应用(DApp)的构…

MariaDB *MaxScale*实现mysql8读写分离

1.MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 2.MaxScale 实验环境 中间件192.168.12…

Spring Cloud工程搭建

目录 工程搭建 搭建父子工程 创建父工程 Spring Cloud版本 创建子项目-订单服务 声明项⽬依赖 和 项⽬构建插件 创建子项目-商品服务 声明项⽬依赖 和 项⽬构建插件 工程搭建 因为拆分成了微服务,所以要拆分出多个项目,但是IDEA只能一个窗口有一…