如何使用K8S快速部署测试环境

发布于:2025-03-30 ⋅ 阅读:(25) ⋅ 点赞:(0)

目录

一、Windows 系统使用 Rancher Desktop

二、Linux系统 集群使用 Ansible 一键部署

三、Linux系统使用 kubeadm 快速搭建单节点集群

四、Kubernetes (K8S) 快速部署测试环境

4.1 准备 K8S 集群

4.2部署测试应用

4.3访问测试服务

4.4持久化存储(可选)

4.5 配置管理(ConfigMap/Secret)

4.6.快速清理环境

4.7.自动化脚本示例​​​​​​​

4.8注意事项


对于已经成熟的项目团队,测试环境基本上已经配置完成,开发人员提测后,会有本次提测的版本信息,涉及到项目中哪些工程,包括前端,后端等,不需要太多的配置即可完成测试环境的构建及部署。

有些公司测试环境的情况为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=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,按提示完成初始化。

二、Linux系统 集群使用 Ansible 一键部署

适用场景:快速搭建多节点 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  # 查看系统组件

三、Linux系统使用 kubeadm 快速搭建单节点集群

适用场景:快速验证 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

四、Kubernetes (K8S) 快速部署测试环境

4.1 准备 K8S 集群

本地开发环境(推荐)

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 nodes

Kind(轻量级多节点集群):​​​​​​​

# 安装 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

4.2部署测试应用

示例:部署一个 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

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: 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

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.yamlkubectl apply -f service.yamlkubectl apply -f pvc.yamlecho "访问测试地址: 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

阅读后若有收获,不吝关注,分享等操作!