在 Ubuntu 22 上深入了解和搭建 Minikube
在 Ubuntu 22 上深入了解和搭建 Minikube
Minikube 是一个开源工具,使开发者能够在本地计算机上运行单节点的 Kubernetes 集群,非常适合于开发、测试和学习 Kubernetes 的基础知识。本文将详细介绍 Minikube 的工作原理,并提供在 Ubuntu 22 系统上搭建 Minikube 的详细步骤。
什么是 Minikube?
Minikube 是一个轻量级的 Kubernetes 实现,旨在帮助用户快速构建本地的 Kubernetes 环境。其核心特性包括:
- 单节点集群:Minikube 运行一个单节点的 Kubernetes 集群,适合开发和测试。
- 多种驱动:支持多种虚拟化驱动,包括 VirtualBox、VMware、Hyper-V 等,也支持通过 Docker 驱动在容器中运行。
- 易于使用:提供简单的命令行工具,便于集群的启动、停止和管理。
Minikube 的工作原理
Minikube 通过创建和管理虚拟机或容器来运行一个单节点的 Kubernetes 集群。它将 Kubernetes 的各个组件(如 API server、scheduler、controller-manager 等)运行在一个节点上。Minikube 还包括了一些有用的工具,如 kubectl 命令行工具,用于与 Kubernetes 集群进行交互。
在 Ubuntu 22 上安装 Minikube
安装依赖
首先,确保你的系统安装了必要的依赖项:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
安装 Docker
Minikube 可以使用 Docker 作为其虚拟化驱动程序。按照以下步骤安装 Docker:
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
验证 Docker 是否安装成功:
docker --version
使用国内镜像安装 kubectl
由于网络原因无法访问 Google 的 Kubernetes 存储库,我们可以使用 Azure China 的 Kubernetes 镜像源来下载和安装 kubectl:
- 获取稳定版本号:
VERSION=$(curl -s https://mirror.azure.cn/kubernetes/kubectl/stable.txt)
echo $VERSION
- 下载 kubectl:
curl -LO "https://mirror.azure.cn/kubernetes/kubectl/$VERSION/bin/linux/amd64/kubectl"
- 安装 kubectl:
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
- 验证安装:
kubectl version --client
安装 Minikube
从 Minikube 的官方网站下载并安装最新版本的 Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
验证 Minikube 是否安装成功:
minikube version
启动 Minikube
使用以下命令启动 Minikube:
minikube start --driver=docker
启用 Ingress 插件
为了使局域网内的其他机器能够访问 Minikube Dashboard,你需要启用 Ingress 插件:
minikube addons enable ingress
让局域网内其他机器访问 Minikube Dashboard
使用 kubectl port-forward
- 获取 Dashboard 服务名称:
kubectl get svc -n kubernetes-dashboard
- 进行端口转发:
kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:80 --address 0.0.0.0 &
- 在局域网内的其他机器上,通过以下 URL 访问 Dashboard:
http://<your-host-ip>:8080/
其中 <your-host-ip>
是运行 Minikube 的主机的 IP 地址。
如果需要后台运行,可以用 nohup 命令:
nohup kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:80 --address 0.0.0.0 > port-forward.log 2>&1 &
设置防火墙(可选)
如果你在机器上启用了防火墙,可能需要开放相应的端口:
sudo ufw allow 8001
参考链接
- Minikube 官方文档:https://minikube.sigs.k8s.io/docs/
- Azure China Kubernetes 镜像:https://mirror.azure.cn/kubernetes/
- Docker 官方文档:https://docs.docker.com/
- Kubernetes 官方文档:https://kubernetes.io/docs/
- Kubectl 官方文档:https://kubernetes.io/docs/reference/kubectl/