要在 Kubernetes 中部署数据资源库服务器,请遵循以下流程。
前提条件
首先,需要一个持久卷和一个持久卷声明。应为其配置 300GB 的空间,并且应具有 ReadWriteOnce 访问模式。该空间将用于存储数据资源库服务器的数据。
默认持久卷声明的名称为 'datarepo-pvc',可通过更新 SOAVirt 服务器的 yaml 定义进行自定义。以下示例展示了设置 NFS 持久卷和持久卷声明的配置。虽然示例中使用的是 NFS,但这并不是必需的;可根据需要使用任何持久卷类型。
警告:对于 NFS,导出目录的 UID 和 GID 必须与运行容器的 Parasoft 用户相同。例如,执行 chown 1000:1000 <SHARED_PATH>
命令。
apiVersion: v1 kind: PersistentVolume metadata: name: datarepo-pv spec: capacity: storage: 300Gi volumeMode: Filesystem accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: nfs mountOptions: - hard - nfsvers=4.1 nfs: path: <path> server: <ip_address> --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: datarepo-pvc spec: storageClassName: nfs accessModes: - ReadWriteOnce resources: requests: storage: 300Gi
使用 yaml 文件创建持久卷和持久卷声明:
kubectl create -f datarepo-pv.yaml
创建一个 secret,其中包含登录数据资源库的用户名和密码。创建 secret 的一种方法是使用以下命令:
kubectl create secret generic datarepo-login \ --from-literal=username=<username> \ --from-literal=password=<password>
数据资源库服务器设置
下面的 yaml 示例为数据资源库服务器配置了一个 pod,并通过 30017 端口将其对外公开。如果之前为持久卷声明使用了自定义名称,请确保更新 'claimName' 字段以匹配自定义名称。如果持久卷使用 NFS,请按照 yaml 文件内注释中的说明配置 'runAsUser' UID。
apiVersion: v1 kind: Pod metadata: name: datarepo labels: app: datarepo spec: # If using NFS for the persistent volume, uncomment the following lines and run the pod with the UID of the owner of the <shared_path>. # securityContext: # runAsUser: <UID> volumes: - name: datarepo-volume persistentVolumeClaim: claimName: datarepo-pvc # To run the Data Repository server with SSL, uncomment the following lines # - name: datarepo-sslcert-file # configMap: # name: datarepo-sslcert containers: - name: datarepo image: mongo:latest imagePullPolicy: IfNotPresent volumeMounts: - name: datarepo-volume mountPath: /data/db # To run the Data Repository server with SSL, uncomment the following lines # - name: datarepo-sslcert-file # mountPath: /etc/sslCert.pem # subPath: sslCert.pem # command: ["mongod", "--ipv6", "--bind_ip_all", "--sslMode", "requireSSL", "--sslPEMKeyFile", "/etc/sslCert.pem", "--auth"] startupProbe: exec: # To run the Data Repository server with SSL or not, choose one of the following lines to uncomment # command: ["/bin/sh", "-c" "mongosh --host 127.0.0.1 --port 27017 --ssl --sslAllowInvalidCertificates --quiet test --eval 'quit(0)'"] command: ["/bin/sh", "-c" "mongosh --host 127.0.0.1 --port 27017 --quiet test --eval 'quit(0)'"] initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 10 failureThreshold: 3 livenessProbe: exec: # To run the Data Repository server with SSL or not, choose one of the following lines to uncomment # command: ["/bin/sh", "-c" "mongosh --host 127.0.0.1 --port 27017 --ssl --sslAllowInvalidCertificates --quiet test --eval 'quit(0)'"] command: ["/bin/sh", "-c" "mongosh --host 127.0.0.1 --port 27017 --quiet test --eval 'quit(0)'"] initialDelaySeconds: 30 periodSeconds: 30 timeoutSeconds: 10 env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: datarepo-login key: username optional: false - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: datarepo-login key: password optional: false --- apiVersion: v1 kind: Service metadata: name: datarepo labels: run: datarepo spec: type: NodePort ports: - port: 27017 protocol: TCP targetPort: 27017 nodePort: 30017 selector: app: datarepo
使用 yaml 文件启动 pod 和服务:
kubectl create -f datarepo.yaml
使用 SSL 重启数据资源库服务器
在 Kubernetes 中设置好数据资源库服务器后,就可以使用 SSL 重启。首先,清除现有的 pod 和服务:
kubectl delete -f datarepo.yaml
然后将 SSL 证书文件部署到 Kubernetes:
kubectl create configmap datarepo-sslcert \ --from-file=sslCert.pem=<path-to-file>
根据上面 datarepo.yaml 文件中的说明重新配置该文件,以使用 SSL 启动数据资源库服务器。然后使用该 yaml 启动 pod 和服务:
kubectl create -f datarepo.yaml
通过 CTP 注册数据资源库服务器
要在 CTP 中使用 Parasoft Test Data 注册数据资源库服务器,请运行以下命令:
curl -H "Content-Type: application/json" -H "Accept: application/json" \ -d "{\"alias\":\"<ALIAS>\",\"host\":\"<NODE>\",\"port\":<PORT>,\"user\":\"<DR_USERNAME>\",\"password\":\"<DR_PASSWORD>\",\"ssl\":<USE_SSL>}" \ --user "<CTP_USERNAME>:<CTP_PASSWORD>" "<CTP_URL>/em/tdm/api/v2/servers"
下表介绍了 curl 命令中的变量。将它们替换为适用于您的设置的配置。
变量 | 说明 |
---|---|
<ALIAS> | CTP 上显示的表示数据资源库服务器的名称 |
<NODE> | 运行数据资源库服务器的 Kubernetes 节点 |
<PORT> | 公开数据资源库服务器的节点端口号 |
<DR_USERNAME> | 用于初始化数据资源库服务器的登录用户名 |
<DR_PASSWORD> | 用于初始化数据资源库服务器的登录密码 |
<USE_SSL> | 该数据资源库服务器是否要求使用 SSL(true 或 false) |
<CTP_USERNAME> | CTP 登录用户名 |
<CTP_PASSWORD> | CTP 登录密码 |
<CTP_URL> | CTP 的 URL 格式为 https://[CTP 服务器主机]:[端口] |