通过Helm安装

描述通过Helm安装云原生集群优化平台(Cluster Optimizer)的详细步骤.

本页描述了通过Helm安装Cluster Optimizer的详细步骤.

前置条件

  • Mysql数据库,版本5.7及以上
  • Kubernetes集群,版本1.22及以上
  • Kubernetes集群的证书,能够创建wiseinf-system名称空间以及在此名称空间下创建Deployment、ConfigMap、Service等资源
  • Helm,建议3.0.0及以上

部署应用

  1. 通过如下命令添加Helm仓库cluster-optimizer

        helm repo add cluster-optimizer https://wiseinf.github.io/cluster-optimizer/
    
  2. 通过如下命令更新仓库:

        helm repo update
    
  3. 通过如下命令查看仓库cluster-optimizer包含的Charts:

        helm search repo cluster-optimizer
    

    输出如下:

    NAME                                    CHART VERSION   APP VERSION     DESCRIPTION                       
    cluster-optimizer/cluster-optimizer     0.1.0           1.1.0           A Helm chart for cluster optimizer
    

    可知,仓库中包括一个名为cluster-optimizer/cluster-optimizer的Chart。

  4. 通过如下命令安装demo Chart:

        helm install demo cluster-optimizer/cluster-optimizer -n wiseinf-system --create-namespace
    

    其中,-n wiseinf-system表示在名称空间wiseinf-system下安装demo, 参数--create-namespace表示创建此名称空间,输出如下:

    NAME: demo
    LAST DEPLOYED: Thu Mar 28 15:54:42 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    ...
    

    说明Helm已经成功部署demo Chart。

  5. 通过如下命令检查optimizer是否正常运行:

        kubectl get pods -n wiseinf-system
    

    输出如下:

    NAME                                                  READY   STATUS    RESTARTS   AGE
    cluster-optimizer-demo-7bfdfdf954-2cgqb               2/2     Running   0          108s
    cluster-optimizer-demo-optimizerdb-5d6cdb6b9f-94lc7   1/1     Running   0          108s
    

    从输出可以看到,Helm部署了两个Pod,其中cluster-optimizer-demo-7bfdfdf954-2cgqb是 Cluster Optimizer的Pod, cluster-optimizer-demo-optimizerdb-5d6cdb6b9f-94lc7是其依赖的Mysql数据库。

    注意:若期望采用已部署的数据库,请参见使用已部署数据库

  6. 通过如下命令创建 port-forward 来访问 optimizer 服务:

        kubectl port-forward svc/optimizer 8000:80  -n wiseinf-system
    
  7. 打开浏览器,访问地址http://localhost:8000/.

  8. 若能够看到 Cluster Optimizer首页,则应用Cluster Optimizer成功部署.

  9. 通过命令可以删除demo Chart:

    helm uninstall demo
    

使用已部署数据库

若您希望使用已部署数据库,使用新的用户名和密码来访问Cluster Optimizer,请参考如下步骤:

  1. 打开命令行控制台,通过下述命令将安装脚本克隆到本地。

        git clone https://github.com/wiseinf/setup.git
    

    1,若使用Gitee仓库地址,则需将上述命令中的https://github.com/wiseinf/setup.git替换为https://gitee.com/wiseinf/setup.git

    2,后续步骤假设已将setup库克隆到用户主目录,若未克隆到用户主目录,则需要根据实际情况调整命令中的文件路径。

  2. 在命令行控制台执行mysql命令登录到Mysql数据库,其中127.0.0.1为Mysql数据库主机地址,您需要替换成您使用的实际地址。

        mysql -h127.0.0.1 -uroot
    

    注意: 如果您使用远程数据库,请确保可以从 Kubernetes 集群访问该数据库。

  3. 创建数据库schema optconf(优化配置库) 和 optdata(优化数据库)。

        mysql> source ~/setup/cluster-optimizer/sql/create_database.sql
    

    注意:请关注数据丢失风险。若mysql数据库中已经存在optconf库和optdata库,则上述脚本会先删除库,然后创建新库。

  4. 创建新的用户名和密码,并为其设置相应权限。脚本中用户名是optimizer,密码是Optimizer~,您可以按照您的需求调整。

        mysql> source ~/setup/cluster-optimizer/sql/create_user.sql
    
  5. 创建文件values.yaml,编辑其内容,如下:

    optimizedb:
      conf: 
        dbHost: 127.0.0.1
        schema: optconf
        port: "3306"
        user: optimizer
        password: Optimizer~
      data:
        dbHost: 127.0.0.1
        schema: optdata
        port: "3306"
        user: optimizer
        password: Optimizer~
    

    其中,dbHost是数据库地址,schema是数据库Schema,port是端口,userpassword分别是用户名和密码。

  6. 通过如下命令安装demo Chart:

        helm install demo cluster-optimizer/cluster-optimizer -f values.yaml --namespace wiseinf-system
    

    也可以通过升级原部署的方式来调整数据库的设置:

        helm upgrade demo cluster-optimizer/cluster-optimizer -f values.yaml --namespace wiseinf-system
    
  7. 重启应用,检查Cluster Optimizer Pod的日志输出(如下所示),查看数据库配置信息是否与您的预期一致。

    {
        ...
        "optconf": {
            "dataSource": {
                "name": "optimizer:Optimizer~@tcp(127.0.0.1:3306)/optconf?createDatabaseIfNotExist=true\u0026charset=utf8mb4\u0026parseTime=true\u0026loc=Local",
                "maxOpenConns": 10
            }
        },
        "optdata": {
            "dataSource": {
                "name": "optimizer:Optimizer~@tcp(127.0.0.1:3306)/optdata?createDatabaseIfNotExist=true\u0026charset=utf8mb4\u0026parseTime=true\u0026loc=Local",
                "maxOpenConns": 10
            }
        },
        ...
    }
    

    同时,也检查是否有数据库相关报错。若没有相关报错,则证明已使用新的数据库。

下一步:导入集群

下一步,您可以添加一个集群,查看其相关优化建议。详见: