跳到主要内容

HAP 微服务

下载镜像

在 Kubernetes 集群环境中,需要在各微服务节点所在的服务器上分别执行此操作

crictl pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-community:6.5.6
crictl pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-doc:2.0.0
crictl pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node1018-python36

部署管理器

默认仅在 Kubernetes Master 第一台服务器上操作

  1. 下载管理器

    wget https://pdpublic.mingdao.com/private-deployment/6.5.6/mingdaoyun_private_deployment_captain_linux_amd64.tar.gz
  2. 创建目录,并解压管理器到新创建的目录下

    mkdir /usr/local/MDPrivateDeployment/
    tar -zxvf mingdaoyun_private_deployment_captain_linux_amd64.tar.gz -C /usr/local/MDPrivateDeployment/
  3. 写入 HAP 管理器服务所依赖的管理器的 systemd 单元文件

    cat > /etc/systemd/system/hap-manager.service <<'EOF'
    [Unit]
    Description=HAP Manager
    After=network-online.target
    Wants=network-online.target

    [Service]
    Type=oneshot
    WorkingDirectory=/usr/local/MDPrivateDeployment
    ExecStart=/usr/bin/bash ./service.sh start
    RemainAfterExit=yes

    [Install]
    WantedBy=multi-user.target
    EOF
  4. 启动管理器服务

    systemctl daemon-reload
    systemctl start hap-manager
    systemctl enable hap-manager

部署微服务

默认仅在 Kubernetes Master 第一台服务器上操作

  1. 生成初始配置文件

    cd /usr/local/MDPrivateDeployment/
    bash ./service.sh install https://hap.domain.com
    echo -n 'StageStart' > installer.stage
  2. 配置 config.yaml 文件中 ConfigMap 信息

    • config.yaml 默认在 /data/mingdao/script/kubernetes 路径下

    执行 vim config.yaml 编辑文件,将下面的变量值修改为实际部署环境的信息

    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: env-list
    namespace: default
    data:
    ENV_APP_VERSION: "6.5.6"
    ENV_MYSQL_HOST: "192.168.10.2"
    ENV_MYSQL_PORT: "3306"
    ENV_MYSQL_USERNAME: "root"
    ENV_MYSQL_PASSWORD: "123456"
    ENV_MONGODB_URI: "mongodb://hap:123456@192.168.10.4:27017,192.168.10.5:27017,192.168.10.6:27017"
    ENV_MONGODB_OPTIONS: "?maxIdleTimeMS=600000&maxLifeTimeMS=1800000"
    ENV_REDIS_HOST: "192.168.10.13"
    ENV_REDIS_PORT: "6379"
    ENV_REDIS_PASSWORD: "123456"
    ENV_KAFKA_ENDPOINTS: "192.168.10.7:9092,192.168.10.8:9092,192.168.10.9:9092"
    ENV_ELASTICSEARCH_ENDPOINTS: "http://192.168.10.10:9200,http://192.168.10.11:9200,http://192.168.10.12:9200"
    ENV_ELASTICSEARCH_PASSWORD: "elastic:123456"
    ENV_FILE_ENDPOINTS: "192.168.10.16:9001,192.168.10.17:9002,192.168.10.18:9003,192.168.10.19:9004"
    ENV_FILE_ACCESSKEY: "storage"
    ENV_FILE_SECRETKEY: "123456"
    ENV_MINGDAO_INTRANET_ENDPOINT: "www:8880"
    ENV_ADDRESS_MAIN: "https://hap.domain.com"
    ENV_ADDRESS_ALLOWLIST: ""
    ENV_CAPTAIN_ENDPOINT: "http://192.168.10.20:38880"
    ENV_HEALTHCHECK: "off"
    ENV_API_TOKEN: "4PrArcXYquO1sHlV9evsDqFKUUJ1kWVAg7v6oGcTKRNG9fUY"
    ENV_TIME_ZONE: "Asia/Shanghai"

    初次部署需修改的环境变量说明:

    变量名说明
    ENV_MYSQL_HOST填写 MySQL 数据库地址。
    ENV_MYSQL_PORT填写 MySQL 服务端口。
    ENV_MYSQL_USERNAME填写 MySQL 数据库登录用户名。
    ENV_MYSQL_PASSWORD填写 MySQL 数据库登录密码。
    ENV_MONGODB_URI填写 MongoDB 的连接地址,可为单节点、副本集或分片集群格式。
    ENV_REDIS_HOST【Redis 主从或单机模式】填写 Redis 服务的主机地址。
    ENV_REDIS_PORT【Redis 主从或单机模式】填写 Redis 服务端口。
    ENV_REDIS_PASSWORD【Redis 主从或单机模式】填写 Redis 服务访问密码。
    ENV_REDIS_SENTINEL_ENDPOINTS【Redis 哨兵模式】填写哨兵节点地址,多个地址以英文逗号分隔(例如:192.168.10.21:26379,192.168.10.22:26379,192.168.10.23:26379)。
    ENV_REDIS_SENTINEL_MASTER【Redis 哨兵模式】填写主节点(master)名称。
    ENV_REDIS_SENTINEL_PASSWORD【Redis 哨兵模式】填写连接哨兵集群的访问密码。
    ENV_KAFKA_ENDPOINTS填写 Kafka 集群节点地址,多个节点以逗号分隔(例如:192.168.10.7:9092,192.168.10.8:9092)。
    ENV_ELASTICSEARCH_ENDPOINTS填写 Elasticsearch 节点访问地址,集群模式下多个节点以逗号分隔,地址前需包含 http:// 协议(例如:http://192.168.10.10:9200,http://192.168.10.11:9200)。
    ENV_ELASTICSEARCH_PASSWORD填写 Elasticsearch 访问凭证,格式为 用户名:密码
    ENV_FILE_ENDPOINTS填写 HAP 文件服务节点地址,多个节点用逗号分隔(例如:192.168.10.16:9001,192.168.10.17:9002)。
    ENV_FILE_ACCESSKEY填写 HAP 文件服务访问密钥 AccessKey。
    ENV_FILE_SECRETKEY填写 HAP 文件服务访问密钥 SecretKey。
    ENV_ADDRESS_MAIN填写 HAP 系统实际访问地址(例如:https://hap.domain.com)。
    ENV_ADDRESS_ALLOWLIST可选,填写 HAP 系统的扩展访问地址白名单,多个地址用逗号分隔。
    ENV_CAPTAIN_ENDPOINT填写实际部署的管理器服务器地址(例如:http://192.168.10.20:38880)。
  3. 修改完成后保存退出,确保所有配置符合当前部署环境,再继续执行后续步骤

  4. 启动 HAP 微服务

    cd /data/mingdao/script/kubernetes/
    bash start.sh

    /data/mingdao/script/kubernetes/ 目录下:

    • start.sh 用于启动 HAP 微服务
    • stop.sh 用于停止 HAP 微服务
  5. 检查 HAP 微服务状态

    kubect get pod -o wide
    • 正常情况下 Pod 状态均为 2/2 且 Running

    • 若发现某个 Pod 启动失败或状态异常,可使用以下命令查看其重启或错误日志

      kubectl logs -p <pod-name>
  6. 待 Nginx 做好访问地址的代理后,即可通过配置的地址访问HAP系统