集群版安装

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

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

下载软件包

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

下载软件包

安装数据库

安装MySQL

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

MySQL版本支持

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

使用 Linux 安装

安装服务端

安装控制面

下载软件包:下载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-server:

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的监听地址

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

启动polaris-console:

bash ./tool/start.sh

安装可选功能

安装监控组件

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

修改prometheus配置:打开 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.yaml文件,修改monitorServer的地址,将原来的127.0.0.1:9090替换成prometheus的监听地址。

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

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

bash ./tool/stop.sh
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 必须保证唯一。
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:

bash ./tool/start.sh
bash ./tool/p.sh

使用 K8s 安装

安装服务端

下载软件包:下载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

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

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

安装分布式限流组件

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

安装后验证

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

用户: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"
    }
}'

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

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

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