01-Kubernetes 入门:概念与安装

发布时间:2026/11/12 13:14:39

01-Kubernetes 入门:概念与安装 Kubernetes 入门概念与安装Part 1什么是 Kubernetes概念引入想象你经营一个巨大的集装箱港口每天有上百艘货船要停靠你的应用程序每艘船需要泊位、电力、工人CPU、内存、存储有的船坏了要换一艘顶上自动修复旺季来了要多安排船淡季要减少自动扩缩你不可能每艘船都手动管Kubernetes简称 K8s就是那个港口调度系统。你告诉它我要 3 艘这样的船它会自动帮你安排泊位、调度工人、坏了就替换、多了就缩减。名字由来Kubernetes 来自希腊语意思是舵手或飞行员。Google 内部叫它 Borg2014 年开源后改名 Kubernetes。因为 K 和 s 之间有 8 个字母所以简称K8s。原理讲解K8s 解决什么问题在 K8s 之前你可能这样部署应用手动时代手动 SSH手动 SSH手动 SSH开发者服务器1服务器2服务器3问题每台服务器手动操作不可扩展、容易出错、无法自动修复。有了 K8s 之后声明式 YAML调度到调度到调度到开发者K8s 集群控制平面节点1节点2节点3你只需要声明我要什么K8s 自动帮你实现。核心概念速览概念比喻说明Cluster整个港口一组服务器组成的集群Node港口里的码头集群中的一台服务器Pod一艘货船K8s 的最小调度单元包含一个或多个容器Deployment航运公司的调度计划声明我要几艘这样的船Service港口接待处稳定的访问入口不管后面的船怎么换K8s 架构一览工作节点 (Worker Node)工作节点 (Worker Node)控制平面 (Control Plane)kube-apiserver所有操作的入口etcd集群状态存储kube-scheduler决定 Pod 放哪个节点kube-controller-manager维持期望状态kubelet管理 Podkube-proxy网络转发containerd运行容器PodPodkubeletkube-proxycontainerdPodPod现在不用记住每个组件。后面每篇文章会逐步介绍它们。这里只需要知道控制平面负责决策工作节点负责干活。声明式 vs 命令式K8s 最大的特点是声明式操作命令式传统声明式K8s方式“在服务器 A 上启动这个容器”“我要 3 个这样的 Pod”谁做决策你K8s自动修复❌ 需要手动✅ K8s 自动补上示例docker run nginxkubectl apply -f deploy.yaml声明式的好处你写一份 YAML 描述想要的状态K8s 会持续把现实状态调整到与你声明的一致——即使 Pod 崩溃了、节点宕机了K8s 都会自动修复。自检问题K8s 的 K 和 s 之间有几个字母为什么叫 K8s查看答案 8 个字母ubernete所以 K 8 s K8s。Pod 和容器是什么关系查看答案 Pod 是 K8s 的最小调度单元一个 Pod 可以包含一个或多个容器。Pod 里的容器共享网络和存储。声明式和命令式的核心区别是什么查看答案 命令式是你告诉系统怎么做具体步骤声明式是你告诉系统要什么期望状态由系统自己决定怎么做。K8s 是声明式的。Part 2安装 Kind概念引入现在你知道了 K8s 是什么但你不可能在港口调度系统上直接练习——你需要一个迷你港口。KindKubernetes in Docker就是这样一个迷你港口。它在你电脑的 Docker 里运行一个完整的 K8s 集群启动只要不到 1 分钟用完随时删掉。就像在你书桌上放了一个港口模型可以随便摆弄。你的电脑Kind 集群kubectlDocker 引擎Kind Node(Docker 容器)K8s 控制平面 工作节点你为什么选 Kind工具启动速度资源占用多节点适合场景Kind⚡ 1分钟小✅本地学习、CI 测试Minikube 2-5分钟大✅需要完整 VM 隔离Docker Desktop⚡ 即开小❌ 单节点只需要简单单节点原理讲解Kind 的工作原理Kind 的每个节点实际上是一个 Docker 容器。容器里运行着完整的 K8s 组件Kind Node (Docker 容器)kube-apiserveretcdkube-schedulercontroller-managerkubeletkube-proxycontainerd你的 Pod这意味着你可以在一台电脑上创建多节点集群——每个节点就是一个容器。前提条件Kind 依赖 Docker。你需要先安装Docker DesktopmacOS/Windows或Docker EngineLinuxkubectlK8s 命令行工具Kind本身Windows 用户本文所有实验命令均为 Linux/macOS shell 语法。建议通过WSL2学习在 PowerShell管理员中执行wsl --install重启后进入 Ubuntu 终端安装 Docker Desktop在 Settings → Resources → WSL Integration 中启用你的 Ubuntu 发行版后续所有命令直接在 WSL2 Ubuntu 终端中执行走下面的Linux路线即可动手实验步骤 1安装 DockermacOS从 docker.com 下载 Docker DesktopLinux (Ubuntu)# 安装 Dockersudoapt-getupdatesudoapt-getinstall-ydocker.iosudousermod-aGdocker$USER# 重新登录使 docker 组生效验证dockerversion预期输出Client: Version: 29.x.x Server: Version: 29.x.x步骤 2安装 kubectl# macOSbrewinstallkubectl# Linuxcurl-LOhttps://dl.k8s.io/release/$(curl-L-shttps://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl# 如果上面网络下载不了试下换谷歌源#curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -L -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectlchmodx kubectlsudomvkubectl /usr/local/bin/验证kubectl version--client预期输出Client Version: v1.31.0 Kustomize Version: v5.4.2步骤 3安装 Kind# macOSbrewinstallkind# Linux[$(uname-m)x86_64]curl-Lo./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-amd64[$(uname-m)aarch64]curl-Lo./kind https://kind.sigs.k8s.io/dl/v0.24.0/kind-linux-arm64chmodx ./kindsudomv./kind /usr/local/bin/kind验证kind version预期输出kind v0.24.0 go1.22.6 linux/amd64步骤 4创建你的第一个集群先创建配置文件后续 Ingress 和 NodePort 实验需要端口映射catkind-config.yamlEOF kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane image: kindest/node:v1.31.0 kubeadmConfigPatches: - | kind: InitConfiguration nodeRegistration: kubeletExtraArgs: node-labels: ingress-readytrue extraPortMappings: - containerPort: 80 hostPort: 80 protocol: TCP - containerPort: 443 hostPort: 443 protocol: TCP - containerPort: 30080 hostPort: 30080 protocol: TCP - role: worker image: kindest/node:v1.31.0 - role: worker image: kindest/node:v1.31.0 EOF然后创建集群kind create cluster--namek8s-guide--configkind-config.yaml预期输出Creating cluster k8s-guide ... ✓ Ensuring node image (kindest/node:v1.31.0) ✓ Preparing nodes ✓ Writing configuration ✓ Starting control-plane ️ ✓ Installing CNI ✓ Installing StorageClass ✓ Joining worker nodes Set kubectl context to kind-k8s-guide You can now use your cluster with: kubectl cluster-info --context kind-k8s-guide Not sure what to do next? Check out https://kind.sigs.k8s.io/docs/user/quick-start/步骤 5验证集群kubectl get nodes预期输出NAME STATUS ROLES AGE VERSION k8s-guide-control-plane Ready control-plane 2m29s v1.31.0 k8s-guide-worker Ready none 85s v1.31.0 k8s-guide-worker2 Ready none 85s v1.31.0kubectl cluster-info预期输出Kubernetes control plane is running at https://127.0.0.1:45819 CoreDNS is running at https://127.0.0.1:45819/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy恭喜你有了一个运行中的 K8s 集群步骤 6清理实验完成后删除集群kind delete cluster--namek8s-guide 如果你还想继续学习先不要删后面的文章会继续用这个集群。自检问题Kind 集群的节点实际上是什么查看答案 是一个 Docker 容器。Kind 在 Docker 容器里运行完整的 K8s 组件kubelet、kube-apiserver 等。为什么 Kind 比 Minikube 启动快查看答案 Kind 直接利用已有的 Docker 引擎创建容器不需要启动完整的虚拟机。Minikube 默认需要启动一个 VM所以更慢。kubectl 和 Kind 是什么关系查看答案 Kind 负责创建和管理集群kubectl 负责与集群交互部署应用、查看状态等。Kind 创建集群后会自动配置 kubectl 的 context。下一步集群准备好了让我们部署第一个应用→ 02. 工作负载Pod、ReplicaSet 与 Deployment本文来自 K8s Guide—— 开源免费的 Kubernetes 中文学习指南️ 初学者轨道 面试轨道从零基础到拿 Offer 一站式覆盖 每篇文章配套 Kind 实验脚本本地一键运行 本文源码docs/beginner/01-what-is-k8s.md / docs/beginner/02-install-kind.md⭐如果对你有帮助欢迎 Stargithub.com/callmebg/k8s-guide
延伸阅读

更多相关文章

2026/11/9 3:20:23

NATS Streaming遗留系统维护指南:安全与兼容性最佳实践

NATS Streaming遗留系统维护指南:安全与兼容性最佳实践 【免费下载链接】stan.go NATS Streaming System 项目地址: https://gitcode.com/gh_mirrors/st/stan.go NATS Streaming作为一款曾经广泛使用的消息系统,虽然已正式宣告End of Life&#x…

2026/11/8 13:21:29

3种方法用Dataflow kit实现无限滚动页面爬取,效率提升10倍

3种方法用Dataflow kit实现无限滚动页面爬取,效率提升10倍 【免费下载链接】dataflowkit Extract structured data from web sites. Web sites scraping. 项目地址: https://gitcode.com/gh_mirrors/da/dataflowkit Dataflow kit是一款强大的网页数据提取工…

2026/11/12 13:11:02

桐乡乌镇电工证怎么报?2026河南最新政策别再被中介骗

桐乡乌镇电工证怎么报?2026河南最新政策别再被中介骗 不知道去哪报名怕被中介坑,桐乡乌镇电工证办理流程其实没那么复杂,关键是要找对门道。2026年河南最新政策对报考条件、考试内容和发证流程都有明确规定,如果你在桐乡乌镇或者河南其他地区,现…

2026/11/12 13:11:02

伊犁考电工证怎么报名 你在外省考的证还能用吗 上岗必备全攻略

伊犁考电工证怎么报名 你在外省考的证还能用吗 上岗必备全攻略 之前考的证在外省能不能转过来?这是很多在伊犁打工的朋友最关心的问题,尤其是那些从其他地方过来的电工,手里拿着外省的特种作业操作证,想在当地找工作,但又担心证书不被认可。别急,今天…

2026/11/12 13:11:02

珠海中级电工证在哪办保姆级教程:工地太忙没时间复习?这招搞定!

珠海中级电工证在哪办保姆级教程:工地太忙没时间复习?这招搞定! 工地太忙根本没时间复习考试,手头还一堆证书要办,真叫人焦头烂额。特别是像珠海中级电工证这样的证书,不仅关系到能不能上岗,还直接影响到职业发展和收入。今天我就从一个在南阳转岗过来…

2026/11/12 13:11:02

珠海中级电工证在哪办真实经历:电工证不考就找不到工作

珠海中级电工证在哪办真实经历:电工证不考就找不到工作 急需特种作业证才能上岗找工作,这个现实摆在眼前。我在珠海做电工,之前没证只能干杂活,收入低还总被安排去跑腿。后来朋友提醒我,必须考中级电工证,才能真正当电工。我一开始以为流程很复杂,结果…

2026/11/12 13:11:02

河北承德电工证都考啥 郑州报考避坑指南

河北承德电工证都考啥 郑州报考避坑指南 之前考的证在外省能不能转过来?这个问题其实很多在外地工作、想回老家发展的人都问过。别急,今天咱们就聊聊【河北承德电工证都考啥】,顺便也带一带【郑州报考避坑指南】,帮你理清楚思路。…

2026/11/12 13:05:58

工地太忙根本没时间复习考试吉林电工证什么样电子证书怎么考

工地太忙根本没时间复习考试吉林电工证什么样电子证书怎么考 工地太忙根本没时间复习考试,这种感觉我懂。我以前在河南商丘的一个工地当项目现场管理员,每天从早上六点忙到晚上十点,吃饭都是在工地上解决,哪还有时间去准备考试?直到有一天,公司要求我们…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑