K8s 配置同步(Beta)

提示

该文章仅适用于北极星服务端版本 >= 1.18.0, polaris-controller 版本 >= 1.7.0

支持两种 K8s ConfigMap 同步模式:

  • all:全量同步配置。将 K8s ConfigMap 全部同步到北极星。
  • demand:按需同步配置。默认不会将 K8s ConfigMap 同步到北极星,需要在 Namespace 或者 ConfigMap 上添加北极星的 annotation。

注解

注解名称 注解描述
polarismesh.cn/sync 是否同步这个配置到 polarismesh。true 同步,false 不同步,默认不同步

使用指南

controller 配置解析

configSync:
  # 是否开启配置同步
  enable: true
  # 北极星服务端地址
  serverAddress: #POLARIS_HOST#
  # 北极星开启鉴权时需要配置
  accessToken: #POLARIS_TOKEN#
  # 是否开启删除操作,即允许删除 ConfigMap 或者北极星上的配置文件
  allowDelete: false
  # 配置同步方向: kubernetesToPolaris|polarisToKubernetes|both
  # kubernetesToPolaris: 只能将 ConfigMap 同步到北极星中
  # polarisToKubernetes: 只能将北极星配置文件中带有 internal-sync-to-kubernetes: true 标签的配置文件同步到 ConfigMap
  # both: 上述两种同时开启
  syncDirection: both
  defaultGroup: "#CLUSTER_NAME#"

全量同步服务

以全量同步配置的模式启动 polaris-controller,将 K8s ConfigMap 全部同步到北极星,则 polaris-controller 的启动配置如下:

polaris-controller 启动配置文件:configmap.yaml

apiVersion: v1
kind: ConfigMap
data:
  mesh: |-
    ...
    configSync
      mode: "all"
    ...    

按需同步配置

以按需同步配置的模式启动 polaris-controller,默认不会将 K8s ConfigMap 同步到北极星,则 polaris-controller 的启动配置如下:

polaris-controller 启动配置文件:configmap.yaml

apiVersion: v1
kind: ConfigMap
data:
  mesh: |-
    ...
    configSync
      mode: "demand"
    ...    

如果需要将某个 Namespace 中的全部 ConfigMap 同步到北极星,请在 Namespace 上添加北极星的 annotation,配置方式如下:

apiVersion: v1
kind: Namespace
metadata:
  name: default
  annotations:
    polarismesh.cn/sync: "true"

如果需要将某个 ConfigMap 同步到北极星,请在 ConfigMap 上添加北极星的 annotation,配置方式如下:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: default
  name: test
  annotations:
    polarismesh.cn/sync: "true"

如果需要将某个 Namespace 中的 ConfigMap 同步到北极星并且排除某个 ConfigMap,配置方式如下:

apiVersion: v1
kind: Namespace
metadata:
  name: default
  annotations:
    polarismesh.cn/sync: "true"

---
apiVersion: v1
kind: ConfigMap
metadata:
  namespace: default
  name: test
  annotations:
    polarismesh.cn/sync: "false"