k8s网络插件及基础命令

一、k8s的cni网络插件

1.k8s的内部网络模式

  • pod内的容器与容器之间的通信。
  • 一个节点上的pod之间的通信,docker0网桥直接通信。
  • 不同节点上的pod之间的通信:通过物理网卡的ip地址和其他节点上的物理网卡的设备进行通信,然后把流量转发到指定的pod内。

2.cni作用

  • 给每一个pod提供一个全局的ip地址
  • CNI是一个标准接口,用于容器运行时调用网络插件,配置容器的网络,设置容器的网络命名空间,ip地址,路由等参数。

3.cni的插件类型  

3.1 flannel插件

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

(1)模式
模式说明
udp模式 (默认模式)性能最差,基于应用层转发
vxlan模式基于内核转发,最常用的方式
host-gw性能最好,但是配置麻烦
(2)vxlan模式的工作原理  
  • 数据帧从主机A上的pod1出发,二次封装源ip和目的ip。(flannel会通过apiserver保存一张路由表到etcd)。
  • 从pod1出发的数据包,经过docker0/cni0网络接口转到flannel.1接口(vxlan模式的默认接口)。
  • flannel.1接口收到数据后添加vxlan头部,封装在udp报文中。
  • 主机A的网路收到flannel.1接口的数据包,封装主机A的ip,和主机B的ip。
  • 数据包到达主机B,vxlan默认接口是8472,主机B收到数据包,解包,传送到8472端口。就是flannel.1的接口,然后再解包,把数据转发到指定的pod。

3.2 calico插件

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

(1)calico的组成部分
组件作用
felix维护宿主机上的路由规则,以及FIB库(转发信息库)
BIRD分发路由规则
confd配置管理组件
(2)转发原理

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

(3)路由传播
  • felix在节点上添加pod的ip地址,添加pod的子网路由
  • BIRD在集群内节点内建立BGP的会话,广播本机的路由节点
  • 集群内的节点学习整个路由表,如何能够到达其他节点的pod的下一跳地址
  • 宿主机直接把数据包发送到目标主机,通过veth pair设备直接转发到目标pod

 4.实验

flannel插件

#三台服务器
#192.168.206.10 master;192.168.206.20 node01;192.168.206.30 node02
#三台一起解压缩cni-plugins
cd /opt
mv cni cni_bak
mkdir -p ./cni/bin
tar -xf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin/

#只在主服务器上操作
kubectl apply -f kube-flannel.yml

calico插件

#三台机器一起
cd /opt
mv cni cni_bak
mkdir -p ./cni/bin
tar -xf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin/
mkdir calico
cd calico
docker load -i calico-cni.tar
docker load -i calico-kube-controllers.tar
docker load -i calico-node.tar
docker load -i calico-pod2daemon-flexvol.tar


#只在主服务器上操作
vim calico.yaml
#修改里面定义Pod的网络(CALICO_IPV4POOL_CIDR),需与前面 kube-controller-manager 配置文件指定的 cluster-cidr 网段一样
    - name: CALICO_IPV4POOL_CIDR
      value: "10.244.0.0/16"     #Calico 默认使用的网段为 192.168.0.0/16

kubectl apply -f calico.yaml
kubectl get pod -n kube-system

#自动补齐
vim /etc/profile
source <(kubectl completion bash)
source /etc/profile

kubectl create deployment nginx --image=nginx:1.22 --replicas=3
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc

curl 192.168.206.10:32663

#修改三个容器内的web页面,重新访问,会自动轮询

 

 二、k8s的基础命令

1.基础命令 

基础命令说明
kubectl get pod查看默认命名空间里面的pod状态
kubectl get ns查看命名空间
kubectl get pod -n kube-system查看指定的命名空间,不指定是default
kubectl create namespace abc创建命名空间,指定名字为abc
kubectl create deployment nginx1 --image=nginx:1.22 --replicas=3使用nginx:1.22 镜像,创建了一个名为nginx1 的部署,有 3 个容器副本在运行
kubectl get pod -n abc列出命名空间为abc中的所有 容器组
kubectl expose deployment nginx1 --port=80 --type=NodePort -n abc将现有的nginx1暴露为一个NodePort类型的服务
kubectl get pod -o wide显示详细信息
kubectl delete nginx-6c4c7f844f-47xv5基于控制器创建的pod,删除pod相当于重启,不能把pod完全销毁。
kubectl version查看版本
kubectl api-resources列出当前k8s集群中所有可用的API资源
kubectl describe pod nginx-6c4c7f844f-47xv5查看具体资源的详细信息
kubectl logs nginx-6c4c7f844f-47xv5查看pod的日志
kubectl logs -f nginx-6c4c7f844f-47xv5动态查看
kubectl exec it nginx-6c4c7f844f-hn576 bash进入pod内的容器

2.pod的扩缩容

法一:手动改

kubectl scale deployment nginx1 --replicas=1  #命令行修改副本数

kubectl edit deployments.apps nginx1  #编辑配置文件

法二:自动扩缩容

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/966241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

保姆级教程Docker部署KRaft模式的Kafka官方镜像

目录 一、安装Docker及可视化工具 二、单节点部署 1、创建挂载目录 2、运行Kafka容器 3、Compose运行Kafka容器 4、查看Kafka运行状态 三、集群部署 四、部署可视化工具 1、创建挂载目录 2、运行Kafka-ui容器 3、Compose运行Kafka-ui容器 4、查看Kafka-ui运行状态 …

【C语言】传值调用与传址调用详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;传值调用1. 什么是传值调用&#xff1f;2. 示例代码&#xff1a;传值调用失败的情况执行结果&#xff1a; 3. 为什么传值调用无法修改外部变量&#xff1f; &#x1f4…

HarmonyOS 5.0应用开发——ContentSlot的使用

【高心星出品】 文章目录 ContentSlot的使用使用方法案例运行结果 完整代码 ContentSlot的使用 用于渲染并管理Native层使用C-API创建的组件同时也支持ArkTS创建的NodeContent对象。 支持混合模式开发&#xff0c;当容器是ArkTS组件&#xff0c;子组件在Native侧创建时&#…

Golang:Go 1.23 版本新特性介绍

流行的编程语言Go已经发布了1.23版本&#xff0c;带来了许多改进、优化和新特性。在Go 1.22发布六个月后&#xff0c;这次更新增强了工具链、运行时和库&#xff0c;同时保持了向后兼容性。 Go 1.23 的新增特性主要包括语言特性、工具链改进、标准库更新等方面&#xff0c;以下…

11.PPT:世界动物日【25】

目录 NO12​ NO34 NO56​ NO789视频音频​ NO10/11/12​ NO12 设计→幻灯片大小→ →全屏显示&#xff08;16&#xff1a;9&#xff09;确定调整标题占位符置于图片右侧&#xff1a;内容占位符与标题占位符左对齐单击右键“世界动物日1”→复制版式→大小→对齐 幻灯片大小…

力扣.623. 在二叉树中增加一行(链式结构的插入操作)

Problem: 623. 在二叉树中增加一行 文章目录 题目描述思路复杂度Code 题目描述 思路 1.首先要说明&#xff0c;对于数据结构无非两大类结构&#xff1a;顺序结构、链式结构&#xff0c;而二叉树实质上就可以等效看作为一个二叉链表&#xff0c;而对于链表插入一个节点的操作是应…

Office/WPS接入DS等多个AI工具,开启办公新模式!

在现代职场中&#xff0c;Office办公套件已成为工作和学习的必备工具&#xff0c;其功能强大但复杂&#xff0c;熟练掌握需要系统的学习。为了简化操作&#xff0c;使每个人都能轻松使用各种功能&#xff0c;市场上涌现出各类办公插件。这些插件不仅提升了用户体验&#xff0c;…

yolov11模型在Android设备上运行【踩坑记录】

0) 参考资料: https://github.com/Tencent/ncnn?tabreadme-ov-file https://github.com/pnnx/pnnx https://github.com/nihui/ncnn-android-yolov5 https://github.com/Tencent/ncnn?tabreadme-ov-file 1) &#xff1a;将xxx.pt模型转化成 xxx.onnx ONNX&#xff08;Ope…

DeepSeek与llama本地部署(含WebUI)

DeepSeek从2025年1月起开始火爆&#xff0c;成为全球最炙手可热的大模型&#xff0c;各大媒体争相报道。我们可以和文心一言一样去官网进行DeepSeek的使用&#xff0c;那如果有读者希望将大模型部署在本地应该怎么做呢&#xff1f;本篇文章将会教你如何在本地傻瓜式的部署我们的…

arcgis for js范围内天地图高亮,其余底图灰暗

在GIS地图开发中&#xff0c;有时我们需要突出显示某个特定区域&#xff0c;而将其他区域灰暗处理&#xff0c;以达到视觉上的对比效果。本文将介绍如何使用ArcGIS for JavaScript实现这一功能&#xff0c;具体效果为&#xff1a;在指定范围内&#xff0c;天地图高亮显示&#…

基于微信小程序的医院预约挂号系统的设计与实现

hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生…

Docker深度解析:安装各大环境

安装 Nginx 实现负载均衡&#xff1a; 挂载 nginx html 文件&#xff1a; 创建过载目录&#xff1a; mkdir -p /data/nginx/{conf,conf.d,html,logs} 注意&#xff1a;在挂载前需要对 conf/nginx.conf 文件进行编写 worker_processes 1;events {worker_connections 1024; …

Linux 源码编译安装httpd 2.4,提供系统服务管理脚本并测试

第一种方式 1. 下载 Apache HTTP Server 源代码 首先&#xff0c;从 Apache 官网 下载最新版本的 httpd 2.4 源码&#xff0c;或者直接使用 wget 下载&#xff1a; [rootlocalhost ~]# wget https://downloads.apache.org/httpd/httpd-2.4.36.tar.gz # 解压 [rootlocalhost ~…

ARM嵌入式学习--第十三天(I2C)

I2C --介绍 I2C&#xff08;Inter-intergrated Circuit 集成电路&#xff09;总线是Philips公司在八十年代初推出的一种串行、半双工的总线&#xff0c;主要用于近距离、低速的芯片之间的通信&#xff1b;I2C总线有俩根双向的信号线&#xff0c;一根数据线SDA用于收发数据&…

python爬虫--简单登录

1&#xff0c;使用flask框架搭建一个简易网站 后端代码app.py from flask import Flask, render_template, request, redirect, url_for, sessionapp Flask(__name__) app.secret_key 123456789 # 用于加密会话数据# 模拟用户数据库 users {user1: {password: password1}…

C# 解决“因为算法不同,客户端和服务器无法通信”的问题

目录 故障现象 开发运行环境 解决 实现携带证书的 API URL调用 其它 故障现象 实现微信退款功能&#xff0c;我们需要在微信支付商户后台申请安全证书&#xff0c;并调用退款API URL。在调试过程中为增添返回调试信息属性&#xff0c;重新对.net FrameWorkd 类库进行编译…

【大模型】Ubuntu下安装ollama,DeepSseek-R1:32b的本地部署和运行

1 ollama 的安装与设置 ollama官网链接&#xff1a;https://ollama.com/ 在左上角的【Models】中展示了ollama支持的模型在正中间的【Download】中课可以下载支持平台中的安装包。   其安装和模型路径配置操作流程如下&#xff1a; ollama的安装 这里选择命令安装curl -fsSL …

LLAMA-Factory安装教程(解决报错cannot allocate memory in static TLS block的问题)

步骤一&#xff1a; 下载基础镜像 # 配置docker DNS vi /etc/docker/daemon.json # daemon.json文件中 { "insecure-registries": ["https://swr.cn-east-317.qdrgznjszx.com"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.c…

快速上手——.net封装使用DeekSeek-V3 模型

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…

高德地图python地理编码和geopandas应用判断坐标点空间位置

在本人另一篇文章&#xff08;高德地图地理编码python&#xff08;版本3.9&#xff09;爬虫&#xff08;含坐标转换及数据表模板&#xff09;-CSDN博客&#xff09;的基础上增加geopandas功能&#xff0c;使脚本能自动根据查找的高德地图坐标与现有的几何范围进行交互&#xff…