云服务器容器化部署:20个Kubernetes核心术语必知
在云服务器上搭建容器化环境,Kubernetes(K8s)是绕不开的核心工具。但对新手而言,Kubernetes的术语体系常让人望而却步。本文梳理了20个关键术语,覆盖部署全流程,帮你快速建立技术沟通基础。
基础概念:理解集群的"最小单元"
Pod是Kubernetes中最小的可部署单元,像一个"应用舱",能容纳1个或多个紧密协作的容器(如主应用+日志收集器)。这些容器共享网络和存储,在云服务器上可视为独立的"微型部署包"。
Node是集群中的工作节点,本质是运行容器的服务器——在云服务器环境里,它可能是一台虚拟机或弹性计算实例,负责承载Pod并提供CPU、内存等资源。
Cluster则是多台Node的集合,通过网络互联形成统一资源池。在云服务器上搭建Kubernetes集群,能将分散的计算资源整合,提升应用可用性和扩展性。
资源管理:控制容器的"生命周期"
Deployment是管理Pod副本的"指挥官"。你可通过它定义副本数量(如3个Pod保证高可用)、更新策略(滚动更新/蓝绿部署),在云服务器上轻松实现应用扩容、缩容或版本升级。
ReplicaSet是Deployment的"执行层",负责确保指定数量的Pod始终运行。比如设定3副本时,若某Pod故障,ReplicaSet会立即创建新实例补足。
StatefulSet专为有状态应用设计。相比Deployment的无状态管理,它能保证数据库这类需要持久化存储的应用,在云服务器上部署时保持Pod的顺序性(如主从节点)和稳定标识(固定网络地址)。
网络交互:打通内外的"通信规则"
Service是Pod的"虚拟入口",为一组Pod提供统一访问地址(如ClusterIP)。在云服务器上,外部流量通过Service路由到后端Pod,自动实现负载均衡和服务发现。
Ingress是集群的"大门警卫",通过HTTP/HTTPS规则将外部流量导向不同Service。例如配置"app.example.com"指向订单Service,"api.example.com"指向支付Service,灵活管理多应用入口。
NetworkPolicy是Pod的"网络防火墙",可定义"哪些Pod能通信""允许哪些端口"等规则。在云服务器上启用它,能精准控制容器间流量,提升应用安全边界。
存储方案:保障数据的"持久留存"
Volume是Pod内的"共享存储区",支持容器间临时数据交换(如内存卷)或持久化存储(如挂载云硬盘)。在云服务器上,它能解决容器重启后数据丢失的问题。
PersistentVolume(PV)是集群的"独立存储资源",可以是云服务器提供的块存储(如云硬盘)或文件存储(如NFS),生命周期独立于Pod,数据不会因Pod删除而丢失。
PersistentVolumeClaim(PVC)是用户对PV的"资源申请单"。Pod通过PVC声明需要的存储空间(如"申请50GB SSD存储"),Kubernetes会自动匹配符合条件的PV。
配置与调度:优化运行的"隐形规则"
ConfigMap是应用的"配置百宝箱",可存储数据库地址、日志级别等非敏感配置。在云服务器上,将配置以ConfigMap形式管理,修改时只需更新资源对象,无需重启容器。
Secret是敏感信息的"加密保险库",用于存储密码、API密钥等数据。与ConfigMap不同,Secret内容默认以Base64编码存储,云服务器环境中可结合密钥管理服务进一步增强安全性。
Scheduler是集群的"资源调度员",根据Node剩余资源、Pod资源需求(如CPU请求1核)、节点标签(如"disk=ssd")等因素,将Pod分配到最合适的Node上运行。
Taint(污点)与Toleration(容忍)是节点的"准入规则"。给Node打Taint(如"special=isolated:NoSchedule")后,只有带对应Toleration的Pod才能被调度至此,适合隔离高资源消耗任务。
Affinity(亲和性)与Anti-Affinity(反亲和性)是Pod的"位置偏好"。例如设置"同应用Pod尽量分散(反亲和)",可避免因单节点故障导致服务全挂;设置"缓存Pod与数据库Pod尽量同节点(亲和)",能减少网络延迟。
扩展工具:应对多样化需求
DaemonSet是集群的"守护进程管理者",确保每个Node运行且仅运行一个指定Pod。在云服务器上,常用来部署日志采集Agent、监控探针等基础服务。
Job是"一次性任务执行器",适用于批处理(如数据清洗)、迁移等只需运行一次的任务。任务完成后Pod自动终止,释放云服务器资源。
CronJob是"定时任务调度器",支持按Cron表达式(如"每天0点")定期执行Job。在云服务器上,可用于定时备份数据库、生成统计报表等场景。
掌握这些术语后,你在云服务器上的容器化部署将更高效,也能更顺畅地与团队协作,探索Kubernetes生态的更多可能。从理解术语开始,逐步实践部署、运维操作,云服务器与Kubernetes的组合会成为你构建稳定应用的有力武器。