对于已经成熟的项目团队,测试环境基本上已经配置完成,开发人员提测后,会有本次提测的版本信息,涉及到项目中哪些工程,包括前端,后端等,不需要太多的配置即可完成测试环境的构建及部署。
有些公司测试环境的情况为0到1的状态,并且没有专业的运维人员,这就很考验测试人员的技能,根据公司项目的大小情况,选择合适的工具进行测试环境部署很有必要。
适用场景:Windows 环境下快速搭建轻量级 K8s 开发环境。
步骤:
安装 Rancher Desktop:
下载并安装 Rancher Desktop(推荐版本 1.8.1)。
配置 K8s 版本(如 1.27.1)和资源限制(CPU/内存)。
启动后,通过 PowerShell 或命令行即可使用 kubectl 命令。
部署测试应用:
示例:部署 Nginx 测试服务:
kubectl create deployment nginx --image=nginxkubectl expose deployment nginx --port=80 --type=NodePortkubectl get services访问服务:通过 localhost:<NodePort>(如 localhost:30000)查看 Nginx 页面。
使用 Rancher UI 管理:
安装 Rancher 管理界面(可选):
nerdctl pull rancher/ranchernerdctl run -d --name rancher -p 8443:8443 rancher/rancher访问 https://localhost:8443,按提示完成初始化。
适用场景:快速搭建多节点 K8s 集群(适合生产级测试环境)。
步骤:
准备环境:
准备 3 台虚拟机(1 台 Master,2 台 Node),配置 IP 和主机名
确保所有节点能互相通信,关闭防火墙和 SELinux。
安装 Ansible 并获取脚本:
# 安装 Ansiblesudo yum install -y epel-releasesudo 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-k8sansible-playbook install-k8s.yaml验证部署:
kubectl get nodes # 查看节点状态kubectl get pods --all-namespaces # 查看系统组件适用场景:快速验证 K8s 基础功能,适合单机测试。
步骤
环境准备:
安装 Docker 和 K8s 组件:
# 安装 Dockersudo yum install -y dockersudo 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=1gpgcheck=0EOFsudo yum install -y kubelet kubeadm kubectl初始化集群:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16配置kubectl:
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo 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 # 确保节点状态为 Readykubectl get pods --all-namespaces本地开发环境(推荐)
Minikube(单节点集群):
# 安装 Minikubecurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64sudo install minikube-linux-amd64 /usr/local/bin/minikube# 启动集群(示例:使用 Docker 驱动)minikube start --driver=docker# 验证集群kubectl get nodesKind(轻量级多节点集群):
# 安装 Kindcurl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64chmod +x ./kindsudo mv ./kind /usr/local/bin/# 创建集群kind create cluster --name test-env示例:部署一个 Nginx 服务
创建 Deployment (nginx-deployment.yaml):
apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-testspec: 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: v1kind: Servicemetadata: name: nginx-servicespec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: NodePort # 通过 NodePort 暴露服务应用配置:
kubectl apply -f nginx-deployment.yamlkubectl apply -f nginx-service.yaml通过 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创建 PVC (pvc.yaml):
apiVersion: v1kind: PersistentVolumeClaimmetadata: name: test-pvcspec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi挂载到 Deployment:
# 在 Deployment 的容器配置中添加:volumeMounts:- name: test-storage mountPath: /datavolumes:- name: test-storage persistentVolumeClaim: claimName: test-pvc创建 ConfigMap:
kubectl create configmap app-config --from-file=config.properties挂载到容器:
envFrom:- configMapRef: name: app-config# 删除所有资源kubectl delete -f nginx-deployment.yaml -f nginx-service.yaml# 删除整个 Namespace(如果使用独立 Namespace)kubectl delete namespace test-env#!/bin/bash# 一键部署测试环境kubectl apply -f deployment.yamlkubectl apply -f service.yamlkubectl apply -f pvc.yamlecho "访问测试地址: http://$(minikube ip):$(kubectl get svc nginx-service -o jsonpath='{.spec.ports[0].nodePort}')"镜像优化:使用轻量级镜像(如 alpine 版本)加快部署速度。
资源限制:为测试环境设置 CPU/内存限制,避免资源浪费:
resources: limits: cpu: "500m" memory: "512Mi"调试工具:安装 kubectl-debug 或临时调试容器:
kubectl debug -it <pod-name> --image=busybox -- sh原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。