> 本文作者:丁辉 # 基于Minikube安装Kubernetes [Github](https://github.com/kubernetes/minikube) ## 基础环境准备 - [通过脚本安装Docker](https://gitee.com/offends/Kubernetes/blob/main/Docker/Docs/%E5%AE%89%E8%A3%85%E6%96%87%E6%A1%A3/%E9%80%9A%E8%BF%87%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85Docker.md) - 国内安装需要下载基础镜像 Kicbase [Github](https://github.com/kubernetes/minikube/releases) 解压镜像到本地 Docker ```bash docker load -i kicbase-v0.0.48-amd64.tar ``` - 国内安装需要下载缓存文件,否则会安装失败(拿 v1.34.0 版本举例) 1. 下载文件 ```bash # 下载 kubelet https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubelet # 下载 kubeadm https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubeadm # 下载 kubectl https://dl.k8s.io/release/v1.34.0/bin/linux/amd64/kubectl ``` 2. 创建缓存目录 ```bash mkdir -p ~/.minikube/cache/linux/amd64/v1.34.0/ ``` 3. 拷贝到缓存目录 ```bash cp kubelet kubeadm kubectl ~/.minikube/cache/linux/amd64/v1.34.0/ ``` 4. 赋予 Kubectl 权限 ```bash chmod 0755 ~/.minikube/cache/linux/amd64/v1.34.0/kubectl ``` ## 开始安装 [Minikube 安装文档](https://minikube.sigs.k8s.io/docs/start/?arch=%2Flinux%2Fx86-64%2Fstable%2Fbinary+download) [通过 Docker 启动 Minikube](https://minikube.sigs.k8s.io/docs/drivers/docker/#Standard%20Docker) ### 开始部署 1. 下载 Minikube 二进制文件 ```bash curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64 ``` ```bash install -o root -g root -m 0755 minikube-linux-amd64 /usr/local/bin/minikube ``` 2. 检查版本 ```bash minikube version ``` 3. 指定 Docker 启动 ```bash minikube start --driver=docker --force \ --base-image=kicbase/stable:v0.0.48 \ --registry-mirror=https://docker.m.daocloud.io ``` 4. 验证 ```bash minikube kubectl -- get pods -A ``` 5. 配置简化命令 ```bash alias kubectl="minikube kubectl --" ``` ### 其他命令 - 启动 Dashboard ```bash minikube dashboard ``` - 启动 Metrics-Server ```bash minikube addons enable metrics-server ``` - 进入 Minikube 环境 ```bash minikube ssh ``` - 查看端口 ```bash minikube service list ``` - 开启对外访问端口 ```bash minikube service $ServiceName ``` 或 ```bash kubectl port-forward service/$ServiceName 80:80 ``` - 暂停 Kubernetes (不影响已部署的服务) ```bash minikube pause ``` - 取消暂停 ```bash minikube unpause ``` - 更改内存限制(需要重新启动) ```bash minikube config set memory 4096 ``` ## 卸载集群 - 停止集群 ```bash minikube stop ``` - 删除集群 ```bash minikube delete ``` - 全部删除 > 全部删除可以先备份缓存目录以便下次快速启动 > > ```bash > cp -r ~/.minikube/cache /root/minikube-cache > ``` ```bash minikube delete --all --purge ``` ## 常见启动参数解释 | 参数 | 值 | 说明与作用 | | :----------------------: | :-----------------------------------------: | :----------------------------------------------------------: | | `--driver` | `docker` | **指定驱动**。使用 Docker 作为 Minikube 虚拟化的底层驱动。这是最常见的本地开发方式,利用主机上的 Docker 引擎来运行 Minikube 的“VM”(实际上是一个容器)。 | | `--force` | (无值) | **强制启动**。当检测到已有 Minikube 集群运行或配置冲突时,强制停止并删除旧集群,然后创建新的集群。**使用需谨慎,会导致已有集群数据丢失**。 | | `--memory` | `4096` | **分配内存**。为 Minikube 虚拟机(节点)分配 **4GB(4096MB)** 的内存。对于运行中等复杂度的应用(如带数据库的微服务)是推荐值。 | | `--cpus` | `2` | **分配 CPU 核心数**。为 Minikube 虚拟机分配 **2 个 CPU 核心**。这是保证 Kubernetes 组件流畅运行的基本要求。 | | `--base-image` | `kicbase/stable:v0.0.48` | **指定基础镜像**。Minikube 使用 **Kubernetes in Container (KIC)** 方式运行时所用的特定操作系统镜像。指定此版本可确保环境一致性和稳定性。 | | `--image-mirror-country` | `cn` | **镜像镜像国家/地区代码**。指示 Minikube 从指定国家(此处为中国 `cn`)的镜像站点下载 Kubernetes 核心组件镜像(如 `kube-apiserver`, `etcd` 等)。**这是加速下载的关键参数**。 | | `--image-repository` | `registry.cn-hangzhou...` | **自定义镜像仓库**。将默认的 Kubernetes 镜像仓库 (`k8s.gcr.io`) **替换为阿里云镜像仓库**。这是解决无法直接拉取国际镜像的最有效方法,**极大加速集群初始化**。 | | `--registry-mirror` | `https://registry.docker-cn.com` | **Docker 注册表镜像**。为 Minikube 内部的 Docker 引擎配置一个镜像加速器,用于加速拉取**工作负载所需的普通 Docker 镜像**(如 `nginx`, `redis` 等)。此地址是 Docker 官方中国镜像。 | | `--subnet` | `192.168.200.0/16` | **指定节点子网**。为 Minikube 集群节点(容器)分配一个指定的 Docker 网络子网 (`192.168.200.0/16`)。用于避免与主机上其他 Docker 网络的 IP 段冲突。 | | `--extra-config` | `kubeadm.pod-network-cidr=192.168.200.0/16` | **额外 Kubeadm 配置**。通过 `kubeadm` 工具告诉 Kubernetes 控制平面:**Pod 网络的 IP 地址范围**。这个 CIDR **必须与后面要安装的网络插件(如 Calico、Flannel)的默认配置匹配**,否则 Pod 无法通信。这里设置为了一个较大的 `/16` 网段。 |