first commit
All checks were successful
continuous-integration/drone Build is passing

This commit is contained in:
2025-12-13 18:06:23 +08:00
commit 8a87b699ba
333 changed files with 27094 additions and 0 deletions

View File

@@ -0,0 +1,192 @@
> 本文作者:丁辉
# 基于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` 网段。 |