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/7/27 19:28:10 阅读更多 →
LiteLLM供应链攻击事件解析:Python依赖安全与AI开发防护指南

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

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

2026/7/27 19:27:10 阅读更多 →
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/7/27 19:27:10 阅读更多 →

最新新闻

计算机毕业设计之基于springboot的家政服务系统的设计与实现

计算机毕业设计之基于springboot的家政服务系统的设计与实现

当下社会,信息技术充斥社会各个领域,已融入人们生活的点滴,日常中人们管理信息、办理业务、购买商品等都可以网络线上进行,快速而又便利,特别是随着移动互联网时代的到来,更是让人们随时享受着网络给带来的…

2026/7/27 19:35:12 阅读更多 →
图算法的概念

图算法的概念

文章目录图算法概述拓扑排序拓扑排序的概念拓扑排序的实现方式拓扑排序的拓展场景最短路Bellman-Ford 算法Dijkstra 算法Floyd-Warshall 算法最小生成树Kruskal 算法Prim 算法目录图算法概述 图算法是通过在图中按特定方式遍历得到答案的算法。 已经介绍过的广度优先搜索和深…

2026/7/27 19:35:12 阅读更多 →
Gorpc连接池原理:单个TCP连接如何承载40K QPS的底层技术

Gorpc连接池原理:单个TCP连接如何承载40K QPS的底层技术

Gorpc连接池原理:单个TCP连接如何承载40K QPS的底层技术 【免费下载链接】gorpc Simple, fast and scalable golang rpc library for high load 项目地址: https://gitcode.com/gh_mirrors/go/gorpc Gorpc作为一款轻量级高性能的Golang RPC库,通过…

2026/7/27 19:35:12 阅读更多 →
软件模拟9位UART实现Stellaris多机通信:原理、实现与优化

软件模拟9位UART实现Stellaris多机通信:原理、实现与优化

1. 项目概述与背景在嵌入式系统开发中,串行通信是连接微控制器与外部世界最基础、最常用的桥梁之一。UART(通用异步收发器)因其协议简单、硬件资源要求低、实现成本低廉,几乎成为了所有微控制器的标配外设。无论是调试信息打印、与…

2026/7/27 19:35:12 阅读更多 →
基于华为云 FlexusX 四节点集群的云计算全栈实操(二):云虚拟机性能基准(sysbench CPU/内存深度体检)

基于华为云 FlexusX 四节点集群的云计算全栈实操(二):云虚拟机性能基准(sysbench CPU/内存深度体检)

基于华为云 FlexusX 四节点集群的云计算全栈实操(二):云虚拟机性能基准(sysbench CPU/内存深度体检) 上篇我们把四节点实验室的地基打好了(自动化运维基建)。本篇进入 IaaS 层的真正硬核——给云…

2026/7/27 19:35:12 阅读更多 →
自指螺旋紧致度与基本物理常数的几何化推导(初稿)

自指螺旋紧致度与基本物理常数的几何化推导(初稿)

自指螺旋紧致度与基本物理常数的几何化推导(初稿) 作者:方见华 单位:世毫九实验室 组别:认知几何课题组 摘要 精细结构常数 \alpha \approx 1/137.036 长期以来被视为量子电动力学中的一个经验参数。本文提出一种基于三…

2026/7/27 19:34:11 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻