k8s网络-容器网络

简介: k8s网络 kubernetes

k8s网络
1.容器网络 pod
每个POD分配单独的Ip地址,IP-pre-Pod模型(IP以Pod为单位进行分配的,一个Pod一个IP的设计模型)
每个容器也可以称为pod,pod中有个pause容器,pause可以接入网络,并且共享网络给pod中其他容器,每个POD分配单独的Ip地址,在pod中每个容器共享自己的IP
对于k8s来说,我们搭建的网络,每一个node有自己的子网,所有的子网形成一个大的子网,实现网络互连
流向来说,通过pod暴露出的port流向外部的bridge或者说host上,通过host上的iptables或者其他方式路由到其他节点
使用container network interface 标准,由cncf基金会推出,主要是统一整个容器网络API,k8s主要是使用CNI插件来组件自己的容器网络,
当POD创建销毁时,k8s agent会调用CNI插件接口生成网络配置,
创建container(POD)可以生成IP地址,把container接入bridge,去生成container到其他节点的路由,删除container时,会把IP地址回收,处理network namespace回收
CNI也会在container里面生成虚拟网卡(NIC 全称:Network Interface Card),把它和container(POD)的namespace关联,从而container可以使用由CNI提供的IP

CNI创建网络1:
Kubelet runtime 也就是kubelet收到创建pod请求以后,会先生成pause的container,为pause的container创建一个network namespace,把它(network namespace)关联到pause container上面
CNI创建网络2:
触发CNI插件,触发插件时,把CNI的configuration load给这个CNI的插件,并且传递给其他环境变量,现在做的action是什么,已经创建的network namespace是什么,interface是什么

CNI创建网络3:
收到参数后开始创建网络,使用bridge plugin CNI例子来讲,
1.先创建单独的bridge出来,然后去创建虚拟以特网接口veth pair,把它和network namespace 连接起来,
2.同时它(CNI)会调用ipam(IP地址的分配),获取空闲IP分配给container,
3.CNI会切换到container的network namespace里,把ip地址设置在 container的network interface上

Network agent不仅需要CNI的plugin还需要daemon,不同的厂家都会实现不同的network agent,它去保证从这个IP会方便的路由到不同节点

calico:基于容器的网络,也可以openstack 用linux的内核转发机制,使用3层路由协议,实现container的互连
k8s上,calico会创建agent,calico cni插件,通过BGP协议路由表

fannel:使用overloay,container连上flannel 0这个上,不同的flannel angent 通过UDP互连,有性能影响,在原来的ip包上封装

NSX-t:使用2层转发,使用openVswitch做2层转发,需要运行openVswitch的服务

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
5月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
625 2
|
7月前
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
231 1
|
8月前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
1373 39
|
9月前
|
网络协议 Docker 容器
使用网络--容器互联
使用网络--容器互联
190 18
|
9月前
|
Kubernetes 数据安全/隐私保护 容器
K8s中Flannel网络插件安装提示forbidden无权限的解决方法
总的来说,解决“forbidden无权限”的问题,需要从权限和配置两个方面来考虑。只有当用户或者服务账户有足够的权限,且Flannel的配置文件设置正确,才能成功地安装Flannel。希望这个解答能够帮助你解决问题。
414 13
|
10月前
|
Kubernetes 调度 异构计算
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
生产环境 K8S + Deepseek 实现大模型部署 和 容器调度(图解+史上最全)
|
10月前
|
数据采集 消息中间件 Kubernetes
容器化爬虫部署:基于K8s的任务调度与自动扩缩容设计
随着业务复杂度提升,传统定时任务和手工扩缩容难以满足高并发与实时性需求。本文对比两种基于 Kubernetes 的爬虫调度与扩缩容方案:CronJob+HPA 和 KEDA。从调度灵活性、扩缩容粒度、实现难度等维度分析,并提供 YAML+Python 示例。方案 A(CronJob+HPA)适合固定定时任务,配置简单;方案 B(KEDA)支持事件驱动,适合高并发与异步触发场景。根据实际需求可混合使用,优化资源利用与效率。
368 4
|
9月前
|
Kubernetes Cloud Native 区块链
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
Arista cEOS 4.30.10M - 针对云原生环境设计的容器化网络操作系统
289 0
|
11月前
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
432 13
|
11月前
|
存储 运维 Kubernetes
容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复
阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多