193 lines
6.3 KiB
Markdown
193 lines
6.3 KiB
Markdown
> 本文作者:丁辉
|
||
|
||
# 基于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` 网段。 |
|
||
|
||
|
||
|