先放个链接,万一有人关注呢
优质文章推荐
↓ ↓ ↓ ↓ ↓
Kubernetes(K8S)集群自动化部署脚本示例
Kubernetes(K8S)部署集群全流程详解:基于Kubeadm
CentOS与Ubuntu到底怎么选择?
Linux系统修改静态IP地址自动化脚本
Linux系统服务巡检脚本
Kubernetes(通常简称 K8s)是当今最受欢迎的容器编排和管理平台之一,用于自动化容器化应用程序的部署、扩展和管理。
Kubernetes 架构概览
Kubernetes 架构是多层次的,由各种组件组成,这些组件协同工作以实现容器编排和管理。以下是 Kubernetes 主要的组件和其关系:
核心组件
1、etcd:
etcd 是 Kubernetes 的"大脑",它是一个高可用的分布式键值存储系统。etcd内部使用Raft一致性算法,确保集群状态的一致性。etcd用于存储集群的配置信息、元数据和状态。这包括 Pod 定义、Service 发现信息、命名空间配置等。
2、apiserver:
API Server 充当整个 Kubernetes 集群的前端,是控制面的入口。它接受来自用户、命令行工具和各个组件的请求,并将这些请求转化为操作集群状态的内部操作。API Server还处理认证、授权、访问控制、API注册和发现等机制。
Controller Manager 包括多个控制器,每个控制器负责维护集群的某个方面。例如,Replication Controller 确保 Pod 的副本数量符合期望。这些控制器通过 API Server 监控集群状态,然后采取必要的操作以维持期望状态。其他控制器包括Namespace Controller和Endpoints Controller。Scheduler 负责监视新创建的 Pod,并根据调度策略将它们分配给合适的节点。调度策略可以包括资源需求、亲和性和反亲和性规则等。Scheduler确保了集群资源的高效利用。Kubelet 运行在每个节点上,负责管理该节点上的容器。它根据 API Server 的指令启动、停止和监控容器。Kubelet还管理与网络(CNI)和存储(CSI)相关的任务。它的工作包括监控Pod的生命周期,拉取容器镜像,确保Pod处于所需状态。Container Runtime 是 Kubernetes 与底层容器运行时引擎(如Docker)交互的组件。它负责拉取镜像、创建容器和管理容器的生命周期。不同的容器运行时引擎可以与 Kubernetes 集成,但Docker是最常用的。Container Runtime负责运行容器,管理其配置,以及提供隔离和安全性。Kube Proxy 负责为 Service 提供集群内部的服务发现和负载均衡。它维护节点上的网络规则,以确保服务可以通过相应的Pod访问。Kube Proxy通过iptables或IPVS等机制实现服务的负载均衡和代理。核心概念
1、CNI(Container Network Interface):CNI 是一个标准的接口,用于连接容器管理系统和网络插件。它提供了一个容器所在的网络命名空间,将网络接口(例如veth)插入该网络命名空间,并在宿主机上进行一些配置,如将veth的另一端连接到网络桥。最后,它配置网络命名空间中的网络接口的IP和路由规则。常用的CNI解决方案包括Flannel、Calico、Weave以及多种云提供商特定的解决方案。2、CRI(Container Runtime Interface):CRI 包含一组 protocol buffers 和 gRPC API,为 Kubernetes 提供可插拔的容器运行时接口。Kubernetes节点上的容器运行时负责容器的创建、启动、停止等任务。Docker是Kubernetes中最常用的容器运行时,但也支持其他容器运行时如Containerd。3、OCI(Open Container Initiative):OCI 是一个开放的工业标准,它制定了容器的格式和运行时,旨在保持容器的灵活性和开放性。OCI标准确保容器可以在任何硬件和操作系统上运行,而不受特定客户机、编排堆栈或供应商的限制。Kubernetes 架构的分层介绍
Kubernetes 架构可以划分为不同层次,以满足不同层次的需求:核心层提供了 Kubernetes 最基本的功能,包括 API 管理、容器编排和管理。它包括 etcd、API Server、Controller Manager、Scheduler、kubelet、Container Runtime等核心组件。应用层包括了应用程序的部署、路由和服务发现,以及支持服务网格的一部分。这一层关注应用程序的部署、扩展和运行。在这一层中,Service 是一个关键概念,它允许负载均衡和服务发现。管理层包括集群的度量、自动化和策略管理。在这一层中,您可以实施资源配额、访问控制、自动伸缩和策略定义。接口层包括 kubectl 命令行工具、客户端 SDK 和集群联邦。这些工具使用户能够与 Kubernetes 集群进行交互,管理应用程序和集群配置。在接口层之上是一个丰富的生态系统,包括日志管理、监控、持续集成/持续部署(CI/CD)、工作流、函数即服务(FaaS)、ChatOps、GitOps 等。这些工具和流程可以与 Kubernetes 集成,提供更丰富的功能。Kubernetes 内部的组件包括 CRI、CNI、CSI(容器存储接口)、镜像仓库、云服务提供商的集成等。这些组件为 Kubernetes 提供了更多的能力和灵活性。Kubernetes 架构和组件的工作原理复杂而多样,但它们为容器化应用程序的管理提供了强大的工具。深入了解这些概念和组件是成功使用 Kubernetes 的关键。无论您是在云上、本地或混合环境中运行应用程序,Kubernetes 都提供了一个高度可扩展和灵活的平台,有助于简化和自动化容器化应用程序的管理。来不及解释了,快上车!(进群看公告,已加群的小伙伴无需重复添加)

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,无需赞赏!
原文作者:运维book思议;如有侵权,请联系管理员删除。