【Kubernetes专项】温故而知新,重温技术原理(2)

Kubernetes中常见的集群部署方式?

bash 复制代码
场景/运维复杂度:
	1.开发/测试
		Minikube
	2.生产自建
		kubeadm
		二进制包
	3.自动化运维
		kubespray
	4.云托管
		ACK(Alibaba),EKS(AWS),TKE(Tencent)
	5.企业发行版
		Rancher
		Openshift
		K3s

简述Kubernetes如何实现集群管理?

bash 复制代码
1.控制平面+工作节点构成的双层架构:
	控制平面(统一管理集群状态)
		apiserver
		etcd
		scheduler
		controller-manager
	工作节点(负责实际容器的运行)
		kubelet
		kube-proxy

2.声明式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的优势、适应场景?

bash 复制代码
a.三大主要优势:
	1.声明式自动化 - 减少人为干预
	2.弹性伸缩 - HPA(Pod水平伸缩--Pod副本数) VPA(Pod垂直伸缩--调整Pod资源请求) CA(集群节点伸缩--自动扩容节点池)
	3.自愈能力 - 故障自动恢复
	
b.六大典型场景:
	1.微服务架构
		大规模服务治理,版本发布,灰度,回滚频繁情况
	
	2.CI/CD流水线
		结合Jenkins/GitLab CI 实现自动构建与部署
	
	3.高弹性业务-突发流量
		电商秒杀,直播弹幕

	4.大数据/AI训练
		训练任务(Job/Cron Job),分布式计算,GPU资源管理
	
	5.混合云统一管理
		跨集群联邦管理,资源调度与迁移,避单云厂商锁定
	
	6.传统业务容器化上云
		有状态应用,周期任务

简述Kubernetes创建一个Pod的主要流程?

bash 复制代码
主要流程:
	1.用户自主声明(Deployment/Job 等)
	2.apiserver校验 -> 写入 etcd
	3.controller-manager 内部多个控制器接力协作:Deployment Controller -> ReplicaSet Controller -> Pod(Pending状态)
	4.scheduler 调度Pod:通过 List-Watch机制 感知 Pending Pod -> 选最优节点 -> etcd写入绑定关系
	5.kubelet 执行:拉镜像、启动容器、上报 Running

说说KubernetesService-Discovery服务发现?

bash 复制代码
1.两大实现方式:环境变量(传统,有感知滞后缺陷)与 DNS(推荐,实时动态解析)。现代集群统一使用 CoreDNS 作为DNS服务。

2.DNS记录格式:<service>.<namespace>.svc.cluster.local
	Headless Service 返回 Pod IP 列表,普通 Service 返回 ClusterIP。
	集群DNS默认配置 /etc/resolv.conf	10.96.0.10 指向 CoreDNS

3.流量转发靠 kube-proxy: 核心是将 ClusterIP 流量 NAT 转发到后端 Pod。

4.底层数据源:Service + Endpoints/EndpointSlice 通过 List-Watch 实时同步,保证发现结果始终正确。
	Endpoints - 全量更新
	EndpointSlice - 分片+增量更新(仅更新受影响的分片)
		# 兼容性:EndpointSlice 功能启用时,Kubernetes 自动维护 Endpoints 与 EndpointSlice 两套资源,向后兼容,用户无需手动迁移
	
设计意图:将服务发现与具体Pod IP解耦------应用通过稳定的服务名调用,后端 Pod 重建或漂移时前端完全无感知。
相关推荐
雨奔4 小时前
Kubernetes 网络策略(NetworkPolicy)完全指南:声明式 Pod 通信管控
网络·容器·kubernetes
身如柳絮随风扬4 小时前
Kubernetes v1.20.9 集群搭建
云原生·容器·kubernetes
LSL666_4 小时前
微服务架构
微服务·云原生·架构
蛐蛐蛐6 小时前
在Windows 11上安装Docker的踩坑记录
运维·docker·容器
AI精钢6 小时前
Hermes Agent 整合 OpenCode CLI 的实战经验
人工智能·云原生·aigc
cyber_两只龙宝6 小时前
【Oracle】Oracle之使用DML语言管理表
linux·运维·服务器·数据库·云原生·oracle
古典和浪漫6 小时前
docker file 中设置软链接和在k8s 中配置同步时区 有什么区别,各自优缺点
docker·容器·kubernetes
成为你的宁宁6 小时前
【K8s ServiceAccount 机制原理与 RBAC 权限实战应用】
云原生·容器·kubernetes
尘世壹俗人7 小时前
知识点12---k8s进阶操作方式yaml资源文件
docker·容器·kubernetes