首页 > 其他分享 >Kubernetes 网络

Kubernetes 网络

时间:2024-03-11 18:24:10浏览次数:27  
标签:容器 Network Kubernetes 网络 Pod Calico

简述Kubernetes网络模型

Kubernetes网络模型中每个Pod都拥有一个独立的IP地址,不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的IP进行访问;

同时为每个Pod都设置一个IP地址的模型使得同一个Pod内的不同容器会共享同一个网络命名空间,也就是同一个Linux网络协议栈。

这就意味着同一个Pod内的容器可以通过localhost来连接对方的端口;在Kubernetes的集群里,IP是以Pod为单位进行分配的。一个Pod内部的所有容器共享一个网络堆栈;

简述Kubernetes CNI模型

Kubernetes CNI模型是对容器网络进行操作和配置的规范,通过插件的形式对CNI接口进行实现。

CNI仅关注在创建容器时分配网络资源,和在销毁容器时删除网络资源。

容器(Container):是拥有独立Linux网络命名空间的环境,例如使用Docker或rkt创建的容器。容器需要拥有自己的Linux网络命名空间,这是加入网络的必要条件;

网络(Network):表示可以互连的一组实体,这些实体拥有各自独立、唯一的IP地址,可以是容器、物理机或者其他网络设备(比如路由器)等;

简述Kubernetes网络策略

为实现细粒度的容器间网络访问隔离策略,K8s引入Network Policy主要功能是对Pod间的网络通信进行限制和准入控制,设置允许访问或禁止访问的客户端Pod列表。

Network Policy定义网络策略,配合策略控制器(Policy Controller)进行策略的实现;

简述Kubernetes网络策略原理

Network Policy的工作原理主要为:policy controller需要实现一个API Listener,监听用户设置的Network Policy定义,并将网络访问规则通过各Node的Agent进行实际设置(Agent则需要通过CNI网络插件实现);

简述Kubernetes中flannel的作用

1)它能协助Kubernetes,给每一个Node上的Docker容器都分配互相不冲突的IP地址;

2)它能在这些IP地址之间建立一个覆盖网络(Overlay Network),通过这个覆盖网络,将数据包原封不动地传递到目标容器内;

简述Kubernetes Calico网络组件实现原理

Calico是一个基于BGP的纯三层的网络方案,与OpenStack、Kubernetes、AWS、GCE等云平台都能够良好地集成,Calico在每个计算节点都利用Linux Kernel实现了一个高效的vRouter来负责数据转发。每个vRouter都通过BGP协议把在本节点上运行的容器的路由信息向整个Calico网络广播,并自动设置到达其他节点的路由转发规则;Calico保证所有容器之间的数据流量都是通过IP路由的方式完成互联互通的。

Calico节点组网时可以直接利用数据中心的网络结构(L2或者L3),不需要额外的NAT、隧道或者Overlay Network,没有额外的封包解包,能够节约CPU运算,提高网络效率;

 

标签:容器,Network,Kubernetes,网络,Pod,Calico
From: https://www.cnblogs.com/peteremperor/p/18066737

相关文章

  • 如何利用cps推广进行网络兼职?
    如今的互联网发展很快、变革很大,从最早用免费空间做个人主页,到后来购买虚拟主机做个人网站,到后来的VPS主机和独立服务器,直到现在一直使用云服务器。我经历了早期互联网的萌芽时期,也错过了很多互联网的机遇。从最早靠传统广告联盟盈利,到后来做包月付费广告。直到2019年接触了解cps......
  • Kubernetes PodSecurityPolicy
    简述KubernetesPodSecurityPolicy机制KubernetesPodSecurityPolicy是为了更精细地控制Pod对资源的使用方式以及提升安全策略。在开启PodSecurityPolicy准入控制器后,Kubernetes默认不允许创建任何Pod,需要创建PodSecurityPolicy策略和相应的RBAC授权策略(AuthorizingPolicies),Pod......
  • 关于网络的一些东西
    网络趣事你是一台孤单的电脑A 直到有一天,你希望与另一台电脑B建立通信,于是你们各开了一个网口,用一根网线连接了起来。 用一根网线连接起来怎么就能"通信"了呢?我可以给你讲IO、讲中断、讲缓冲区,但这不是研究网络时该关心的问题。如果你纠结,要么去研究一下操作系......
  • 简述Kubernetes各模块如何与API Server通信
    K8sAPIServer作为集群的核心,负责集群各功能模块之间的通信。集群内的各个功能模块通过APIServer将信息存入etcd,当需要获取和操作这些数据时,则通过APIServer提供的REST接口(用GET、LIST或WATCH方法)来实现,从而实现各模块之间的信息交互。1)kubelet进程与APIServer的交互:每个Nod......
  • 简述Kubernetes准入机制
    在对集群进行请求时,每个准入控制代码都按照一定顺序执行。如果有一个准入控制拒绝了此次请求,那么整个请求的结果将会立即返回,并提示用户相应的error信息,准入控制(AdmissionControl)准入控制本质上为一段准入代码,在对kubernetesapi的请求过程中,顺序为:先经过认证&授权,然后执行准入......
  • 简述Kubernetes如何保证集群的安全性
    1)基础设施方面:保证容器与其所在宿主机的隔离;2)用户权限:划分普通用户和管理员的角色;3)APIServer的认证授权:Kubernetes集群中所有资源的访问和变更都是通过KubernetesAPIServer来实现的,因此需要建议采用更安全的HTTPS或Token来识别和认证客户端身份(Authentication),以及随后访问权......
  • Kubernetes: kube-controller-manager 源码分析
    0.前言在Kubernetes架构中,controllermanager是一个永不休止的控制回路组件,其负责控制集群资源的状态。通过监控kube-apiserver的资源状态,比较当前资源状态和期望状态,如果不一致,更新kube-apiserver的资源状态以保持当前资源状态和期望状态一致。1.kube-controller-ma......
  • Kubernetes ETCD
    简述ETCD及其特点etcd是一个分布式的、高可用的、一致的key-value存储数据库,基于Go语言实现,主要用于共享配置和服务发现。特点:1)完全复制:集群中的每个节点都可以使用完整的存档;2)高可用性:Etcd可用于避免硬件的单点故障或网络问题;3)一致性:每次读取都会返回跨多主机的最新写入;4)简......
  • 云计算 - 内容分发网络CDN技术与应用全解
    在这篇全面解析CDN的技术文章中,我们深入探讨了CDN的基础概念、核心架构、多样化产品和在不同行业中的应用案例。文章揭示了CDN技术如何优化内容分发,提升用户体验,并展望了CDN面临的挑战和未来发展趋势。关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有......
  • 简单懂点k8s网络(5)深入理解kube-proxy
         ......