Minikube极速搭建单机k8s集群全过程
作者:寂寞旅行
本篇教程分享了如何在Ubuntu上安装和配置Minikube,一个用于运行单机Kubernetes集群的工具,文章详细介绍了安装Docker、Kubectl和Minikube的步骤,并指导如何启动集群、验证安装以及部署一个简单的Nginx服务
第一步:安装前置依赖
Minikube 需要一个容器或虚拟机管理器来运行集群。最推荐的是 Docker,因为它最简单高效。
- 更新软件包列表
sudo apt-get update
- 安装必要的包
sudo apt-get install -y ca-certificates curl gnupg lsb-release
- 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 设置 Docker 仓库
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 安装 Docker Engine
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 将当前用户添加到
docker组 (这样不用每次都sudo运行 docker)
sudo usermod -aG docker $USER
重要:执行完这一步后,一定要重新登录或者重启终端,用户组权限才会生效。
第二步:安装 kubectl
kubectl 是用来和 Kubernetes 集群交互的命令行工具。
- 下载最新稳定版的 kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
- 安装 kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- 验证安装
kubectl version --client
看到版本信息就说明装好了。
第三步:安装 Minikube
- 下载 Minikube 二进制文件
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
# 或者
wget https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl
- 安装并使其可执行
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
第四步:启动 Minikube 集群d
万事俱备,现在可以启动你的单机 K8s 集群了!
- 启动命令
sudo docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.48 sudo docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.48 gcr.io/k8s-minikube/kicbase:v0.0.48 sudo minikube start --image-mirror-country='cn' --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' --force
- `--driver=docker` 是告诉 Minikube 使用我们之前安装的 Docker 作为环境。这是在 Ubuntu 上的推荐方式。 - 首次启动会下载一些镜像,可能需要几分钟,耐心等待一下。
- 检查集群状态
minikube status
如果看到 minikube, node, kubelet 都是 Running 状态,就说明集群启动成功了!
- 验证 kubectl 连接
kubectl get nodes
你应该能看到一个名为 minikube 的节点处于 Ready 状态。
第五步:体验一下 (可选)
部署一个简单的 Nginx 服务来感受一下 K8s。
- 创建一个 Deployment
kubectl create deployment hello-minikube --image=nginx:latest
- 暴露服务,让外部可以访问
kubectl expose deployment hello-minikube --type=NodePort --port=80
- 获取访问 URL
Minikube 提供了一个很方便的命令来直接打开服务:
minikube service hello-minikube
执行后,它会自动在浏览器中打开 Nginx 的欢迎页面,或者给你一个 URL。
常用管理命令
- 停止集群(不删除数据,下次可以快速启动)
minikube stop
- 删除集群(会删除所有数据,从头再来)
minikube delete
- 打开 K8s Dashboard(一个可视化的 Web 界面)
minikube addons enable dashboard minikube dashboard # 镜像无法拉取 # 在你的主机上执行 docker pull kubernetesui/dashboard:v2.7.0 docker pull kubernetesui/metrics-scraper:v1.0.8 # 在你的主机上执行 minikube image load kubernetesui/dashboard:v2.7.0 minikube image load kubernetesui/metrics-scraper:v1.0.8 # 查看 kubernetes-dashboard 状态 kubectl get pods -n kubernetes-dashboard # 启动代理 kubectl proxy --address='0.0.0.0' --port=8001 --accept-hosts='^.*$' # token eyJhbGciOiJSUzI1NiIsImtpZCI6ImthM1diQVBUd0x4NXJuRDhPOXJ3a3A5S2xqQ2dyMmtUcHlYLUh4S3ZIVUEifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzY0OTQ5OTY4LCJpYXQiOjE3NjQ5NDYzNjgsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiYzliYTYwMWQtMjU1MS00ZjhiLWE1ODctMzI5ZGY4MGYxMzUwIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJkYXNoYm9hcmQtYWRtaW4iLCJ1aWQiOiJiYWQ0NjA5Yi1jNDNhLTQ2ZDEtYTU0OS02YjhmMjZmZWQ1ODgifX0sIm5iZiI6MTc2NDk0NjM2OCwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVybmV0ZXMtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.YXzBNh_VTjXNQUxAutYc16XwwxznnVp1VMG8SNy6edD3uP24M9s4bddtiQRzXqfeilUKHKdiYPGIwV-FFnKm6fnfDL4uPblVq6EUcBCbX2_FFbPcnm-FMKYfPx6G9k994IpkY8O0d1nhKqkY5eQLbqOJ9pSxQA3vUFqzPTEV3uaMLQvtsLCCTy_AmerFzxzE96v7XnlyS8e-zm3qWCMNWFl0iZCR5y1Ec87q-WNOctCxBCyrI3VLSmJe7AIA_bZQjHf_lvycNJ3LK2sL7nec-UXCLVULZKW6Syv499GkOzrEBqnldzSAZBen9qKdCmd6g92o_9A1n2K92CDiFsjv2Q # 地址 http://192.168.11.217:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login # 跳过登陆 kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard - --enable-skip-login=true # 保存重启 kubectl get pods -n kubernetes-dashboard -w
...
spec:
containers:
- args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --enable-skip-login=true # <-- 使用这个参数
image: ...
name: kubernetes-dashboard
...
这样,一个功能完整的单机 Kubernetes 环境就在你的 Ubuntu 上跑起来了!接下来你就可以在上面尽情测试和部署你的应用了。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
