Akemi

使用Minikube快速部署k8s

2025/02/06

Minikube是一个开源的“本地Kubernetes引擎”,它可以在macOS、Linux和Windows平台上实现本地化的Kubernetes集群部署。

  1. 轻量级:Minikube使用虚拟化技术在本地创建一个单节点的Kubernetes集群,占用的资源相对较少,方便技术人员进行学习、实践和日常的项目开发。
  2. 多平台支持:Minikube可以在Windows、macOS和Linux等多个操作系统上运行,为不同平台的用户提供了本地化的Kubernetes开发环境。
  3. 简单易用:Minikube提供了一个简单的命令行界面,使得创建和管理本地Kubernetes集群变得非常容易。用户可以通过命令行工具来启动、停止、配置以及检查Minikube集群的状态。
  4. 支持大多数Kubernetes功能:Minikube支持大多数标准的Kubernetes功能,包括DNS、NodePorts、ConfigMaps和Secrets、Dashboard等,使得开发者可以在本地获得与远程集群几乎一致的体验。

缺点: 镜像拉取配置较为复杂

环境初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 关闭防火墙(测试环境建议关闭)
sudo systemctl stop firewalld
sudo systemctl disable firewalld

# 关闭SELinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

# 确保系统已更新
sudo yum update -y

# 安装Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 启动Docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 将当前用户加入docker组(避免每次使用sudo)
sudo usermod -aG docker $USER
newgrp docker # 立即生效或重新登录

安装minikube

1
2
3
4
5
6
7
8
9
# 下载Minikube二进制文件
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 安装到系统路径
sudo install minikube-linux-amd64 /usr/local/bin/minikube

# 验证安装
minikube version

安装kubectl

1
2
3
4
5
6
7
8
# 下载kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 安装到系统路径
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# 验证安装
kubectl version --client

启动集群

1
2
3
4
5
6
7
8
minikube start --driver=docker \
--image-mirror-country=cn \
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
--base-image=registry.cn-hangzhou.aliyuncs.com/google_containers/kicbase:v0.0.46 \
--force \
--kubernetes-version=v1.32.0

这里会先下载kicbase镜像,然后下载kubeadm kubectl kubelet的组件

minikube镜像加速配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
进入容器
minikube ssh
sudo -i
tee > /etc/docker/alternate-daemon.json << EOF
{
"exec-opts": ["native.cgroupdriver=cgroupfs"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": [
"https://a88uijg4.mirror.aliyuncs.com",
"https://docker.lmirror.top",
"https://docker.m.daocloud.io",
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn",
"https://docker.laoex.link",
"https://k8s.m.daocloud.io",
"https://gcr.m.daocloud.io"
]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d
tee > /etc/systemd/system/docker.service.d/docker.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --config-file=/etc/docker/alternate-daemon.json
TimeoutStartSec=5min
EOF

minikube stop
minikube start --force

再次查看docker配置,能看到已配置的
minikube ssh
docker info

Registry Mirrors:
https://a88uijg4.mirror.aliyuncs.com/
https://docker.lmirror.top/
https://docker.m.daocloud.io/
https://hub.uuuadc.top/
https://docker.anyhub.us.kg/
https://dockerhub.jobcher.com/
https://dockerhub.icu/
https://docker.ckyl.me/
https://docker.awsl9527.cn/
https://docker.laoex.link/
https://k8s.m.daocloud.io/
https://gcr.m.daocloud.io/
Live Restore Enabled: false

k8s集群测试

成功拉取镜像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
cat >test-nginx.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
EOF

kubectl apply -f test-nginx.yaml

kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-deployment-576b6dbdc9-zbqq4 1/1 Running 0 100m

其余minikube常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
启动与停止集群
minikube start
minikube stop

删除集群
minikube delete

暂停、恢复集群
minikube pause
minikube unpause

查看集群状态
minikube status

ssh进入节点
minikube ssh

加载本地镜像到集群中
minikube image load <image-name>
CATALOG
  1. 1. 环境初始化
  2. 2. 安装minikube
  3. 3. 安装kubectl
  4. 4. 启动集群
  5. 5. minikube镜像加速配置
  6. 6. k8s集群测试
  7. 7. 其余minikube常用命令