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

相关新闻

2024年必玩的15款GameZone游戏:适合不同年龄段的Web游戏精选

2024年必玩的15款GameZone游戏:适合不同年龄段的Web游戏精选

2024年必玩的15款GameZone游戏:适合不同年龄段的Web游戏精选 【免费下载链接】GameZone This open source repository contains collection of games build on basic tech stacks in web development . Use your creativity and build your own game and contribute…

2026/10/18 2:15:02 阅读更多 →
LiteLLM供应链攻击事件解析:Python依赖安全与AI开发防护指南

LiteLLM供应链攻击事件解析:Python依赖安全与AI开发防护指南

1. 事件概述与核心影响如果你最近在搞AI应用开发,特别是用到了像LangChain、LlamaIndex这类框架来集成大语言模型,那你很可能接触过一个叫LiteLLM的Python库。它是个挺方便的工具,号称是“大语言模型的瑞士军刀”,能让你用一套统一…

2026/10/16 10:22:31 阅读更多 →
GPT-SoVITS:用一分钟语音创造专属AI声优的完整指南

GPT-SoVITS:用一分钟语音创造专属AI声优的完整指南

GPT-SoVITS:用一分钟语音创造专属AI声优的完整指南 【免费下载链接】GPT-SoVITS 1 min voice data can also be used to train a good TTS model! (few shot voice cloning) 项目地址: https://gitcode.com/GitHub_Trending/gp/GPT-SoVITS 你是否曾想过&…

2026/10/14 23:56:11 阅读更多 →

最新新闻

2009数模A题血管应力仿真MATLAB工程复现指南

2009数模A题血管应力仿真MATLAB工程复现指南

简介:本资源为2009年全国大学生数学建模竞赛A题参赛论文及配套源码,面向数学建模初学者、备赛学生与高校指导教师,聚焦实际工程问题的建模求解全流程实践。压缩包共9个文件,含5个txt文本(记录数据处理、评价结果、模型…

2026/10/18 2:15:57 阅读更多 →
SteamOS 与 AMD 显卡性能调优:从 amdgpu 到 DXVK 的完整指南

SteamOS 与 AMD 显卡性能调优:从 amdgpu 到 DXVK 的完整指南

最近不少玩家反馈,SteamOS 在 AMD Radeon 显卡上的表现和 Windows 下完全不同。尤其是一些中低端显卡,明明在 Windows 下跑得有些吃力,到了 SteamOS 游戏模式里反而显得更跟手了。文章标题里的 RX 9060 XT 虽然带有“低配”标签,但…

2026/10/18 2:15:57 阅读更多 →
百亿级流量架构实战:CDN+Nginx+Java微服务分层设计

百亿级流量架构实战:CDN+Nginx+Java微服务分层设计

先说结论:如果你正在为一个日请求量接近百亿的系统做架构改造,那么“CDN Nginx 接入层 Java 微服务”这套组合,是目前最稳、最经得起实战考验的落地路径之一。这个方案的核心思路并不复杂——把流量分层消化掉,让每一层只处理自…

2026/10/18 2:15:57 阅读更多 →
PFC 5.0离散元模拟实战:颗粒流代码与岩土三轴仿真教程

PFC 5.0离散元模拟实战:颗粒流代码与岩土三轴仿真教程

简介:这份PFC5.0软件教程压缩包面向地质力学与岩土工程领域的工程师和科研人员,系统讲解PFC离散元分析软件的核心功能。教程重点覆盖力链玫瑰图绘制、二维渗流模拟等典型应用,同时深入解析DPL编程语言,帮助用户掌握自定义加载步、…

2026/10/18 2:15:57 阅读更多 →
图书管理系统课程设计:软件工程文档与VB6+SQL Server实现解析

图书管理系统课程设计:软件工程文档与VB6+SQL Server实现解析

简介:这份资源是面向软件工程课程设计学习者与高校学生的图书管理系统完整开发文档,围绕需求分析、系统设计、数据库设计与系统实现等核心环节展开,适合正在完成课程设计、撰写实验报告或学习结构化开发流程的读者参考。压缩包内共1个doc文档…

2026/10/18 2:15:57 阅读更多 →
从字节序到内存对齐:数据在内存中的真实布局深度拆解

从字节序到内存对齐:数据在内存中的真实布局深度拆解

每个写过几年代码的人,一定都遇到过一个诡异的问题:某个变量在断点里看着是对的,可一传入函数就变了;浮点数比较怎么都对不上;结构体明明只声明了几个字段,内存占用却比想象中多一截。这些问题绝大多数都能…

2026/10/18 2:14:57 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/16 14:23:36 阅读更多 →