在 Ubuntu 22 上深入了解和搭建 Minikube

在 Ubuntu 22 上深入了解和搭建 Minikube

Minikube 是一个开源工具,使开发者能够在本地计算机上运行单节点的 Kubernetes 集群,非常适合于开发、测试和学习 Kubernetes 的基础知识。在这篇文章中,我们将深入了解 Minikube 的工作原理,并提供在 Ubuntu 22 系统上搭建 Minikube 的详细步骤。

什么是 Minikube?

Minikube 是一个轻量级的 Kubernetes 实现,旨在帮助用户快速构建本地的 Kubernetes 环境。其核心特性包括:

  • 单节点集群:Minikube 运行一个单节点的 Kubernetes 集群,适合开发和测试。
  • 多种驱动:支持多种虚拟化驱动,包括 VirtualBox、VMware、Hyper-V 等,也支持通过 Docker 驱动在容器中运行。
  • 易于使用:提供简单的命令行工具,便于集群的启动、停止和管理。

Minikube 的工作原理

Minikube 通过创建和管理虚拟机或容器来运行一个单节点的 Kubernetes 集群。它将 Kubernetes 的各个组件(如 API server、scheduler、controller-manager 等)运行在一个节点上。Minikube 还包括了一些有用的工具,如 kubectl 命令行工具,用于与 Kubernetes 集群进行交互。

在 Ubuntu 22 上安装 Minikube

安装依赖

首先,确保你的系统安装了必要的依赖项:

bash 复制代码
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

安装 Docker

Minikube 可以使用 Docker 作为其虚拟化驱动程序。按照以下步骤安装 Docker:

bash 复制代码
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker

验证 Docker 是否安装成功:

bash 复制代码
docker --version

示例输出

复制代码
Docker version 20.10.7, build f0df350

使用国内镜像安装 kubectl

由于网络原因无法访问 Google 的 Kubernetes 存储库,我们可以使用 Azure China 的 Kubernetes 镜像源来下载和安装 kubectl:

  1. 获取稳定版本号:

    bash 复制代码
    VERSION=$(curl -s https://mirror.azure.cn/kubernetes/kubectl/stable.txt)
    echo $VERSION

    示例输出

    复制代码
    v1.22.0
  2. 下载 kubectl:

    bash 复制代码
    curl -LO "https://mirror.azure.cn/kubernetes/kubectl/$VERSION/bin/linux/amd64/kubectl"
  3. 安装 kubectl:

    bash 复制代码
    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
  4. 验证安装:

    bash 复制代码
    kubectl version --client

    示例输出

    复制代码
    Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"abcdef", GitTreeState:"clean", BuildDate:"2022-07-15T12:00:00Z", GoVersion:"go1.16.5", Compiler:"gc", Platform:"linux/amd64"}

安装 Minikube

从 Minikube 的官方网站下载并安装最新版本的 Minikube:

bash 复制代码
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

验证 Minikube 是否安装成功:

bash 复制代码
minikube version

示例输出

复制代码
minikube version: v1.33.1
commit: 2f223910e89575eb6b2cf301748c1126d88a1585

启动 Minikube

使用以下命令启动 Minikube:

bash 复制代码
minikube start --driver=docker

示例输出

复制代码
😄  minikube v1.33.1 on Ubuntu 22.04 (vbox/amd64)
✨  Using the docker driver based on user configuration
👍  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=2, Memory=4000MB) ...
🐳  Preparing Kubernetes v1.23.3 on Docker 20.10.7 ...
    ▪ kubelet.housekeeping-interval=5m
🚀  Launching Kubernetes ...
    ▪ apiserver.advertise-address=192.168.99.100
🌟  Enabling addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

启用 Ingress 插件

为了使局域网内的其他机器能够访问 Minikube Dashboard,你需要启用 Ingress 插件:

bash 复制代码
minikube addons enable ingress

示例输出

复制代码
💡  ingress is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.
You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS
    ▪ Using image registry.k8s.io/ingress-nginx/controller:v1.10.1
    ▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1
    ▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.1
🔎  Verifying ingress addon...
🌟  The 'ingress' addon is enabled

让局域网内其他机器访问 Minikube Dashboard

使用 kubectl port-forward

  1. 获取 Dashboard 服务名称:

    bash 复制代码
    kubectl get svc -n kubernetes-dashboard

    示例输出

    复制代码
    NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
    kubernetes-dashboard   ClusterIP   10.96.183.235    <none>        80/TCP    10m
  2. 进行端口转发:

    bash 复制代码
    kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:80 --address 0.0.0.0 &
  3. 在局域网内的其他机器上,通过以下 URL 访问 Dashboard:

    复制代码
    http://<your-host-ip>:8080/

    其中 <your-host-ip> 是运行 Minikube 的主机的 IP 地址。

    如果需要后台运行,可以用nohup命令:

    复制代码
    nohup kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:80 --address 0.0.0.0 > port-forward.log 2>&1 &

设置防火墙(可选)

如果你在机器上启用了防火墙,可能需要开放相应的端口:

bash 复制代码
sudo ufw allow 8001

参考链接

相关推荐
maosheng11463 小时前
RHCSA的第一次作业
linux·运维·服务器
wifi chicken4 小时前
Linux 端口扫描及拓展
linux·端口扫描·网络攻击
旺仔.2914 小时前
Linux 信号详解
linux·运维·网络
放飞梦想C4 小时前
CPU Cache
linux·cache
Hoshino.415 小时前
基于Linux中的数据库操作——下载与安装(1)
linux·运维·数据库
恒创科技HK6 小时前
通用型云服务器与计算型云服务器:您真正需要哪些配置?
运维·服务器
吴佳浩 Alben6 小时前
GPU 生产环境实践:硬件拓扑、显存管理与完整运维体系
运维·人工智能·pytorch·语言模型·transformer·vllm
播播资源7 小时前
CentOS系统 + 宝塔面板 部署 OpenClaw源码开发版完整教程
linux·运维·centos
源远流长jerry7 小时前
在 Ubuntu 22.04 上配置 Soft-RoCE 并运行 RDMA 测试程序
linux·服务器·网络·tcp/ip·ubuntu·架构·ip
学不完的7 小时前
Docker数据卷管理及优化
运维·docker·容器·eureka