Files
Kubernetes/部署文档/Minikube/基于Minikube安装Kubernetes.md
offends 8a87b699ba
All checks were successful
continuous-integration/drone Build is passing
first commit
2025-12-13 18:06:23 +08:00

193 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 本文作者:丁辉
# 基于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 虚拟机(节点)分配 **4GB4096MB** 的内存。对于运行中等复杂度的应用(如带数据库的微服务)是推荐值。 |
| `--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` 网段。 |