K8s 网络模型的计划目标是实现各个组件之间高效、无缝的通讯。在这个模型中,每个 Pod 都拥有独立且可路由的 IP 地址,犹如每个设备在传统网络中都有本身的 IP 一样。这意味着无论 Pod 位于集群中的哪个节点,它们之间都能直接通讯,无需复杂的 NAT 转换。
2. Pod 内网络
一个 Pod 可以包罗一个或多个紧密协作的容器。在 Pod 内部,这些容器共享相同的网络命名空间,这就比如它们在同一间屋子里,利用相同的网络接口和路由表。所以,Pod 内的容器之间通过localhost和端标语就能轻松通讯,就像在同一台物理机上的历程间通讯一样便捷。
3. 同一节点上 Pod 间通讯
在同一节点上,每个 Pod 都有本身独立的网络命名空间和 IP 地址。当一个 Pod 要与同一节点上的另一个 Pod 通讯时,数据会通过虚拟以太网设备(veth pair)举行转发。veth pair 的一端毗连在 Pod 的网络命名空间内(体现为 eth0),另一端毗连在节点的网络命名空间内(如 vethX)。数据从源 Pod 的 eth0 发出,颠末 veth pair 到达节点网络,然后通过网桥(如 cbr0)转发到目标 Pod 对应的 veth 接口,最终进入目标 Pod。
4. 不同节点间 Pod 通讯
不同节点间的 Pod 通讯相对复杂一些。当源 Pod 发送数据时,数据先通过所在节点的 veth 接口和网桥到达节点的网络层。此时,节点会根据集群的路由表,将数据发送到目标 Pod 所在的节点。目标节点收到数据后,再通过自身的网桥和 veth 接口将数据转发到目标 Pod。这里的路由表由 K8s 网络插件(如 Flannel、Calico 等)负责维护和管理,确保数据能够准确无误地在不同节点间传输。
5. 服务(Service)的网络署理机制
K8s 中的服务是一种抽象,它为一组 Pod 提供了一个稳固的访问入口。每个服务都有一个虚拟的 Cluster IP,当客户端访问这个 Cluster IP 时,kube - proxy 组件会将请求转发到后端实际的 Pod 上。kube - proxy 在每个节点上运行,它通过维护 IPtables 规则或基于 IPVS 的负载均衡器,实现将服务的虚拟 IP 映射到后端 Pod 的实际 IP。这种机制使得即使后端 Pod 的 IP 地址发生变革(比如 Pod 被重新调度),客户端也无需关心,依然可以通过服务的稳固 IP 举行访问。
6. NodePort 服务范例
网络策略是 K8s 提供的一种网络访问控制机制,用于限制 Pod 之间以及 Pod 与外部网络之间的流量。通过定义网络策略,我们可以实现细粒度的访问控制,比如只允许特定命名空间的 Pod 访问某个服务,或者克制某个 Pod 访问外部网络等。要利用网络策略,必须确保所利用的网络插件(如 Calico)支持这一功能。
10. 网络策略的应用场景 - 多租户隔离
在多租户的 K8s 集群情况中,不同租户的应用可能运行在同一个集群中。为了保证租户之间的网络隔离和安全性,网络策略发挥着关键作用。可以通过定义网络策略,限制不同租户的 Pod 之间不能相互访问,每个租户只能访问本身命名空间内的资源以及特定开放的共享资源。这样就有效地制止了租户之间的网络干扰和潜在的安全风险。
11. CNI 插件概述
容器网络接口(CNI)是 K8s 中用于管理容器网络的尺度接口规范。它定义了容器运行时(如 Docker、containerd)与网络插件之间的交互方式。CNI 插件负责为容器和 Pod 配置网络,包括分配 IP 地址、设置网络接口、定义路由规则等。K8s 支持多种 CNI 插件,不同的插件在功能、性能和实用场景上各有特点,用户可以根据本身的需求选择符合的插件。
12. Flannel 网络插件
本课程围绕 Linux 系统基础管理展开,旨在资助学员全面掌握 Linux 系统的基础操作与管理技能,为深入学习系统管理进阶知识及从事相关工作奠基坚实基础。
课程起首从 Linux 系统的安装与初始配置讲起,引导学员熟悉不同安装情况下的安装流程,掌握安装过程中的分区、用户创建等关键设置,完成系统的初步搭建。接着,深入讲解 Linux 系统的基础操作,包括下令行界面的利用、常用基础下令的功能与操作技巧,如文件目次操作、文本处理、系统信息查看等,使学员能够纯熟通过下令行与系统交互。
用户和组管理是 Linux 系统安全与权限控制的核心,课程将详细先容用户和组的创建、修改、删除,权限分配与管理等内容,资助学员理解并实现系统资源的合理分配与访问控制。在文件系统管理部分,学员将学习文件系统的布局、挂载与卸载操作、磁盘分区管理、文件系统空间管理等知识,掌握文件系统的维护与优化方法。
历程管理也是 Linux 系统管理的重要内容,课程会讲解历程的概念、状态、查看与控制方法,以及服务的启动、停止、重启与开机自启设置,使学员能够有效管理系统中的历程和服务,保障系统稳固运行。此外,课程还将涉及系统日志管理,包括日志文件的查看、分析与清理,资助学员从日志中获取系统运行信息,实时发现并办理潜在题目。
课程最后设置综合实践环节,通过模拟实际工作场景,让学员运用所学知识办理 Linux 系统基础管理中的各类题目,提拔动手能力和题目办理能力。通过本课程的学习,学员将具备独立完成 Linux 系统基础管理工作的能力,为后续深入学习和实践 Linux 系统管理的高级技术做好准备 。