跳到主要内容

Kubernetes 部署

环境准备

  • 准备 k8s 环境
  • 下载部署配置 git clone https://github.com/meta-d/installer.git
提示

以下演示以 dev 命名空间为例,用户可以根据实际情况修改命名空间。

部署

转到 k8s 部署文件夹

cd installer/k8s

1. 创建密钥

首先需要单独创建一个 Secret 来存储敏感信息,如数据库密码、JWT 密钥等。

kubectl create -f secret.yaml -n dev

密钥配置(可选)

用户可以自行修改这些密钥,步骤如下

  • 对密码进行 base64 编码

echo -n '<Password>' | base64

提示

解码 echo '<EncodedPassword>' | base64 --decode

  • 然后写入到文件 secret.yamlSecret 配置中
apiVersion: v1
kind: Secret
metadata:
name: ocap-secrets
type: Opaque
data:
DB_PASS: UG9zdGdyZXNQYXNzd29yZCExMjM=

必输的密码有以下

名称说明
DB_PASS数据库密码
SESSION_SECRETSession 密钥
JWT_SECRETJWT 密钥
JWT_REFRESH_SECRETJWT 刷新密钥
REDIS_PASSWORDRedis 密码

更多密钥配置请参考 k8s 配置文件模版中的 Secret 部分。

2. 创建或更新配置

首次创建或更新配置,都可以执行此命令:

kubectl apply -f manifest.yaml -n dev

域名配置

元数分析平台默认配置了 localhost 作为域名,如果需要使用自定义域名或服务器 IP 地址访问,请修改 ConfigMap config-data 中如下配置:

...
API_BASE_URL: "//api.demo.com"
CLIENT_BASE_URL: "//app.demo.com"
  • API_BASE_URL 为 API 服务(ocap-api-lb)的地址
  • CLIENT_BASE_URL 为前端服务(ocap-webapp-lb)的地址
注意

可以使用命令 kubectl get services -n dev 查询服务负载均衡的地址(或查询依赖于具体平台的配置)。

也可以使用同一域名不同端口号,如下配置:

...
API_BASE_URL: "//app.demo.com:3000"
CLIENT_BASE_URL: "//app.demo.com"
注意

如果还没有设置域名,这里的域名可以使用相应的 IP 地址代替。

3. 访问网站

所有服务启动完成后便可以通过域名 (如:http://app.demo.com) 访问网站,然后进行系统设置向导

持久卷

对于不同的 k8s 平台可能需要配置不同的持久卷(Persistent Volume),请根据实际情况修改 manifest.yaml 文件中的 PersistentVolumePersistentVolumeClaim 部分。

Ingress

如果需要使用 Ingress 进行外部访问和负载均衡,需要将类型为 LoadBalancer 的服务类型该为 ClusterIP,并且配置 Ingress。

k8s简易操作命令

  • 首次执行yml文件 kubectl create -f xxx.yml
  • 修改yml文件后执行 kubectl apply -f xxx.yml
  • 删除yml定义的所有资源 kubectl delete -f xxx.yml
  • 查看pod列表 kubectl get pods
  • 进入容器 kubectl exec -it xxx(podName) -- /bin/sh
  • 查看日志 kubectl logs xxx(podName)
  • 查看ip和端口信息 kubectl get ep
  • 更多k8s知识