Minikube 安装与使用详细指南(Centos7 踩坑版)

Minikube 安装与使用详细指南

Minikube 是一个用于在本地运行单节点 Kubernetes 集群的工具,适合开发、测试和学习 Kubernetes。

官方文档:https://minikube.sigs.k8s.io/docs/

以下是详细的安装和使用步骤:

一、安装 Minikube

1. 前置条件

  • 支持的操作系统:Linux、macOS、Windows
  • 必须安装容器或虚拟机管理器(任选其一):
    • Docker(推荐)
    • HyperKit(macOS)
    • VirtualBox
    • KVM2(Linux)
    • VMware
  • 至少 2GB 内存、2 核 CPU、20GB 磁盘空间
  • 🔔【重要】 如果Centos7操作系统,记得升级内核

2. 安装步骤

安装Docker (二进制)

参考:
CentOS 7上通过二进制包安装Docker

安装minikube (二进制下载)

# 安装 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

在这里插入图片描述

二、启动 Minikube 集群

# 启动集群(默认使用 Docker 驱动)
minikube start

# 若需指定驱动(如 VirtualBox)
minikube start --driver=virtualbox

# 验证集群状态
minikube status
# 输出示例:
# minikube: Running
# cluster: Running
# kubectl: Correctly Configured: pointing to minikube-vm at 192.168.49.2

这里我直接运行的minikube start 但是提示:

X 因 DRV_AS_ROOT 错误而退出:docker 驱动不应使用 root 权限。

在这里插入图片描述

所以我加了-- force 执行了 minikube start --force 还算顺利的启动了。

三、使用 kubectl 操作集群

Minikube 会自动配置 kubectl(Kubernetes 命令行工具),无需额外安装:

# 将以下内容添加到你的 shell 配置中
alias kubectl="minikube kubectl --"

# 查看节点
kubectl get nodes
# 输出示例:
# NAME       STATUS   ROLES           AGE   VERSION
# minikube   Ready    control-plane   5m    v1.28.3

# 查看集群信息
kubectl cluster-info

# 查看命名空间
kubectl get namespaces

# 查看默认命名空间的 Pod
kubectl get pods

问题:coredns pod 不断重启 (coredns CrashLoopBackOff)

$ kubectl -n kube-system logs -f coredns-7db6d8ff4d-mp9pd
Listen: listen tcp :53: bind: permission denied

在这里插入图片描述
这个问题有复现 可以参考下面的minikube/issues 查看:

https://github.com/kubernetes/minikube/issues/18950

这里报错的原因主要应该是内核版本低导致的,我通过将内核版本 从 3.10.0 升级到 5.4.278 ,然后重启服务器,解决了。 升级内核的步骤可以参考我这篇文章。

Centos7 停止维护一年后,还有多少人在使用,离线升级内核记录&&替代方案选型

四、部署应用示例

在这里插入图片描述

以部署一个 Nginx 为例:

# 创建 Deployment
kubectl create deployment hello-minikube--image=nginx:1.23

# 查看 Deployment
kubectl get deployments

# 暴露端口(创建 Service)
kubectl expose deployment hello-minikube  --type=NodePort --port=80

# 查看 Service
# 输出示例:
[root@work ~]# kubectl get svc hello-minikube
NAME             TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
hello-minikube   NodePort   10.99.147.10   <none>        80:31852/TCP   62m


# 访问应用(Minikube 提供快捷命令)
[root@work bin]# minikube service hello-minikube
┌───── ┬────────┬────── ┬───────────── ┐
│ NAMESPACE │      NAME      │ TARGET PORT │            URL            │
├───── ┼────────┼────── ┼───────────── ┤
│ default   │ hello-minikube │ 80          │ http://192.168.49.2:31852 │
└───── ┴────────┴────── ┴───────────── ┘
* 正通过默认浏览器打开服务 default/hello-minikube...
  http://192.168.49.2:31852

# 会自动打开浏览器访问应用
# 因为我是在Linux Centos7 上,没有浏览器,通过curl命令执行:

在这里插入图片描述

通过kubectl port-forward 外部访问

使用 kubectl port-forward 连接到在 Kubernetes 集群中运行的 pod 服务。 这种类型的连接对很有用

kubectl port-forward --address 0.0.0.0  pod/hello-minikube-54db9457b4-fqjz7 18081:80

在这里插入图片描述
Window主机,访问Centos7主机服务地址: http://192.168.37.200:18081/
在这里插入图片描述

五、Minikube 常用命令

# 停止集群
minikube stop

# 删除集群(重置环境)
minikube delete

# 查看集群 IP
minikube ip

# 进入 Minikube 节点内部
minikube ssh

# 启用附加组件(如 Dashboard、Ingress 等)
minikube addons enable dashboard  # 启用 Dashboard
minikube addons enable ingress    # 启用 Ingress 控制器

# 打开 Dashboard(图形化界面)
minikube dashboard
# 会自动打开浏览器访问 Dashboard

# 查看已启用的附加组件
minikube addons list

六、卸载 Minikube

# Linux/macOS
minikube delete
sudo rm -rf /usr/local/bin/minikube

# Windows(Chocolatey)
minikube delete
choco uninstall minikube
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值