集群版安装

集群版组件说明

组件 类型 功能说明 必选/可选
polaris 最新stable版本 系统组件 服务治理控制面 必选
polaris-console 最新stable版本 系统组件 服务治理控制台 必选
polaris-limiter 最新stable版本 系统组件 分布式限流服务 可选
MySQL >= 5.7 第三方依赖 服务数据存储 必选
Redis >=4.0 第三方依赖 心跳状态数据缓存 必选
Prometheus >=2.28.0 第三方依赖 可观测性 可选

最小生产组网规格

节点类型 节点数量 规格要求
polaris-console & polaris 2 CentOS 7.5,1C2G,存储10G
polaris-limiter 1 CentOS 7.5,1C2G,存储10G
MySQL 1 1C2G,存储10G
Redis 1 1C2G
Prometheus 1 1C1G

部署架构

核心组网

获取最新软件包

可以从以下2个地址下载北极星软件包,请选择最新的release版本:

下载软件包

安装第三方依赖

部署MySQL

北极星可以与应用程序共用一个数据库,如果有现成MySQL则可以跳过这一步。

安装开源版本MySQL的步骤可参考:MySQL安装

初始数据导入

解压源码包并执行导入:

第一次安装北极星

unzip polaris-$version.zip
cd polaris-$version
mysql -u $db_user -p $db_pwd -h $db_host < store/sqldb/scripts/polaris_server.sql

已有在运行的北极星,执行升级store/sqldb/scripts/delta中的升级脚本

unzip polaris-$version.zip
cd polaris-$version
mysql -u $db_user -p $db_pwd -h $db_host < store/sqldb/scripts/delta/v160-v170.sql

部署Redis

北极星可以与应用程序共用一个Redis,如果有现成Redis则可跳过这一步。

安装开源版本Redis的步骤可参考:Redis安装

安装后,需要设置Redis允许远程主机访问。可以修改redis.conf配置文件:

bind 0.0.0.0
protected-mode no

修改后重启Redis生效。

安装系统组件

部署在kubernetes

修改配置

  • 下载软件包:下载polaris-standalone-release_$version.kubernetes.zip,解压后进入polaris-standalone-release_$version.kubernetes目录。

  • 配置数据库参数:修改02-polaris-server-config.yaml里面的store配置,去掉boltdbStore相关配置,并放开defaultStore相关配置。

# 存储配置
store:
# 数据库存储插件
  name: defaultStore
  option:
    master:
      dbType: mysql
      dbName: polaris_server
      dbAddr: ##数据库地址,格式为ip:port##
      dbUser: ##数据库用户名##
      dbPwd: ##数据库密码##
  • 开启自动注册:修改02-polaris-server-config.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:
bootstrap:
  polaris_service:
    # 设置为true代表启用自动注册
    enable_register: true
    # 填入数据库地址,用于获取当前节点ip信息
    probe_address: ##数据库地址##
  • 配置Redis参数:修改02-polaris-server-config.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。
healthcheck:
  checkers:
  - name: heartbeatRedis
    option:
	  #填入redis的IP以及端口
      kvAddr: ##REDIS_ADDR##
	  #填入redis的密码
      kvPasswd: ##REDIS_PWD##
      maxIdle: 200
      idleTimeout: 120s
      connectTimeout: 200ms
      msgTimeout: 200ms
      concurrency: 200  

执行部署

kubectl create -f 00-polaris-namespace-config.yaml 
kubectl create -f 01-polaris-console-config.yaml  
kubectl create -f 02-polaris-server-config.yaml  
kubectl create -f 03-polaris-server.yaml
kubectl create -f 04-prometheus.yaml
kubectl create -f 05-polaris-limiter-config.yaml
kubectl create -f 06-polaris-limiter.yaml

部署在Linux虚拟机

安装polaris

  • 下载软件包:下载polaris-server-release_$version.linux.$arch.zip,解压后进入polaris-server-release_$version.linux.$arch目录

  • 配置数据库参数:修改polaris-server.yaml里面的store配置,去掉boltdbStore相关配置,并放开defaultStore相关配置。

# 存储配置
store:
# 数据库存储插件
  name: defaultStore
  option:
    master:
      dbType: mysql
      dbName: polaris_server
      dbAddr: ##数据库地址,格式为ip:port##
      dbUser: ##数据库用户名##
      dbPwd: ##数据库密码##
  • 开启自动注册:修改polaris-server.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:
bootstrap:
  polaris_service:
    # 设置为true代表启用自动注册
    enable_register: true
    # 填入数据库地址,用于获取当前节点ip信息
    probe_address: ##数据库地址##
  • 配置Redis参数:修改polaris-server.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。
healthcheck:
  checkers:
  - name: heartbeatRedis
    option:
	  #填入redis的IP以及端口
      kvAddr: ##REDIS_ADDR##
	  #填入redis的密码
      kvPasswd: ##REDIS_PWD##
      maxIdle: 200
      idleTimeout: 120s
      connectTimeout: 200ms
      msgTimeout: 200ms
      concurrency: 200  
  • 启动polaris-discover:
bash ./tool/start.sh
bash ./tool/p.sh

安装prometheus

  • 下载软件包:点击下载链接,下载prometheus版本,解压后进入prometheus-2.28.0.linux-amd64目录中。

  • 修改配置:打开 prometheus.yml文件,修改prometheus的job配置,增加http_sd_configs,其作用是告知prometheus需要从北极星获取应用的监控上报的地址。

  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

    http_sd_configs:
      - url: http://${polaris部署IP地址}:9000/prometheus/v1/clients

    honor_labels: true     
  • 启动prometheus:
nohup ./prometheus --web.enable-lifecycle --web.enable-admin-api >> prometheus.out 2>&1 &

安装polaris-console

  • 下载软件包:下载polaris-console-release_$version.linux.$arch.zip,解压后进入polaris-console-release_$version.linux.$arch目录

  • 修改配置:打开polaris-console.yaml文件,修改monitorServer的地址,将原来的127.0.0.1:9090替换成prometheus的监听地址

monitorServer:
  address: "${prometheus部署IP地址}:9090"
  • 启动polaris-console:
bash ./tool/start.sh
bash ./tool/p.sh

安装polaris-limiter

  • 下载软件包:下载polaris-limiter-release_$version.linux.$arch.zip,解压后进入polaris-limiter-release_$version.linux.$arch目录

  • 修改配置:打开polaris-limiter.yaml文件,修改polaris-server-address的值为北极星服务端地址。

registry:
  enable: true
  polaris-server-address: { 北极星服务端 grpc 协议地址 }
  name: polaris.limiter
  namespace: Polaris
  health-check-enable: true
api-servers:
  - name: http
    option:
      ip: 0.0.0.0
      port: 8100
  - name: grpc
    option:
      ip: 0.0.0.0
      port: 8101
limit:
  myid: { 服务端节点唯一标识信息,int 类型}

注意事项:如果是部署单节点的 polaris-limiter,myid 设置为 1 即可;如果是部署多节点的 polaris-limiter,每个节点的 myid 必须保证唯一。

  • 启动polaris-limiter:
bash ./tool/start.sh
bash ./tool/p.sh

部署后验证

  • 登录控制台的默认登录账户信息。
用户:polaris
密码:polaris
  • 访问http://{控制台IP}:8080,可以看到登录页面,登录后可以成功看到北极星服务治理控制台内容。

  • 执行以下命令,查看 polaris.limiter 服务下的实例信息,是否包含限流服务。

curl --location --request POST '127.0.0.1:8090/v1/Discover' \
--header 'Content-Type: application/json' \
--data-raw '{
    "type": 1,
    "service": {
        "name": "polaris.limiter",
        "namespace": "Polaris"
    }
}'

FAQ

MySQL 版本支持

  • 开源MySQL版本支持:当前仅支持 >= 5.7,低版本暂未支持。
  • 云厂商MySQL支持
    • 腾讯云:支持 Tencent MySQL版,暂不支持 TDSQL-C MySQL兼容
    • 阿里云:支持云数据库RDS MySQL 版