Kubernetes中常见的集群部署方式场景/运维复杂度1.开发/测试 Minikube2.生产自建 kubeadm 二进制包3.自动化运维 kubespray4.云托管 ACKAlibabaEKSAWSTKE(Tencent)5.企业发行版 Rancher Openshift K3s简述Kubernetes如何实现集群管理?1.控制平面工作节点构成的双层架构 控制平面统一管理集群状态 apiserver etcd scheduler controller-manager 工作节点负责实际容器的运行 kubelet kube-proxy2.声明式API 用户编写Yaml文件也就是声明期望状态 -控制器通过Controller-manager的控制循环使实际状态向期望状态持续收敛。 典型 ReplicaSet Controller - 保证副本数 Node Controller - 检测节点健康 Endpoints Controller - 维护Service后端列表 Deployment Controller - 管理版本发布及滚动更新 DaemontSet Controller - 全节点运行一个固定Pod StatefulSet Controller - 管理有状态的应用保证Pod有序启停稳定网络标识及存储绑定 Namespace Controller - 管理Namespace生命周期当指定ns被删除自动清理该ns下的所有资源... 我更喜欢这样子理解 k8s集群管理就像一个“酒店管理系统” 游客说出入住需求声明式Yaml|前台apiserver接待|数据库etcd记录|大堂经理controller-manager检查房屋是否干净|前台领班scheduler分配任务Pod给具体楼层Node工作节点|保洁人员kubelet去具体工作pull/start/...简述Kubernetes的优势、适应场景?a.三大主要优势1.声明式自动化 - 减少人为干预2.弹性伸缩 - HPAPod水平伸缩--Pod副本数 VPAPod垂直伸缩--调整Pod资源请求 CA集群节点伸缩--自动扩容节点池3.自愈能力 - 故障自动恢复 b.六大典型场景1.微服务架构 大规模服务治理版本发布灰度回滚频繁情况2.CI/CD流水线 结合Jenkins/GitLab CI 实现自动构建与部署3.高弹性业务-突发流量 电商秒杀直播弹幕4.大数据/AI训练 训练任务Job/Cron Job分布式计算GPU资源管理5.混合云统一管理 跨集群联邦管理资源调度与迁移避单云厂商锁定6.传统业务容器化上云 有状态应用周期任务简述Kubernetes创建一个Pod的主要流程?主要流程1.用户自主声明Deployment/Job 等2.apiserver校验 -写入 etcd3.controller-manager 内部多个控制器接力协作Deployment Controller -ReplicaSet Controller -Pod(Pending状态)4.scheduler 调度Pod通过 List-Watch机制 感知 Pending Pod -选最优节点 -etcd写入绑定关系5.kubelet 执行拉镜像、启动容器、上报 Running说说Kubernetes的Service-Discovery服务发现1.两大实现方式环境变量传统有感知滞后缺陷与 DNS推荐实时动态解析。现代集群统一使用 CoreDNS 作为DNS服务。2.DNS记录格式service.namespace.svc.cluster.local Headless Service 返回 Pod IP 列表普通 Service 返回 ClusterIP。 集群DNS默认配置 /etc/resolv.conf10.96.0.10 指向 CoreDNS3.流量转发靠 kube-proxy: 核心是将 ClusterIP 流量 NAT 转发到后端 Pod。4.底层数据源Service Endpoints/EndpointSlice 通过 List-Watch 实时同步保证发现结果始终正确。 Endpoints - 全量更新 EndpointSlice - 分片增量更新仅更新受影响的分片# 兼容性EndpointSlice 功能启用时Kubernetes 自动维护 Endpoints 与 EndpointSlice 两套资源向后兼容用户无需手动迁移设计意图将服务发现与具体Pod IP解耦——应用通过稳定的服务名调用后端 Pod 重建或漂移时前端完全无感知。