云原生 Kubernetes 核心概念与组件详解
目录一、Kubernetes 是什么核心功能概览二、部署演进从物理机到容器1. 传统部署时代2. 虚拟化部署时代3. 容器部署时代三、Kubernetes 集群架构1. 控制平面组件集群大脑1kube-apiserver2etcd3kube-scheduler4kube-controller-manager5cloud-controller-manager2. 节点组件工作负载载体1kubelet2kube-proxy3容器运行时CRI3. 集群插件扩展功能组件1网络与网络策略2服务发现3可视化与控制4基础设施四、标签与选择算符标签的用途标签规范常用标签示例五、总结一、Kubernetes 是什么Kubernetes简称 K8s源自希腊语 “舵手”因 K 与 s 之间有 8 个字符得名由 Google 在 2014 年开源基于其十几年大规模容器运行经验打造是用于自动化部署、扩展和管理容器化应用的开源平台。它并非传统 PaaS 系统而是提供弹性运行分布式系统的框架核心价值是解决容器在生产环境中的自动化管理问题当容器故障时自动替换、根据负载自动扩缩容、实现跨节点通信与资源调度让应用无需人工干预即可稳定运行。核心功能概览表格功能说明服务发现与负载均衡通过 DNS 或 IP 暴露容器自动分配流量保障服务稳定存储编排支持挂载本地存储、云存储等多种存储系统自动部署与回滚以受控速率更新容器状态不中断业务实现版本切换资源调度按 CPU / 内存需求将容器调度到最优节点高效利用资源自我修复重启故障容器、节点失效时重新调度健康检查不响应的容器密钥与配置管理安全存储密码、令牌等敏感信息无需重建镜像即可更新配置水平扩缩容基于 CPU 使用率或命令自动调整应用实例数量批处理执行管理批处理和 CI/CD 工作负载支持失败容器替换IPv4/IPv6 双栈为 Pod 和 Service 分配双栈地址可扩展设计支持自定义扩展集群功能无需修改上游代码二、部署演进从物理机到容器1. 传统部署时代直接在物理服务器运行应用存在资源分配不均单个应用占用过多资源导致其他应用性能下降、资源利用率低空闲资源无法复用、硬件成本高的问题。2. 虚拟化部署时代通过虚拟机VM隔离应用实现资源更高效利用和弹性扩展但每个 VM 包含完整操作系统存在资源开销大、启动慢的缺点。3. 容器部署时代容器共享主机操作系统内核比 VM 更轻量具备独立文件系统、进程空间实现应用与底层架构分离支持跨云 / 跨系统移植优势包括敏捷创建与部署镜像构建高效持续集成 / 部署镜像不可变性支持可靠回滚开发与运维分离应用与基础架构解耦跨环境一致性本地与云端运行效果一致微服务架构支持应用解耦为独立组件资源隔离保障应用性能稳定三、Kubernetes 集群架构一个 Kubernetes 集群由 ** 控制平面Control Plane和节点Node** 组成控制平面负责全局决策与集群管理节点运行容器化应用 Pod。1. 控制平面组件集群大脑控制平面组件对集群做出全局决策检测并响应集群事件可运行在集群任意节点生产环境中通常部署在专用节点以保证稳定性。1kube-apiserver核心作用Kubernetes API 服务器是控制平面的前端所有集群操作的入口支持水平扩展通过多实例部署实现负载均衡。核心功能验证并处理所有 API 请求是集群各组件通信的枢纽。2etcd核心作用集群数据的后端存储是一致、高可用的键值存储系统保存所有集群数据配置、状态、元数据。核心功能保证数据一致性和可靠性是集群的 “数据库”。3kube-scheduler核心作用调度器监视新创建且未分配节点的 Pod为其选择合适的运行节点。调度考量因素资源需求、硬件 / 软件约束、亲和性 / 反亲和性、数据局部性、负载干扰等。4kube-controller-manager保证实际状态 和 理想状状态一致核心作用运行各类控制器进程的组件逻辑上每个控制器独立运行实际编译为单一进程。常见控制器节点控制器节点故障时的检测与响应Job 控制器管理一次性任务的 Pod 创建与完成EndpointSlice 控制器建立 Service 与 Pod 的连接ServiceAccount 控制器为新命名空间创建默认服务账户5cloud-controller-manager核心作用云控制器管理器嵌入特定云平台的控制逻辑连接集群与云提供商 API。说明仅在云环境运行本地学习环境通常无此组件。2. 节点组件工作负载载体节点组件运行在每个节点上负责维护 Pod 运行状态提供 Kubernetes 运行时环境。1kubelet核心作用节点代理程序运行在每个节点上确保 Pod 内容器正常运行。核心功能接收控制平面指令管理 Pod 生命周期监控容器健康状态不管理非 Kubernetes 创建的容器。2kube-proxy核心作用网络代理实现 Kubernetes Service 功能维护节点网络规则允许集群内外与 Pod 通信。说明若使用实现等效功能的网络插件如部分第三方插件可无需运行 kube-proxy。3容器运行时CRI核心作用管理容器的执行与生命周期支持 containerd、CRI-O 等符合 CRI 规范的实现。说明Kubernetes 1.24 不再直接支持 Docker需通过 cri-dockerd 适配 Docker 作为运行时。3. 集群插件扩展功能组件插件通过 Kubernetes 资源DaemonSet、Deployment 等实现集群级功能资源默认位于 kube-system 命名空间。1网络与网络策略Calico支持灵活网络选项提供网络策略功能实现 Pod 间通信与访问控制Flannel覆盖式网络方案实现容器跨节点通信Gateway API标准化服务网络模型提供可扩展的应用程序接口2服务发现CoreDNS集群内 DNS 服务器为服务提供域名解析实现服务发现3可视化与控制Dashboard网页控制台支持集群管理、应用部署与故障排查4基础设施KubeVirt在 Kubernetes 上运行虚拟机的插件提供高性能虚拟机部署能力四、标签与选择算符标签Labels是附加到 Kubernetes 对象Pod、Node、Service 等的键值对不影响资源功能主要用于资源标记、管理与筛选。标签的用途选择器Service 通过标签选择器定位并路由流量到特定 Pod组织分类通过标签区分开发 / 生产环境、不同版本应用批量管理基于标签实现批量删除、更新等操作标签规范键可选前缀DNS 子域格式不超过 253 字符 名称≤63 字符字母数字开头 / 结尾支持 -、_、.如app.kubernetes.io/component: database值≤63 字符可为空字母数字开头 / 结尾支持 -、_、.常用标签示例版本标签version: v1.1.0环境标签env: dev应用标签app: nginx五、总结Kubernetes 通过控制平面实现集群全局管理节点组件保障工作负载运行插件扩展集群功能标签实现资源灵活管理形成了一套自动化、可扩展、高可用的容器编排体系。理解各组件分工与交互逻辑是掌握 Kubernetes 的核心基础。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2604627.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!