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

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

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

相关文章:

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

kube-prxoy属于节点组件,网络代理,实现服务的自动发现和负载均衡。 k8s的内部网络模式 1、pod内的容器于容器之间的通信。 2、一个节点上的pod之间的通信,docker0网桥直接通信。 3、不同节点上的pod之间的通信: 通过物理网卡的…...

Next.js简介:现代 Web 开发的强大框架(ChatGPT-4o回答)

prompt: 你是一位专业的技术博客撰稿人,你将写一篇关于介绍next.js这个开发框架的技术博文,语言是中文,风格专业严谨,用词自然、引人入胜且饶有趣味 在现代 Web 开发的世界中,选择合适的框架可以显著提升开发效率和应用…...

【DeepSeek:国产大模型的崛起与ChatGPT的全面对比】

DeepSeek:国产大模型的崛起与ChatGPT的全面对比 目录 引言DeepSeek的技术架构 2.1 混合专家(MoE)架构2.2 动态路由机制2.3 训练数据与成本 ChatGPT的技术架构 3.1 Transformer架构3.2 训练数据与成本 性能对比 4.1 推理能力4.2 语言处理4.3…...

input 超出maxlength限制后,输入框变红

一、前言 最近收到产品的一个需求:输入框限制了maxlength“11”,需要在输入第12位时,输入框变红;当然,第12位是不能真正输入到输入框中的。 二、实现难点 其实,单纯的要监听 字母和数字以及字符 还是比较容…...

Docker 构建镜像并搭建私人镜像仓库教程

构建镜像教程 步骤 1:安装 Docker #在安装 Docker 之前,建议先更新系统软件包。 sudo yum update -y # 移除旧的Docker版本和Podman、runc软件包及其相关依赖。 yum remove -y docker docker-client docker-client-latest docker-ce-cli docker-commo…...

doris:MySQL Dump

Doris 在 0.15 之后的版本已经支持通过 mysqldump 工具导出数据或者表结构 使用示例​ 导出​ 导出 test 数据库中的 table1 表:mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables table1 导出 test 数据库中的 table1 表结构&am…...

OpenBMC:通过qemu-system-arm运行编译好的image

OpenBMC:编译_openbmc meson.build file-CSDN博客 讲述了如何编译生成openbmc的image 完成编译后可以通过qemu-system-arm进行模拟加载,以便在没有BMC硬件的情况下进行调试 1.下载qemu-system-arm 在openbmc的上级目录上执行 wget https://jenkins.op…...

STM32的HAL库开发---通用定时器(TIMER)---定时器脉冲计数

一、脉冲计数实验原理 1、 外部时钟模式1:核心为蓝色部分的时基单元,时基单元的时钟源可以来自四种,分别是内部时钟PCLK、外部时钟模式1,外部时钟模式2、内部定时器触发(级联)。而脉冲计数就是使用外部时钟…...

动态规划LeetCode-121.买卖股票的最佳时机1

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。…...

网安三剑客:DNS、CDN、VPN

DNS(网络地址转换系统)的技术原理与安全应用 1. 网络地址转换系统的基本原理 DNS通过解析用户的访问URL(超链接),将其映射到服务器上存储的信息。具体来说: 解析URL:DNS从URL中提取出 hostna…...

Linux在x86环境下制作ARM镜像包

在x86环境下制作ARM镜像包(如qemu.docker),可以通过QEMU和Docker的结合来实现。以下是详细的步骤: 安装QEMU-user-static QEMU-user-static是一个静态编译的QEMU二进制文件,用于在非目标架构上运行目标架构的二进制文…...

Vue3+codemirror6实现公式(规则)编辑器

实现截图 实现/带实现功能 插入标签 插入公式 提示补全 公式验证 公式计算 需要的依赖 "codemirror/autocomplete": "^6.18.4","codemirror/lang-javascript": "^6.2.2","codemirror/state": "^6.5.2","cod…...

Lua中文语言编程源码-第十一节,其它小改动汉化过程

__tostring 汉化过程 liolib.c metameth[] {"__转换为字符串", f_tostring}, lauxlib.c luaL_callmeta(L, idx, "__转换为字符串") lua.c luaL_callmeta(L, 1, "__转换为字符串") __len 汉化过程 ltm.c luaT_eventname[] ltablib.c c…...

Safari常用快捷键

一、书签边栏 1、显示或隐藏书签边栏:Control-Command-1 2、选择下一个书签或文件夹:向上头键或向下头键 3、打开所选书签:空格键 4、打开所选文件夹:空格键或右箭头键 5、关闭所选文件夹:空格键或左箭头键 6、更…...

Git登录并解决 CAPTCHA

修改公司域账户密码之后,导致今天pull代码时显示:remote error: CAPTCHA required 本文将介绍如何解决 Git 中的常见错误“fatal: Authentication failed for git”。该问题通常出现在尝试访问远程 Git 仓库时,表示身份验证失败。以下是几种常…...

Websocket从原理到实战

引言 WebSocket 是一种在单个 TCP 连接上进行全双工通信的网络协议,它使得客户端和服务器之间能够进行实时、双向的通信,既然是通信协议一定要从发展历史到协议内容到应用场景最后到实战全方位了解 发展历史 WebSocket 最初是为了解决 HTTP 协议在实时…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_get_options函数

声明 就在 main函数所在的 nginx.c 中&#xff1a; static ngx_int_t ngx_get_options(int argc, char *const *argv); 实现 static ngx_int_t ngx_get_options(int argc, char *const *argv) {u_char *p;ngx_int_t i;for (i 1; i < argc; i) {p (u_char *) argv[i]…...

判断您的Mac当前使用的是Zsh还是Bash:echo $SHELL、echo $0

要判断您的Mac当前使用的是Zsh还是Bash&#xff0c;可以使用以下方法&#xff1a; 查看默认Shell: 打开“终端”应用程序&#xff0c;然后输入以下命令&#xff1a; echo $SHELL这将显示当前默认使用的Shell。例如&#xff0c;如果输出是/bin/zsh&#xff0c;则说明您使用的是Z…...

Centos执行yum命令报错

错误描述 错误&#xff1a;为仓库 ‘appstream’ 下载元数据失败 : Cannot prepare internal mirrorlist: Curl error (6): Couldn’t resolve host name for http://mirrorlist.centos.org/?release8&archx86_64&repoAppStream&infrastock [Could not resolve h…...

订单超时设计(1)--- 如何使用redis实现订单超时实时关闭功能

如何使用redis实现订单超时实时关闭功能 准备工作实现步骤解释注意事项&#xff08;重点&#xff09; 使用Redis实现订单超时实时关闭功能&#xff0c;可以利用Redis的延时队列&#xff08;使用Sorted Set实现&#xff09;和过期键&#xff08;使用TTL和Keyspace Notifications…...

5步释放游戏潜能:面向玩家的原神帧率解锁完全指南

5步释放游戏潜能&#xff1a;面向玩家的原神帧率解锁完全指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 一、问题发现&#xff1a;为什么你的高端显卡在原神中无法全力奔跑&#xf…...

新手福音:用快马平台将vmware官网概念转化为可交互的虚拟机演示代码

作为一名刚接触虚拟化技术的新手&#xff0c;我最近在VMware官网上看到了关于虚拟机的基础概念介绍。虽然理论知识很全面&#xff0c;但总觉得少了点动手实践的环节。直到发现了InsCode(快马)平台&#xff0c;它让我能够把抽象的概念快速转化为可运行的代码&#xff0c;这种学习…...

Qwen3-TTS-Tokenizer-12Hz快速上手:Web界面一键处理音频文件

Qwen3-TTS-Tokenizer-12Hz快速上手&#xff1a;Web界面一键处理音频文件 1. 为什么选择Qwen3-TTS-Tokenizer-12Hz&#xff1f; 想象一下&#xff0c;你正在开发一个语音社交应用&#xff0c;用户上传的音频文件体积大、传输慢&#xff0c;服务器存储成本居高不下。传统压缩算…...

别再纠结了!.NET后台任务调度,Hangfire和Quartz.NET到底怎么选?

Hangfire与Quartz.NET深度抉择指南&#xff1a;从业务场景到技术实现的精准匹配 在.NET生态系统中&#xff0c;后台任务调度是几乎所有企业级应用都无法绕开的核心需求。无论是电商平台的订单状态更新、金融系统的日终批处理&#xff0c;还是内容管理系统的定时数据同步&#x…...

Phi-3-mini-4k-instruct-gguf多场景:覆盖个人提效、团队协作、客户支持全链路

Phi-3-mini-4k-instruct-gguf多场景&#xff1a;覆盖个人提效、团队协作、客户支持全链路 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个开箱即用的工具特别适合处理日常工作中的文本任务&#xff0c…...

深入S32K3XX以太网内部:用逻辑分析仪抓取MII时序,图解数据收发全过程

深入S32K3XX以太网内部&#xff1a;用逻辑分析仪抓取MII时序&#xff0c;图解数据收发全过程 在嵌入式系统开发中&#xff0c;以太网通信的底层实现往往像一个黑盒子——我们配置好寄存器&#xff0c;数据就神奇地传输了。但对于真正追求技术深度的开发者来说&#xff0c;理解信…...

用VSCode+PlatformIO给ESP32做个简易手表:基于LVGL和1.3寸屏的UI实战

基于LVGL的ESP32智能手表开发实战&#xff1a;从硬件驱动到UI设计全流程 在创客圈里&#xff0c;ESP32凭借其出色的性价比和丰富的功能接口&#xff0c;一直是物联网项目的热门选择。而当我们把目光投向更直观的人机交互领域时&#xff0c;LVGL&#xff08;Light and Versatile…...

如何用baidupankey解决百度网盘提取码获取难题

如何用baidupankey解决百度网盘提取码获取难题 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 引言&#xff1a;被提取码困住的日常 "又要找提取码&#xff1f;"小张盯着电脑屏幕上的百度网盘分享链接&#xff0c;…...

Android位置模拟与GPS伪装:基于Xposed模块的场景化解决方案

Android位置模拟与GPS伪装&#xff1a;基于Xposed模块的场景化解决方案 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 在移动应用开发与隐私保护领域&#xff0c;位置信息的精准…...

OpenClaw赋能金融投研:17个高效应用案例详解

扫描下载文档详情页: https://www.didaidea.com/wenku/16666.html...