知识库

Loading

0 评论 / 0 点赞 / 242 阅读  安装部署 最后更新: 2022-06-13 作者: 飞致云 总字数: 2919

1 概述

本文档将介绍在K8S集群环境中部署MeterSphere 的操作过程,不包括部署K8S的过程。

2 部署说明

2.1 环境说明

2.1.1 演示使用metersphere版本:v1.16.4

2.1.2 k8s节点包括1台master和1台worker,提前用kubeoperator自动部署k8s集群,如果是腾讯云,节点IP要使用内网IP,不能用弹性IP

2.1.3 应用部署控制管理器使用deployment

2.1.4 持久化存储使用hostPath写入到NFS挂载目录

2.2 NFS挂载方式

在master配置nfs服务,并将nfs共享目录/nfs_storage挂在到了两个节点中的/opt/nfs

如下图所示:

image.png

3 NFS挂载

3.1 安装NFS服务端(Master节点)

3.1.1 在master节点上安装NFS服务器

yum -y install nfs-utils

3.1.2 安装nfs+rpc

yum -y install nfs-utils rpcbind

3.13 验证NFS安装

rpm -qa nfs-utils
image.png

3.1.4 在服务端创建共享目录/nfs_storage (目录可自定义)

mkdir -p /nfs_storage

chmod 666 /nfs_storage

3.1.5 修改 NFS 配置文件 /etc/exports

vim /etc/exports

/nfs_storage

xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash) xx.xx.xx.xx(rw,sync,insecure,no_subtree_check,no_root_squash)

xx.xx.xx.xx 为MeterSphere节点IP

如下图所示:
image.png

3.1.6 重载配置数据

exportfs -rv

3.1.7 启动rpc

systemctl start rpcbind

3.1.8 设置rpc开机启动

systemctl enable rpcbind

3.1.9 检查RPC

rpcinfo -p localhost
image.png

3.1.10 启动 NFS 服务

systemctl start nfs

systemctl enable nfs

3.2 安装NFS客户端(Worker节点)

3.2.1 在MeterSphere节点上安装NFS客户端

yum -y install nfs-utils

3.2.2 检查rpc服务

image.png

3.2.3 查看服务器端挂载目录(判断网络是否通)

showmount -e xx.xx.xx.xx   # xx.xx.xx.xx为NGINX服务器IP

image.png

3.2.4.将服务器端目录挂在到本地

mkdir -p /opt/nfs/metersphere

mount -t nfs xx.xx.xx.xx:/nfs_storage /opt/nfs/metersphere # xx.xx.xx.xx为NGINX服务器IP(如果报错,检查NFS状态,是否正常启动)

3.2.5 验证:在服务器端 /nfs_storage路径下新建文件后去客户端挂载目录查看是否同步

4 部署MS

4.1 创建应用

4.1.1 创建NFS-CLIENT

Kubectl create -f nfs-deployment.yaml

以下是yalm文件内容:

172.16.16.12 和/nfs_storage,这两个是NFS服务IP和共享目录,根据实际情况修改

apiVersion: v1

kind: ServiceAccount

metadata:

name: nfs-client-provisioner


kind: Deployment

apiVersion: apps/v1

metadata:

name: nfs-client-provisioner

spec:

replicas: 1

selector:

matchLabels:

app: nfs-client-provisioner

strategy:

type: Recreate

template:

metadata:

  labels:

    app: nfs-client-provisioner

spec:

  serviceAccountName: nfs-client-provisioner

  containers:

    - name: nfs-client-provisioner

      image: registry.cn-hangzhou.aliyuncs.com/wangfang-dev/nfs-client-provisioner:latest

      volumeMounts:

        - name: nfs-client-root

          mountPath: /persistentvolumes

      env:

        - name: PROVISIONER_NAME

          value: mycase

        - name: NFS_SERVER

          value: 172.16.16.12

        - name: NFS_PATH

          value: /nfs_storage

  volumes:

    - name: nfs-client-root

      nfs:

        server: 172.16.16.12

        path: /nfs_storage

kubectl get po 查看nfs-client
image.png

4.1.2 创建存储类

Kubectl create -f class.yalm

Kubectl get sc查看存储类

以下下为文件内容:

apiVersion: storage.k8s.io/v1

kind: StorageClass

metadata:

name: default

provisioner: mycase

4.1.3 赋权

kubectl create clusterrolebinding gitlab-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts --namespace=dev

4.1.4 导入镜像

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

cd /opt/metersphere-offline-installer-v1.16.4/

for i in ls images; do docker load < $i; done

4.1.5 创建MS应用

kubectl create ns ms创建命名空间

提前下载好helm离线包

helm install metersphere metersphere.tgz -n ms部署应用

kubectl get pods -n ms 查看POD部署状态
image.png

4.1.6 创建node-port端口映射

kubectl create -f ms-server-nodeport.yalm

以下为文件内容:

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

4.1.7 访问MS

http://nodeIP:30801

文章目录
其他资源