CentOS 8 中 Minikube 搭建 Kubernetes 测试环境详解

1. 前置条件准备
  • 系统要求
    • CentOS 8 系统(建议 4GB+ 内存,2vCPU+)
    • 关闭 SELinux:sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
    • 禁用交换分区:sudo swapoff -a && sudo sed -i '/ swap / s/^/#/' /etc/fstab
  • 依赖安装
    sudo dnf install -y conntrack socat ethtool iproute-tc
    sudo systemctl enable --now libvirtd
    

2. 安装 Minikube 与驱动
  • 安装 kubectl
    cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOF
    sudo dnf install -y kubectl
    

  • 安装 Minikube
    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
    sudo rpm -Uvh minikube-latest.x86_64.rpm
    

  • 配置虚拟化驱动(推荐 KVM):
    sudo dnf install -y qemu-kvm libvirt-daemon-kvm
    sudo usermod -aG libvirt $(whoami)
    newgrp libvirt
    

3. 启动 Minikube 集群
minikube start --driver=kvm2 --memory=4096 --cpus=2

  • 关键参数说明
    • --driver=kvm2:使用 KVM 虚拟化
    • --memory=4096:分配 4GB 内存
    • --cpus=2:分配 2 个 CPU 核心
  • 验证集群状态
    minikube status
    kubectl cluster-info
    

4. 快速部署测试应用
  • 部署 Nginx 示例
    kubectl create deployment nginx-test --image=nginx:latest
    kubectl expose deployment nginx-test --port=80 --type=NodePort
    

  • 获取访问地址
    minikube service nginx-test --url
    # 输出示例:http://192.168.49.2:31234
    

  • 网页验证
    curl $(minikube service nginx-test --url)
    # 应返回 Nginx 欢迎页面 HTML
    

5. 高级测试场景
  • 多节点模拟(需启用插件):
    minikube start --driver=kvm2 --nodes=2 -p multinode-cluster
    kubectl get nodes  # 查看两个节点状态
    

  • 持久化存储测试
    kubectl apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: test-pvc
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    EOF
    

6. 环境清理
minikube stop
minikube delete
sudo dnf remove minikube kubectl

常见问题排查
  1. 启动超时

    • 检查 KVM 状态:virsh list --all
    • 增加资源:minikube start --memory=8192 --cpus=4
  2. 网络访问失败

    • 开放防火墙:sudo firewall-cmd --add-service={http,https} --permanent && sudo firewall-cmd --reload

效率提示:使用 minikube tunnel 可直接访问 LoadBalancer 服务,适合本地开发测试。

更多推荐