当前位置: 首页 > news >正文

云原生入门系列|第2集:搭建你的第一个K8s实验环境 —— minikube 零基础教程

云原生入门系列|第2集:搭建你的第一个K8s实验环境 —— minikube 零基础教程

1. 为什么需要本地环境?

学游泳不能只在岸上看视频,学K8s也不能只看概念。你需要一个可随意折腾的集群,而且是免费的、跑在你自己的电脑上。

生产环境的集群至少需要几台服务器,但本地开发可以用minikube—— 一个单节点的K8s集群,占用资源小(通常分配2核4GB内存即可),支持 Linux/macOS/Windows。

除了 minikube,还有kind(K8s in Docker)、k3s等选择。但对于初学者,minikube 最成熟,文档最全。

2. 安装前的准备

minikube 需要一个虚拟化或容器驱动。推荐使用 Docker(如果你已经安装了 Docker Desktop):

  • Windows:安装 Docker Desktop for Windows,并启用 WSL2 后端。
  • macOS:安装 Docker Desktop for Mac。
  • Linux:安装 Docker Engine。

然后去 minikube 官网 下载适合你系统的二进制文件。

Windows 快速安装(使用 winget):

winget install minikube macOS 使用 brew: brew install minikube Linux: curl-LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64/usr/local/bin/minikube}
  1. 启动你的第一个集群
    一切顺利的话,一条命令启动:
    minikube start
    如果没有报错,你会看到类似输出:

😄 minikube v1.33.0 on Ubuntu 22.04
✨ Using the docker driver based on user configuration
👍 Starting control plane node minikube in cluster minikube
🔥 Creating docker container (CPUs=2, Memory=2200MB) …
🐳 Preparing Kubernetes v1.28.3 on Docker 24.0.7 …
🔗 Configuring bridge CNI (Container Networking Interface) …
🔎 Verifying Kubernetes components…
🌟 Enabled addons: default-storageclass, storage-provisioner
🏄 Done! kubectl is now configured to use “minikube” cluster and default namespace
这时候你的 K8s 集群已经运行起来了。执行 kubectl get nodes,应该看到一个叫 minikube 的节点状态为 Ready。

  1. 关于 kubectl —— 与 K8s 对话的瑞士军刀
    kubectl 是 K8s 的命令行工具。minikube 启动时会自动配置 kubectl 指向自己。如果你还没有 kubectl,minikube 会帮你装好一个(minikube kubectl --),但为了方便,建议单独安装。

验证 kubectl 是否可用:

bash
kubectl version --client --short
常用别名:很多人喜欢设置 alias k=kubectl,后续文章我们也将使用 k 来简化。

  1. 你的第一个 Pod
    现在集群准备好了,我们来运行一个真正的容器化应用。创建 nginx Pod:

bash
kubectl run my-nginx --image=nginx --port=80
这条命令会创建一个名为 my-nginx 的 Pod,容器镜像为 nginx。查看 Pod 状态:

bash
kubectl get pods
一开始是 ContainerCreating,几十秒后变成 Running。

此时 Pod 在集群内部有一个 IP(可通过 kubectl get pod my-nginx -o wide 查看)。但这个 IP 只有集群内部能访问。我们怎样才能在浏览器里看到 nginx 欢迎页呢?需要用到 端口转发:

bash
kubectl port-forward pod/my-nginx 8080:80
然后打开浏览器访问 http://localhost:8080,你会看到 nginx 主页。按 Ctrl+C 停止转发。

  1. 几个必会的 minikube 命令
    命令 作用
    minikube status 查看集群状态(是否 running)
    minikube pause / unpause 暂停/恢复集群(不销毁资源)
    minikube stop 停止集群(虚拟机或容器停止)
    minikube start 重新启动已存在的集群
    minikube delete 删除整个集群(所有资源被清空)
    minikube dashboard 打开 Web UI 管理界面(非常直观,推荐探索)
    执行 minikube dashboard 后,会自动打开浏览器,里面有工作负载、网络、存储等图形化面板。

  2. 遇到问题怎么办?
    问题1:minikube start 卡在 “Starting the cluster”
    检查你的 Docker 是否正在运行。

尝试 minikube delete 后重新 start。

指定驱动:minikube start --driver=docker 或 --driver=hyperkit(macOS)。

问题2:kubectl get nodes 显示 “The connection to the server … was refused”
确认 minikube 状态:minikube status。

如果没有 running,执行 minikube start。

问题3:端口转发时提示 “Unable to listen on port 8080”
8080 可能被其他程序占用,更换一个端口,如 kubectl port-forward pod/my-nginx 8888:80,访问 localhost:8888。

  1. 扩展:用 kind 做备选环境
    如果你觉得 minikube 太重(需要虚拟化),可以尝试 kind(Kubernetes in Docker)。它完全运行在 Docker 容器中,启动速度更快。

安装 kind:

bash
brew install kind # macOS
或者从 GitHub releases 下载。

创建集群:

bash
kind create cluster --name my-k8s
之后 kubectl cluster-info --context kind-my-k8s 确认。删除集群:kind delete cluster --name my-k8s。

  1. 本集实战任务
    为了巩固今天的知识,请完成以下小任务:

启动 minikube 集群。

创建一个 Pod 运行 httpd(apache)镜像。

用 kubectl port-forward 让本机能访问到 httpd 默认页面。

打开 minikube dashboard,在界面里找到你刚刚创建的 Pod,查看它的日志。

完成这些,你就拥有了一个随时可用的 K8s 实验环境。

http://www.jsqmd.com/news/692294/

相关文章:

  • 保姆级避坑指南:在Windows 11上用VS2022编译Chromium源码(含代理设置与常见错误修复)
  • 深度学习新手必看:如何用训练环境镜像快速复现开源AI项目?
  • Umi-OCR实现精准韩文识别的解决方案:挑战分析与实践指南
  • TrollInstallerX终极指南:iOS 14.0-16.6.1设备一键安装TrollStore
  • 2026年北方耐寒树牡丹与园林绿化解决方案深度横评 - 年度推荐企业名录
  • 随机过程随笔 | 不可约Markov链的性质
  • 终极DLSS版本管理指南:如何用DLSS Swapper一键优化游戏性能
  • sguard_limit:腾讯游戏性能优化的终极解决方案
  • Ray 集群管理与运维
  • 2026年国产COD分析仪十大品牌排名:自主创新引领水质监测 - 陈工日常
  • 苏州本土家装公司排行:大显空间设计领衔避坑之选 - 资讯焦点
  • 2026年设备校准哪家专业?从CNAS认可编号到人员配置的考察方法 - 品牌推荐大师
  • 安全测试与爬虫必备:详解Proxychains在Kali和Windows下的配置差异与协议选择
  • KMS_VL_ALL_AIO:三步完成Windows和Office永久激活的终极方案
  • 机器学习不平衡分类:阈值移动原理与实践
  • 告别功耗焦虑:5G NR中的DRX(不连续接收)与带宽自适应,如何让你的终端更省电?
  • 2026年好用的铝单板品牌排名,外墙铝单板多少钱 - myqiye
  • 关于浙大家教中心官方联系渠道的郑重公告与防骗警示 - 教育资讯板
  • 2026年工程项目管理软件排名TOP5:告别进度盲飞!这款靠“业财一体”杀疯了的系统你还没用? - 资讯焦点
  • 第8集:告警与日志联动!用 Embedding 自动关联报错日志并推断根因
  • 告别Dev C++编译报错:手把手教你升级MinGW 8.1.0并搞定MSMPI和OpenMP环境
  • 深圳粤岗餐饮管理有限公司的费用 - 工业设备
  • 2026年4月广州花都区黄金回收最新TOP5排名|正规备案门店优选 - 资讯焦点
  • 别再只加Path了!解决Docker‘命令未找到’的完整排查清单:从安装到终端重启的每个坑
  • 3个颠覆性技巧让AI到PSD转换效率提升300%
  • foxBMS-2资料下载及使用
  • 粤岗餐饮管理有限公司口碑如何 - mypinpai
  • 对OJ系统手动进行功能测试
  • nli-MiniLM2-L6-H768效果展示:Streamlit界面下动态进度条+百分比双模态结果呈现
  • SpringBoot项目里,别动不动就上Redis!试试这个轻量级本地缓存Ehcache,5分钟搞定配置