跳转至

微服务引擎集群初始化组件

本教程旨在补充需要手工 单独在线安装 微服务引擎集群初始化组件的的场景。下文出现的 skoala-init 是微服务引擎集群初始化组件的内部开发代号,代指微服务引擎集群初始化组件。

微服务引擎集群初始化组件部署结构:

image

蓝色框内的 chart 即 skoala-init 组件,需要安装在工作集群。安装 skoala-init 组件之后即可以使用微服务引擎的各项功能,例如创建注册中心、网关实例等。另外需要注意, skoala-init 组件依赖 DCE 5.0 可观测模块的 insight-agent 组件提供指标监控和链路追踪等功能。 如您需要使用该项功能,则需要事先安装好 insight-agent 组件, 具体步骤可参考安装组件 insight-agent

Note

  • 如果安装 skoala-init 之前没有事先安装 insight-agent,则不会安装 service-monitor
  • 如果需要安装 service-monitor,请先安装 insight-agent,然后再安装 skoala-init

在线安装

skoala-init 是微服务引擎所有的组件 Operator:

  • 仅安装到工作集群即可
  • 包含组件有:skoala-agent、nacos-operator、sentinel-operator、seata-operator、contour-provisioner、gateway-api-adminssion-server
  • 未安装时,创建注册中心和网关时会提示缺少组件

由于 Skoala 涉及的组件较多,我们将这些组件打包到同一个 Chart 内,也就是 skoala-init, 所以我们应该在用到微服务引擎的工作集群安装好 skoala-init。此安装命令也可用于更新该组件。

配置好 Skoala 仓库,即可查看和获取到 skoala-init 的应用 chart。

helm repo add skoala-release https://release.daocloud.io/chartrepo/skoala
helm repo update
$ helm search repo skoala-release/skoala-init --versions
NAME                        CHART VERSION   APP VERSION DESCRIPTION
skoala-release/skoala-init  0.28.1          0.28.1      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.28.0          0.28.0      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.27.2          0.27.2      A Helm Chart for Skoala init, it includes Skoal...
skoala-release/skoala-init  0.27.1          0.27.1      A Helm Chart for Skoala init, it includes Skoal...
......

执行以下命令,注意对应的版本号:

helm upgrade --install skoala-init --create-namespace -n skoala-system --cleanup-on-fail \
    skoala-release/skoala-init \
    --version 0.28.1

查看 Pod 是否启动成功:

$ kubectl get pods -n skoala-system
NAME                                   READY   STATUS    RESTARTS        AGE
contour-provisioner-54b55958b7-5ltng                  1/1     Running     0          2d6h
gateway-api-admission-patch-bk7c8                     0/1     Completed   0          2d6h
gateway-api-admission-pwhdh                           0/1     Completed   0          2d6h
gateway-api-admission-server-77545d74c4-v6fpr         1/1     Running     0          2d6h
nacos-operator-6d94bdccc8-wx4w5                       1/1     Running     0          2d6h
seata-operator-f556d989d-8qrf8                        1/1     Running     0          2d6h
sentinel-operator-6fb9dc98f4-d44k5                    1/1     Running     0          2d6h
skoala-agent-54d4df7897-7p4pz                         1/1     Running     0          2d6h

除了通过终端安装,也可以在 容器管理-> Helm 应用 内找到 skoala-init 进行安装。

image

在线升级

由于 skoala-init 组件安装在工作集群中,所以需要在每个工作集群中各执行一次下列操作。

  1. 备份原有参数

    helm get values skoala-init -n skoala-system -o yaml > skoala-init.yaml
    
  2. 添加微服务引擎的 Helm 仓库

    helm repo add skoala https://release.daocloud.io/chartrepo/skoala
    
  3. 添加微服务引擎的 Helm 仓库

    helm repo update
    
  4. 删除 gateway-api 相关 job

    kubectl delete jobs gateway-api-admission gateway-api-admission-patch -n skoala-system
    
  5. 执行 helm upgrade 命令

    helm upgrade --install --create-namespace -n skoala-system skoala-init skoala/skoala-init --version=0.28.1 --set nacos-operator.image.tag=v0.28.1 --set skoala-agent.image.tag=v0.28.1 --set sentinel-operator.image.tag=v0.28.1 --set seata-operator.image.tag=v0.28.1 -f skoala-init.yaml
    

    Note

    需要将 versionnacos-operator.image.tagskoala-agent.image.tagsentinel-operator.image.tagseata-operator.image.tag 五个参数的值调整为您需要升级到的微服务引擎的版本号。

  6. 根据自身需要,手动更新需要升级的网关相关 CRD 文件。

    # projectcontour 相关 crd
    kubectl apply -f skoala-init/charts/contour-provisioner/crds/contour.yaml
    # gateway-api 相关 crd
    kubectl apply -f skoala-init/charts/contour-provisioner-prereq/crds/gateway-api.yaml
    

离线升级

参考微服务引擎管理组件的离线升级方式

卸载微服务引擎集群初始化组件

Note

  • nacos sentinel seata 的 crd 会随之卸载,特别注意,相关 cr 会被删除。
  • 网关相关 crd 不会被随之卸载,如需清除需手动处理,特别注意,清除 crd 时相关 cr 会被删除。
网关相关 crd 清单

contourconfigurations.projectcontour.io
contourdeployments.projectcontour.io
extensionservices.projectcontour.io
gatewayclasses.gateway.networking.k8s.io
gateways.gateway.networking.k8s.io
grpcroutes.gateway.networking.k8s.io
httpproxies.projectcontour.io
httproutes.gateway.networking.k8s.io
referencegrants.gateway.networking.k8s.io
tcproutes.gateway.networking.k8s.io
tlscertificatedelegations.projectcontour.io
tlsroutes.gateway.networking.k8s.io
udproutes.gateway.networking.k8s.io

helm uninstall skoala-init -n skoala-system

手动清理 gateway-api 相关 job

kubectl delete jobs gateway-api-admission gateway-api-admission-patch -n skoala-system

手动清理网关相关 crd

kubectl delete crds `kubectl get crds | grep -E "projectcontour.io|gateway.networking.k8s.io" | awk '{print $1}'`

评论