目录
一、Windows 系统使用 Rancher Desktop
对于已经成熟的项目团队,测试环境基本上已经配置完成,开发人员提测后,会有本次提测的版本信息,涉及到项目中哪些工程,包括前端,后端等,不需要太多的配置即可完成测试环境的构建及部署。
有些公司测试环境的情况为0到1的状态,并且没有专业的运维人员,这就很考验测试人员的技能,根据公司项目的大小情况,选择合适的工具进行测试环境部署很有必要。
一、Windows 系统使用 Rancher Desktop
适用场景:Windows 环境下快速搭建轻量级 K8s 开发环境。
步骤:
安装 Rancher Desktop:
下载并安装 Rancher Desktop(推荐版本 1.8.1)。
配置 K8s 版本(如 1.27.1)和资源限制(CPU/内存)。
启动后,通过 PowerShell 或命令行即可使用 kubectl 命令。
部署测试应用:
示例:部署 Nginx 测试服务:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get services
访问服务:通过 localhost:<NodePort>(如 localhost:30000)查看 Nginx 页面。
使用 Rancher UI 管理:
安装 Rancher 管理界面(可选):
nerdctl pull rancher/rancher
nerdctl run -d --name rancher -p 8443:8443 rancher/rancher
访问 https://localhost:8443,按提示完成初始化。
二、Linux系统 集群使用 Ansible 一键部署
适用场景:快速搭建多节点 K8s 集群(适合生产级测试环境)。
步骤:
准备环境:
准备 3 台虚拟机(1 台 Master,2 台 Node),配置 IP 和主机名
确保所有节点能互相通信,关闭防火墙和 SELinux。
安装 Ansible 并获取脚本:
# 安装 Ansible
sudo yum install -y epel-release
sudo yum install -y ansible
# 下载部署脚本(示例使用知识库[5]中的项目)
git clone https://gitee.com/hadoop-bigdata/install-k8s.git
修改配置文件:
编辑 install-k8s/init/templates/hosts,填写节点 IP 和主机名。
修改 env.conf 中的镜像版本、密码等参数。
执行一键部署:
cd install-k8s
ansible-playbook install-k8s.yaml
验证部署:
kubectl get nodes # 查看节点状态
kubectl get pods --all-namespaces # 查看系统组件
三、Linux系统使用 kubeadm 快速搭建单节点集群
适用场景:快速验证 K8s 基础功能,适合单机测试。
步骤
环境准备:
安装 Docker 和 K8s 组件:
# 安装 Docker
sudo yum install -y docker
sudo systemctl enable docker --now
# 安装 K8s 组件
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
EOF
sudo yum install -y kubelet kubeadm kubectl
初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
配置kubectl:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署网络插件(如 Flannel):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
验证集群:
kubectl get nodes # 确保节点状态为 Ready
kubectl get pods --all-namespaces
四、Kubernetes (K8S) 快速部署测试环境
4.1 准备 K8S 集群
本地开发环境(推荐)
Minikube(单节点集群)
# 安装 Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# 启动集群(示例:使用 Docker 驱动)
minikube start --driver=docker
# 验证集群
kubectl get nodes
Kind(轻量级多节点集群):
# 安装 Kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/
# 创建集群
kind create cluster --name test-env
4.2部署测试应用
示例:部署一个 Nginx 服务
创建 Deployment (nginx-deployment.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
创建 Service (nginx-service.yaml):
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort # 通过 NodePort 暴露服务
应用配置:
kubectl apply -f nginx-deployment.yaml
kubectl apply -f nginx-service.yaml
4.3访问测试服务
通过 NodePort 访问:
# 获取 NodePort 端口
kubectl get svc nginx-service
# Minikube 直接访问(自动打开浏览器)
minikube service nginx-service
通过 Port-Forward 访问:
kubectl port-forward svc/nginx-service 8080:80
# 浏览器访问 http://localhost:8080
4.4持久化存储(可选)
创建 PVC (pvc.yaml):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
挂载到 Deployment:
# 在 Deployment 的容器配置中添加:
volumeMounts:
- name: test-storage
mountPath: /data
volumes:
- name: test-storage
persistentVolumeClaim:
claimName: test-pvc
4.5 配置管理(ConfigMap/Secret)
创建 ConfigMap:
kubectl create configmap app-config --from-file=config.properties
挂载到容器:
envFrom:
- configMapRef:
name: app-config
4.6.快速清理环境
# 删除所有资源
kubectl delete -f nginx-deployment.yaml -f nginx-service.yaml
# 删除整个 Namespace(如果使用独立 Namespace)
kubectl delete namespace test-env
4.7.自动化脚本示例
#!/bin/bash
# 一键部署测试环境
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f pvc.yaml
echo "访问测试地址: http://$(minikube ip):$(kubectl get svc nginx-service -o jsonpath='{.spec.ports[0].nodePort}')"
4.8注意事项
镜像优化:使用轻量级镜像(如 alpine 版本)加快部署速度。
资源限制:为测试环境设置 CPU/内存限制,避免资源浪费:
resources:
limits:
cpu: "500m"
memory: "512Mi"
调试工具:安装 kubectl-debug 或临时调试容器:
kubectl debug -it <pod-name> --image=busybox -- sh
阅读后若有收获,不吝关注,分享等操作!