【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 重建或漂移时前端完全无感知。
相关推荐
sbjdhjd18 分钟前
02 (中)| K8s Pod 生产化落地:从配置到优化全流程
linux·运维·云原生·kubernetes·开源·podman·kubelet
皓月盈江18 分钟前
Linux Ubuntu系统如何编辑Docker容器内的文件
linux·ubuntu·docker·容器·靶场·vulhub·编辑docker内文件
China_Yanhy27 分钟前
【云原生实战】从零构建无节点 EKS:Karpenter 极简注入与全自动算力接管指南
linux·运维·云原生
蜀道山老天师34 分钟前
从零搭建 Prometheus 监控 MySQL:含二进制安装、授权、exporter 配置全流程
运维·数据库·mysql·adb·云原生·prometheus
珂玥c1 小时前
添加node节点到k8s集群+配置网络插件flannel
云原生·容器·kubernetes
努力搬砖的咸鱼1 小时前
PersistentVolume与PersistentVolumeClaim:K8s 存储绑定机制完全解析
云原生·容器·kubernetes
xingfujie2 小时前
第3章 安装 kubeadm/kubelet/kubectl
linux·云原生·容器·kubernetes·kubelet
代码讲故事2 小时前
mac电脑上docker突然无法运行,不停的出现弹框,“com.docker.vmnetd”将对你的电脑造成伤害。附国内不同芯片高速下载地址,下载直接运行。
macos·docker·容器·arm·mac·intel·下载
员宇宙3 小时前
k8s学习笔记
笔记·学习·kubernetes
运维全栈笔记3 小时前
Harbor生产级部署实战:PostgreSQL+Redis+MinIO全解耦架构详解
linux·运维·服务器·笔记·架构·kubernetes·k8s