在k8s上部署MeterSphere

0. 环境

  • 本次演示环境使用helm将MeterSphere部署到k8s中;
  • k8s环境使用KubeOperator部署,
  • 共享存储使用NFS服务器

1. 导入镜像

提前导入镜像部署时会更快拉起Pod,如果在线下拉去会慢一些。

将MeterSphere安装包中的镜像一次导入到系统中,或导入到harbor中;
此次演示环境没有配置harbor,直接导入到两个k8s节点中:

cd /opt/metersphere-offline-installer-v1.16.2/
for i in `ls images`; do docker load < $i; done

离线环境需要导入busybox镜像

2. 关联共享存储

k8s环境使用KubeOperator部署的,直接在KubeOperator关联NFS服务
登录KubeOperator平台进入集群,以此点击“存储”–“存储提供商”–“添加”
选择“nfs" ,填写nfs服务器的相关信息,最后点击"添加"。
在这里插入图片描述
在这里插入图片描述
创建一个存储类
同样方式,以此点击“存储”–“存储类”–“添加”
选择刚才已添加的nfs存储 ,填写相关配置,最后点击"提交"。
注意:这里的名称要使用default
在这里插入图片描述

3. helm部署MeterSphere

kubectl create ns ms
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add metersphere https://metersphere.github.io/helm-chart/
helm repo update  # 从 chart 仓库中更新本地可用chart的信息
helm install metersphere metersphere/metersphere -n ms

如果网络不通畅也可以离线部署
登录https://github.com/metersphere/helm-chart/releases/tag/metersphere-1.0.10下载离线chart包metersphere-1.0.10.tgz

helm install metersphere metersphere-1.0.10.tgz -n ms

4. 检查部署状态

[root@demo-cluster-master-1 ~]# kubectl get all -n ms
NAME                                               READY   STATUS    RESTARTS   AGE
pod/metersphere-data-streaming-6c6d46d895-nc2tl    1/1     Running   0          82m
pod/metersphere-kafka-0                            1/1     Running   1          82m
pod/metersphere-node-controller-77765bdc44-24ccl   1/1     Running   0          82m
pod/metersphere-server-565d49649c-mn4vv            1/1     Running   0          82m
pod/metersphere-zookeeper-0                        1/1     Running   0          82m
pod/mysql-0                                        1/1     Running   0          82m

NAME                                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
service/metersphere-data-streaming       ClusterIP   172.20.229.76    <none>        8084/TCP                     82m
service/metersphere-kafka                ClusterIP   172.20.186.164   <none>        9092/TCP                     82m
service/metersphere-kafka-0-external     NodePort    172.20.199.242   <none>        9094:30515/TCP               82m
service/metersphere-kafka-headless       ClusterIP   None             <none>        9092/TCP,9093/TCP            82m
service/metersphere-mysql                ClusterIP   None             <none>        3306/TCP                     82m
service/metersphere-server               ClusterIP   172.20.163.116   <none>        8081/TCP                     82m
service/metersphere-zookeeper            ClusterIP   172.20.67.97     <none>        2181/TCP,2888/TCP,3888/TCP   82m
service/metersphere-zookeeper-headless   ClusterIP   None             <none>        2181/TCP,2888/TCP,3888/TCP   82m
service/ms-node-controller               ClusterIP   172.20.207.39    <none>        8082/TCP                     82m

NAME                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/metersphere-data-streaming    1/1     1            1           82m
deployment.apps/metersphere-node-controller   1/1     1            1           82m
deployment.apps/metersphere-server            1/1     1            1           82m

NAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/metersphere-data-streaming-6c6d46d895    1         1         1       82m
replicaset.apps/metersphere-node-controller-77765bdc44   1         1         1       82m
replicaset.apps/metersphere-server-565d49649c            1         1         1       82m

NAME                                     READY   AGE
statefulset.apps/metersphere-kafka       1/1     82m
statefulset.apps/metersphere-zookeeper   1/1     82m
statefulset.apps/mysql                   1/1     82m

5. 稍作修改

使用helm部署MeterSphere的访问入口为ingress方式;
查看一下ingress:

[root@demo-cluster-master-1 ~]# kubectl get ingress -n ms
NAME          CLASS    HOSTS                         ADDRESS          PORTS   AGE
metersphere   <none>   ms-dev.apps.metersphere.com   172.20.242.169   80      87m

在此我们不使用helm默认给的这样方式访问MeterSphere,
创建一个nodeport的访问方式:
vi ms-server-nodeport.yaml

apiVersion: v1
kind: Service
metadata:
  name: metersphere-server-nodeport
  namespace: ms
spec:
  ports:
    - name: metersphere-server
      protocol: TCP
      port: 8081
      targetPort: 8081
      nodePort: 30801
  type: NodePort
  selector:
    app: metersphere-server

创建nodeport服务

kubectl create -f ms-server-nodeport.yaml 

5. 访问mstersphere页面

http://nodeIP:30801

在这里插入图片描述

6.验证测试功能

6.1 设置系统参数

在系统设置页面,“当前站点URL”填写登录的URL
在这里插入图片描述

6.2 配置环境

系统设置–工作空间–环境管理,创建环境;

HTTP配置,环境域名同样填写登录的URL。
请添加图片描述

6.3 导入脚本

接口调试–接口自动化–更多操作–导入;
将测试脚本导入
请添加图片描述

6.4 调试脚本

将导入的脚本进行测试,选择上一步创建的环境,点击“调试”,全部通过则脚本正常,点击右上角“保存”;
请添加图片描述
请添加图片描述

6.5 创建性能测试

调试完成的脚本,点击“创建性能测试”;
请添加图片描述
选择“资源池”;点击“保存并执行”,测试开始执行;
请添加图片描述
并且,在k8s节点上正常拉起jmeter容器。
请添加图片描述
至此,k8s部署MeterSphere完成。
请添加图片描述

7. 参考

MeterSphere github
https://github.com/metersphere/metersphere

MeterSphere helm chart:
https://github.com/metersphere/helm-chart

KubeOperator 规划、部署和运营 K8s 集群
https://github.com/metersphere/metersphere

KubePi 简单易用的开源 Kubernetes 可视化管理面板
https://github.com/KubeOperator/KubePi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

范一刀

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值