集群版安装

北极星支持高可用的集群安装架构模型,支持多级的容灾架构,适用于用户在生产环境上使用北极星。

集群版控制面无状态化,通过DB以及Redis存储资源信息以及相关状态数据。

集群版安装 - 图1

下载软件包

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

安装数据库

安装MySQL

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

MySQL版本支持

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

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

安装完MySQL后,需要执行数据导入,解压源码包并执行导入:

第一次安装北极星

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

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

  1. unzip polaris-$version.zip
  2. cd polaris-$version
  3. 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配置文件:

  1. bind 0.0.0.0
  2. protected-mode no

修改后重启Redis生效。

使用 Linux 安装

安装服务端

安装控制面

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

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

  1. # 存储配置
  2. store:
  3. # 数据库存储插件
  4. name: defaultStore
  5. option:
  6. master:
  7. dbType: mysql
  8. dbName: polaris_server
  9. dbAddr: ##数据库地址,格式为ip:port##
  10. dbUser: ##数据库用户名##
  11. dbPwd: ##数据库密码##

开启自动注册:修改polaris-server.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:

  1. bootstrap:
  2. polaris_service:
  3. # 设置为true代表启用自动注册
  4. enable_register: true
  5. # 填入数据库地址,用于获取当前节点ip信息
  6. probe_address: ##数据库地址##

配置Redis参数:修改polaris-server.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。

  1. healthcheck:
  2. checkers:
  3. - name: heartbeatRedis
  4. option:
  5. #填入redis的IP以及端口
  6. kvAddr: ##REDIS_ADDR##
  7. #填入redis的密码
  8. kvPasswd: ##REDIS_PWD##
  9. maxIdle: 200
  10. idleTimeout: 120s
  11. connectTimeout: 200ms
  12. msgTimeout: 200ms
  13. concurrency: 200

启动polaris-server:

  1. bash ./tool/start.sh

安装控制台

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

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

  1. polarisServer:
  2. address: "${polaris-server的IP地址}:8090"

启动polaris-console:

  1. bash ./tool/start.sh

安装可选功能

安装监控组件

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

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

  1. - job_name: 'prometheus'
  2. static_configs:
  3. - targets: ['localhost:9090']
  4. http_sd_configs:
  5. - url: http://${polaris的IP地址}:9000/prometheus/v1/clients
  6. honor_labels: true

启动prometheus:

  1. nohup ./prometheus --web.enable-lifecycle --web.enable-admin-api >> prometheus.out 2>&1 &

修改控制台配置:进入polaris-console的安装目录,打开polaris-console.yaml文件,修改monitorServer的地址,将原来的127.0.0.1:9090替换成prometheus的监听地址。

  1. monitorServer:
  2. address: "${prometheus的IP地址}:9090"

重启控制台:进入polaris-console的安装目录,执行以下语句重启。

  1. bash ./tool/stop.sh
  2. bash ./tool/start.sh

安装分布式限流组件

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

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

polaris-limiter多节点需要通过myid保证顺序,关于myid的设置:

  • 如果是安装单节点的 polaris-limiter,myid 设置为 1 即可;
  • 如果是安装多节点的 polaris-limiter,每个节点的 myid 必须保证唯一。
  1. registry:
  2. enable: true
  3. polaris-server-address: { 北极星服务端 grpc 协议地址 }
  4. name: polaris.limiter
  5. namespace: Polaris
  6. health-check-enable: true
  7. api-servers:
  8. - name: http
  9. option:
  10. ip: 0.0.0.0
  11. port: 8100
  12. - name: grpc
  13. option:
  14. ip: 0.0.0.0
  15. port: 8101
  16. limit:
  17. myid: { 服务端节点唯一标识信息,int 类型}

启动polaris-limiter:

  1. bash ./tool/start.sh
  2. bash ./tool/p.sh

使用 K8s 安装

安装服务端

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

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

  1. # 存储配置
  2. store:
  3. # 数据库存储插件
  4. name: defaultStore
  5. option:
  6. master:
  7. dbType: mysql
  8. dbName: polaris_server
  9. dbAddr: ##数据库地址,格式为ip:port##
  10. dbUser: ##数据库用户名##
  11. dbPwd: ##数据库密码##

开启自动注册:修改02-polaris-server-config.yaml里面的服务自注册配置,将enable_register改成true,并填入probe_address:

  1. bootstrap:
  2. polaris_service:
  3. # 设置为true代表启用自动注册
  4. enable_register: true
  5. # 填入数据库地址,用于获取当前节点ip信息
  6. probe_address: ##数据库地址##

配置Redis参数:修改02-polaris-server-config.yaml里面的healthcheck配置,去掉heartbeatMemory相关配置,并放开heartbeatRedis相关配置。

  1. healthcheck:
  2. checkers:
  3. - name: heartbeatRedis
  4. option:
  5. #填入redis的IP以及端口
  6. kvAddr: ##REDIS_ADDR##
  7. #填入redis的密码
  8. kvPasswd: ##REDIS_PWD##
  9. maxIdle: 200
  10. idleTimeout: 120s
  11. connectTimeout: 200ms
  12. msgTimeout: 200ms
  13. concurrency: 200

执行安装

  1. kubectl create -f 00-polaris-namespace-config.yaml
  2. kubectl create -f 01-polaris-console-config.yaml
  3. kubectl create -f 02-polaris-server-config.yaml
  4. kubectl create -f 03-polaris-server.yaml

安装可选功能

安装监控组件

  1. kubectl create -f 04-prometheus.yaml

修改polaris-console-config的ConfigMap,修改monitorServer的地址,将原来的127.0.0.1:9090替换成prometheus的K8S服务域名。

  1. monitorServer:
  2. address: "${prometheus的服务域名}:9090"

安装分布式限流组件

  1. kubectl create -f 05-polaris-limiter-config.yaml
  2. kubectl create -f 06-polaris-limiter.yaml

安装后验证

登录控制台的默认登录账户信息。

  1. 用户:polaris
  2. 密码:polaris

访问http://{控制台IP}:8080,可以看到登录页面,登录后可以成功看到北极星服务治理控制台内容。

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

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

服务端与控制台版本对应表

北极星服务端北极星控制台 版本的对应关系

Polaris-Server VersionPolaris-Console Version
v1.13.xv1.10.x
v1.12.xv1.9.x
v1.11.xv1.8.x
v1.10.0v1.7.3
v1.9.0v1.6.1
v1.8.0v1.6.0
v1.7.0v1.5.8
v1.6.0v1.4.0
v1.5.0v1.3.2
v1.4.0v1.3.1
v1.3.2v1.3.1
v1.3.1v1.3.0
v1.3.0v1.2.1
v1.2.2v1.2.1
v1.2.1v1.2.1
v1.2.0v1.2.0
v1.0.0v1.0.0