Kubernetes (K8S) 是云技术的核心部分,也是构建云原生的基础了解有关@mikechen 的更多信息。
K8S
K8S,正式名称为Kubernetes,是一个容器编排平台,用于自动部署、扩展和管理应用程序。
K8S主要解决四个要点:
容器编排:Kubernetes(K8S)的核心能力之一是容器编排,它允许您自动管理和编排容器化应用程序的部署、扩展和操作。弹性伸缩:Kubernetes根据应用需求和负载,自动调整运行容器的数量,实现弹性伸缩。自我修复:如果容器或节点发生故障,Kubernetes 会自动重新启动或替换这些组件,以确保应用程序的高可用性。资源管理:Kubernetes可以有效地管理和分配计算资源(CPU、内存等),从而获得更好的资源利用率。
K8S架构
Kubernetes 采用主/从(master-node)架构,由两个主要组件组成:主节点和工作节点(node)。
如下所示:
第一个主要组件:这是主组件(大脑)。
Master就像集群的“大脑”,负责管理集群的整体状态并协调所有工作负载。
这主要包括API 服务器、控制器管理器和调度程序等组件。
1.API服务器
API 服务器:Kubernetes 控制平面的前端,处理所有API 请求。
所有K8S控制请求都通过API服务器处理和转发。
API服务器主要解决以下问题:
处理集群内的所有REST 操作请求(例如创建、更新、删除等)。提供集群状态和资源的查询接口,并进行请求认证和授权。工作节点(节点):运行实际的应用程序容器并由Kubelet 代理管理。
2.Kube控制器管理器
负责运行控制器进程。这些控制器包括节点控制器、复制控制器、端点控制器等,以确保集群状态符合您所需的状态。
有多个控制器,如下图所示。
负责维护集群的状态,包括确保指定数量的Pod 正在运行、处理节点故障、滚动和更新。
3.Kube调度器
负责将新创建的Pod 分配到适当的节点上运行。
它还监视未绑定到节点的Pod,并根据预定义的策略和约束将它们分配到适当的节点。
换句话说,调度决策的核心是找到满足Pod 资源需求和其他约束的最佳节点。
第二大组件:子节点(Node)
Kubernetes工作节点(节点)通过Kubelet、Kube代理和容器运行时等组件提供强大的容器执行环境。
1.库贝雷特
Kubelet是每个节点上的主要代理进程,负责管理该节点上的pod和容器。
Kubelet 是Node 上所有容器操作的核心,直接与容器运行时交互。
2.Kube代理
Kube-proxy 是一个Kubernetes 网络代理,它: 维护Pod 之间通信的网络规则。
通过iptables管理节点上的网络规则,处理服务负载均衡和网络转发。
3. 容器运行时
容器运行时是负责检索镜像并在节点上运行容器的软件,例如:
Docker;containerd主要管理容器的生命周期,如创建、启动、停止、删除容器等。
Kubernetes (K8S) 应用
Kubernetes在多种应用场景中发挥着关键作用,包括:
微服务架构:K8S 可以与Istio 结合来解决微服务架构,将您的应用程序划分为多个小的独立服务。应用程序容器化:将应用程序容器化并将其部署到K8S 可以提高应用程序可用性和管理效率。持续集成和持续部署(CI/CD):与CI/CD 工具结合使用时,K8S 可以实现应用程序的自动化构建、测试和部署。也可以实现其他过程。 Kubernetes 提供不同进程之间的一致性。云提供商使管理混合云和多云环境变得更加容易。
K8S总结
总之,K8S是一个强大、灵活、可扩展的容器编排平台,可以满足任何规模的应用程序的部署和管理需求。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/83517.html