Featured image of post Ubuntu-service-2024使用minicube搭建kubernetes

Ubuntu-service-2024使用minicube搭建kubernetes

Ubuntu-service-2024使用minicube搭建kubernetes

Ubuntu-service-2024使用minicube搭建kubernetes

minikube下载安装

官方文档

常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 检查 minikube 状态
minikube status
# 查看集群信息
minikube kubectl --  cluster-info
# 查看节点信息
minikube kubectl --  get nodes
# 进入 minikube 环境
minikube ssh
# 检查集群状态
minikube status
# 查看所有 Pod
minikube kubectl --  get pods
# 查看 Pod 日志
minikube kubectl --  logs <pod-name>

一般查看官方文档就行,下面是我遇到的问题和解决方案

环境: 2核4G的Ubuntu虚拟机, 驱动是docker 下面是启动脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
#
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port
# 使用阿里云镜像启动 minikube, 不过好像没什么用, 不加代理还是不行
minikube start --driver=docker \
  --image-mirror-country='cn' \
  --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers' \
  --memory=2048mb \
  --cpus=2 \
  --force

无法访问docker的权限问题导致启动失败

解决方案:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1.将当前用户添加到 docker 
sudo usermod -aG docker $USER
# 退出当前会话并重新登录,或者使用以下命令立即生效
newgrp docker

# 2.使用root用户启动

# 3.不使用docker驱动, 可以直接在主机运行或者使用 kvm的等
# 加上参数 
--driver=none 	#直接在物理机运行kubernetes ctl
--driver=kvm	#使用kvm替代docker

docker驱动时,第一次启动需要拉取镜像的网络问题

解决方案:

1
2
3
# 加代理
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port

未安装虚拟机驱动导致minikube start 报错 Exiting due to DRV_NOT_DETECTED

1
2
# 安装 KVM  Ubuntu
sudo apt install qemu-kvm

资源不足导致启动失败

1
2
3
4
# 调整资源分配, 看自己情况给多或者给少一些
minikube config set memory 4096  # 分配 4GB 内存
minikube config set cpus 2       # 分配 2  CPU
minikube delete && minikube start

未清理旧集群, 多次启动失败后残留配置冲突

1
2
# 彻底删除旧集群
minikube delete --all --purge

运行第一个 Kubernetes 应用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 部署 Nginx 服务, 需要docker里有nginx镜像
minikube kubectl -- create deployment fuzzing --image=fuzzing

# --port=8000 指要监听容器的80端口, 也就是镜像提供服务的端口
minikube kubectl -- create deployment fuzzing --image=utibetctf/fuzzing --port=80

# --port=8000 service的端口
# --target-port 80 转发到 Pod 的哪个端口
minikube kubectl --  expose deployment fuzzing --type=NodePort --port=8000 --target-port 80

# 访问服务
minikube service nginx
# 查看 Service 详情
minikube kubectl --  get service fuzzing -o wide

# 删除
# 首先查看所有资源
minikube kubectl --  get all --show-labels
# 根据显示的资源名称精确删除
minikube kubectl --  delete deployment/<name> service/<name>
使用 Hugo 构建
主题 StackJimmy 设计