Kubernetes核心概念(Pod/Service/Deployment/探针)
请详细介绍Kubernetes的核心概念:Pod(最小调度单位)、Deployment(声明式更新)、Service(服务发现与负载均衡)、ConfigMap/Secret(配置管理)。存活探针(Liveness Probe)和就绪探针(Readiness Probe)有什么区别?
回答
Yahuda
Kubernetes核心概念:
-
Pod(豆荚):
- K8s最小的调度和运行单位
- 一个Pod包含一个或多个容器(共享网络命名空间和Volume)
- 每个Pod有独立的IP地址
-
Deployment(部署):
- 声明式更新Pod副本数(Replicas)
- 支持滚动更新(Rolling Update)、回滚(Rollback)
- 支持蓝绿部署、金丝雀发布
- 自动维护Pod期望状态(如容器崩溃自动重启)
-
Service(服务):
- 为一组Pod提供固定的虚拟IP和DNS名称
- 类型:
- ClusterIP(集群内访问,默认)
- NodePort(节点端口映射,外部可访问)
- LoadBalancer(云厂商负载均衡器)
- Headless Service(无ClusterIP,直连Pod)
- 通过Label Selector关联Pod
-
ConfigMap / Secret:
- ConfigMap:存储非敏感配置(键值对、配置文件)
- Secret:存储敏感数据(Base64编码,如密码、Token)
- 挂载方式:环境变量、Volume挂载
探针(Probe):
-
Liveness Probe(存活探针):
- 检查容器是否存活,失败则Kubelet杀掉容器重启
- 用途:检测死锁、内存泄漏等导致容器不可用但进程仍在的情况
-
Readiness Probe(就绪探针):
- 检查容器是否准备好接受流量,失败则从Service Endpoints中移除
- 用途:等待应用初始化完成、预热缓存
-
Startup Probe(启动探针,K8s 1.16+):
- 慢启动容器避免Liveness过早杀死
探测方式:HTTP Get、TCP Socket、Exec(命令)