Kubernetes 系列【4】基础概念

发布时间:2026/7/5 14:34:40
Kubernetes 系列【4】基础概念 文章目录1. Cluster集群2. Control Plane控制平面3. Node节点4. Pod容器组5. Deployment部署控制器6. Service服务7. Labels标签8. Label Selector标签选择器1. Cluster集群Kubernetes是可直接用于生产环境的开源编排平台负责调度容器应用在多台服务器组成的集群中运行。它将多台服务器构建成高可用集群对外呈现为一个整体。依托平台的抽象能力我们能够直接将容器应用部署到集群无需绑定到单台物理主机。想要使用该部署模式应用必须打包为容器实现与宿主机解耦。对比传统直接在物理机安装软件的模式容器化应用更灵活、可用性更强。Kubernetes能够自动完成容器在集群中的分发与调度提升硬件资源利用率并且开源免费支持直接部署到生产环境。一个集群包含两大资源控制平面Control Plane全局统一管理整个集群节点Node执行业务、运行容器的工作机器工作流程用户向控制平面下发部署指令控制平面把容器调度到各个节点运行。节点上的kubelet通过Kubernetes API与控制平面持续通信。开发人员也可以直接调用API来操作集群。2. Control Plane控制平面统一管控集群整体以及所有业务节点统筹集群全部运维工作包含应用调度、维持副本期望状态、弹性扩缩容、新版本灰度发布。在旧版本Kubernetes中集群管控节点叫做Master节点1.24版本之后正式废弃Master叫法统一命名为Control Plane控制平面。查看节点状态时角色也是control-plane3. Node节点节点可以是物理服务器或虚拟机承担集群的业务负载。每个节点都会运行kubelet代理进程管理本机容器并与控制平面交互。节点还需要安装容器运行时如containerd、CRI-O等。4. Pod容器组Pod是Kubernetes中最小的调度单元。一个Pod可以包含一个或多个容器并共享网络命名空间。IP地址。存储卷。运行上下文。通常情况下一个Pod只运行一个主业务容器。只有容器之间强耦合、需要共享网络或磁盘时才建议将多个容器放在同一个Pod中。5. Deployment部署控制器Deployment是Kubernetes最常用的控制器用来声明应用的期望运行状态由集群自动维持状态不用人工干预。创建Deployment后控制平面会根据集群资源情况将Pod调度到合适的Node上运行。核心能力创建Pod副本根据配置自动拉起指定数量的业务Pod。持续维持副本数量一旦Pod崩溃、节点故障立刻自动新建Pod补齐数量实现自愈。弹性扩缩容随时修改副本数集群自动增加或减少实例。滚动版本升级新版本逐步替换旧Pod业务不中断升级失败可以一键回滚。运行流程开发者编写配置声明副本数量、镜像版本Deployment把配置提交给控制平面调度器将Pod调度到合适的Node节点运行控制器不间断监控Pod状态保证始终符合期望。6. Service服务Pod会频繁重建IP地址不断变化外部无法固定访问。如果使用Deployment运行您的应用程序Deployment将会在Pod消亡后再创建一个新的Pod以维持所需要的副本数。Pod的IP会随着Pod重建而变化因此不能直接依赖Pod IP对外提供稳定访问。Service用于为一组Pod提供稳定访问入口并支持服务发现和负载均衡常见Service类型类型说明ClusterIP默认类型仅集群内部访问NodePort在每个节点开放端口可通过节点IP:端口访问LoadBalancer云环境中创建外部负载均衡ExternalName将服务映射到外部域名7. Labels标签标签是附加在Pod、Node、Deployment等所有K8s资源上的键值对key/value仅用于人工 / 程序筛选、归类资源对K8s内核无强制语义约束。语法限制Key可选前缀名称总长≤253名称≤63字符k8s.io/为系统保留前缀Value≤63字符允许空值首尾只能是数字字母示例Pod标签metadata:labels:environment:productionapp:nginx8. Label Selector标签选择器Label是资源上的键值对用于标识和筛选资源。Label Selector用于按标签批量匹配资源多条件逗号分隔代表逻辑与原生不支持逻辑或。匹配方式等值匹配、、!集合匹配功能更强使用场景场景1命令行 /API查询过滤kubectl list/watch场景2控制器内部绑定资源两种配置字段matchLabels仅等值匹配兼容旧资源Service、RCmatchExpressions支持全套集合运算符Deployment、RS、Job、DaemonSet等新版资源支持示例通过-l指定标签筛选# 等值匹配kubectl get pods-lenvironmentproduction,tierfrontend# 集合匹配多值或kubectl get pods-lenvironment in (production,qa)# 存在该标签kubectl get pods-lpartition示例Service通过Selector匹配带有指定Label的Pod从而将流量转发给正确的后端实例。