dede减肥网站源码,网站建设最基础是什么,网站专题二级页怎么做,工商企业注册网上核名什么是 Kubernetes#xff1f; 文章目录什么是 Kubernetes#xff1f;什么是 Kubernetes#xff1f;为什么要使用 Kubernetes#xff1f;解决什么问题#xff1f;核心架构1. 控制平面组件2. 节点组件核心概念与对象#xff08;构建块#xff09;工作流程示例#xff1a…什么是 Kubernetes文章目录什么是 Kubernetes什么是 Kubernetes为什么要使用 Kubernetes解决什么问题核心架构1. 控制平面组件2. 节点组件核心概念与对象构建块工作流程示例运行一个应用生态系统与发行版总结本文主要介绍Kubernetes涵盖其核心概念、架构、关键组件和工作原理。什么是 KubernetesKubernetes是一个开源的容器编排平台用于自动化部署、扩展和管理容器化应用程序。它最初由 Google 设计基于其内部系统 Borg 的经验并于 2014 年开源现由云原生计算基金会托管是云原生领域的基石技术。简单来说你可以把它想象成一个容器的“操作系统”或集群的“大脑”。它管理着一个由多台机器物理机或虚拟机组成的集群确保你声明的应用程序由多个容器组成能够按照预期的方式运行、扩展和恢复。为什么要使用 Kubernetes解决什么问题在容器如 Docker普及后开发者可以轻松地打包应用及其依赖。但当你想在生产环境中运行成百上千个容器时手动管理就变得不可能。Kubernetes 解决了以下核心问题服务发现与负载均衡容器可能随时被创建或销毁Kubernetes 能自动为容器组提供稳定的网络入口和负载均衡。存储编排可以自动挂载你选择的存储系统本地、云存储等。自动部署和回滚你可以描述应用的期望状态Kubernetes 会以可控的速率将实际状态变更至期望状态。如果出错可以轻松回滚。自动伸缩根据 CPU 使用率或自定义指标自动调整运行容器的数量。自我修复重启失败的容器、替换和重新调度容器、杀死不健康的容器。密钥与配置管理存储和管理敏感信息如密码、令牌并能在不重构容器镜像的情况下更新配置。核心架构Kubernetes 集群由两部分组成控制平面集群的“大脑”负责管理和调度。工作节点实际运行容器化应用的工作机器。1. 控制平面组件这些组件通常运行在集群的独立主机上。API Server集群的前端和唯一入口。所有用户、命令行工具、其他组件都通过 RESTful API 与 API Server 交互来管理集群。etcd一个高可用的键值对数据库用作 Kubernetes 的后台数据库存储了整个集群的所有配置数据和状态集群的“唯一信源”。Scheduler调度器负责为新创建的 Pod容器组选择一个合适的 Node节点来运行。它根据资源需求、策略、亲和性等约束做出决策。Controller Manager控制器管理器运行着各种控制器的进程。每个控制器都是一个控制循环不断监控集群状态通过 API Server并将其调整至期望状态。例如Node 控制器负责节点上线、下线时的响应。Replication 控制器确保指定数量的 Pod 副本始终运行。Cloud Controller Manager与底层云提供商如 AWS、GCP、Azure交互的控制器用于管理节点、路由、负载均衡器等。2. 节点组件每个工作节点上都运行着这些组件。Kubelet节点上的“代理”负责与控制平面通信确保本节点上容器的正常运行。它管理 Pod 的生命周期。Kube Proxy维护节点上的网络规则实现 Kubernetes Service 概念如负载均衡、服务发现。容器运行时负责运行容器的软件如 Docker、containerd、CRI-O。核心概念与对象构建块这是理解 Kubernetes 如何工作的关键。PodKubernetes 中可以创建和管理的最小、最简单的单元。一个 Pod 包含一个或多个紧密关联的容器共享存储、网络和命名空间。它们总是被共同调度和运行在同一个节点上。Pod 是短暂的会被频繁创建和销毁。Deployment最常用的工作负载控制器用于管理无状态应用。它定义了 Pod 的期望状态如运行 3 个副本并由控制器确保实际状态符合期望。它支持滚动更新和回滚。Service为一组功能相同的 Pod通常由 Deployment 管理提供一个稳定的网络端点IP 地址和 DNS 名称。即使后端的 Pod 被重建或替换Service 的地址保持不变实现了服务发现和负载均衡。ConfigMap SecretConfigMap用于将非机密的配置数据如配置文件、环境变量与容器镜像分离使应用易于配置。Secret类似 ConfigMap但用于存储敏感数据密码、密钥以更安全的方式Base64编码存储和传递。Volume抽象了容器中的存储。Pod 中所有容器可以共享 Volume即使容器重启Volume 中的数据也会被保留。持久卷更强大的存储抽象将存储管理与 Pod 生命周期解耦。管理员提供PersistentVolume用户申请PersistentVolumeClaim。Namespace在物理集群内部创建的虚拟集群用于将资源隔离成不同的逻辑分组如开发、测试、生产环境或分配给不同的团队。工作流程示例运行一个应用假设你想运行一个 Nginx Web 服务器并使其可被访问定义你编写一个 YAML 文件deployment.yaml描述一个Deployment指定使用nginx镜像并运行 3 个副本。提交通过kubectl apply -f deployment.yaml命令将该 YAML 提交给 API Server。调度API Server 将信息存入 etcd。Scheduler 发现有 3 个新的 Pod 需要运行根据资源情况将它们分别调度到合适的 Node 上。执行目标 Node 上的 Kubelet 通过 API Server 获知调度决策调用本地的容器运行时如 Docker拉取镜像并启动容器。暴露服务你再创建一个Service的 YAML 文件定义一个服务选择器指向刚才的 Nginx Pod。Kube Proxy 会为这个 Service 创建负载均衡规则。访问现在集群内或外部的客户端可以通过Service的 IP 或 DNS 名称访问到后端的 3 个 Nginx Pod流量会自动负载均衡。生态系统与发行版托管服务各大云厂商提供托管的 Kubernetes 服务极大简化了控制平面的管理和运维。Google Kubernetes EngineAmazon Elastic Kubernetes ServiceAzure Kubernetes Service阿里云 ACK / 腾讯云 TKE等发行版为了便于在本地或自有基础设施上安装出现了许多发行版。kubeadm官方提供的用于快速搭建集群的工具。minikube / kind用于本地学习和开发的单节点集群。K3s轻量级的 Kubernetes适用于边缘和 IoT。Rancher提供了强大的 Kubernetes 集群管理和操作界面。总结Kubernetes 已经成为现代云原生应用的事实标准编排平台。它通过声明式 API 和强大的控制器模式将复杂的分布式应用管理抽象化、自动化使开发者和运维人员能够专注于应用逻辑本身而不是基础设施的细节。虽然学习曲线较为陡峭但它为构建弹性、可扩展、易维护的应用系统提供了坚实的基础。