详解 CentOS 8 中 Minikube 搭建 K8s 测试环境:快速部署与应用测试
·
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
常见问题排查
-
启动超时:
- 检查 KVM 状态:
virsh list --all - 增加资源:
minikube start --memory=8192 --cpus=4
- 检查 KVM 状态:
-
网络访问失败:
- 开放防火墙:
sudo firewall-cmd --add-service={http,https} --permanent && sudo firewall-cmd --reload
- 开放防火墙:
效率提示:使用
minikube tunnel可直接访问 LoadBalancer 服务,适合本地开发测试。
更多推荐
所有评论(0)