使用脚本安装定制版

shce.sh 脚本可协助您安装自托管定制版( Kubernetes 或 Red Hat OpenShift Container Platform )。 该工具基于 Helm 图表和数值,支持根据您的需求进行定制化安装。 该脚本仅支持 x86_64 和 ARM64 架构。

先决条件

确保满足下列先决条件:

  • Helm 已安装用于部署 Helm 图表。 安装 Helm:

    curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
     
  • 集群上已设置默认存储类。 若未指定存储类,数据存储的安装将失败。 Instana 需要 ReadWriteMany (RWX)或 ReadWriteOnce (RWO)存储空间用于原始跨度和监控数据。 要验证默认存储类:

    kubectl get storageclass -o=jsonpath='{.items[?(@.metadata.annotations.storageclass\.kubernetes\.io/is-default-class=="true")].metadata.name}'
     

    如果未设置默认存储类,请运行:

    kubectl patch storageclass <storageclass_name> -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
     
  • Kubernetes 版本

    已安装 Kubectl 1.25 或更高版本。

    要安装最新稳定版本:

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
     

    验证您的 kubectl 安装:

    kubectl version --client=true
     

    Kubernetes 版本必须大于 1.25。 检查服务器版本:

    kubectl version
     
  • 要在 Red Hat OpenShift Container Platform (OCP)上部署Custom Edition,需要安装 OpenShift 命令行工具(oc)以及OCP 4.13 或更高版本。

    要检查 Red Hat OpenShift Container Platform 版本:

    oc version
     
  • yq 可用于解析 YAML 文件。

    在 Mac 上 yq 安装(Homebrew):

    brew install yq
     

    要在 Ubuntu 或 Debian 上 yq 安装:

    sudo snap install yq
     

    要检查版本 yq

    yq --version
     

过程

  1. 克隆 Git 仓库,该仓库包含自定义版安装所需的文件:

    git clone https://github.com/instana/self-hosted-custom-edition-setup.git
     
  2. 导航至您克隆的 Git 存储库中的以下目录:

    cd ./self-hosted-custom-edition-setup/deploy
     
  3. 创建配置环境文件:

    vim config.env
     

    以下示例展示了输出样本:

    DOWNLOAD_KEY=<download_key>
    AGENT_KEY=<agent_key>
    SALES_KEY=<sales_key>
    CLUSTER_TYPE=ocp
    INSTANA_UNIT_NAME=unit0
    INSTANA_TENANT_NAME=tenant0
     
    参数 描述
    下载密钥 用于从 Instana 存储库下载 Instana 代理程序包的验证密钥。
    代理密钥 用于通过 Instana 后端验证代理身份,并将代理关联至特定租户的关键凭证。
    销售密钥 销售团队提供的密钥。
    集群类型 表示集群的类型
    INSTANA_UNIT_NAME Instana 中的参数,用于表示代理的逻辑分组。
    INSTANA_租户名称 Instana 中的参数,用于标识与某个代理相关的租户或组织。
    {: 表1. config.env 参数" 标题位置="顶部"}
  4. 为 Instana 租户和单元设置用户名和密码:

    
    vim values/unit/custom-values.yaml
     

    以下示例展示了输出样本:

    initialAdminUser: admin@instana.local
    initialAdminPassword: "mypass"
    properties: []
    componentConfigs: []
    priorityClassName: ""
    env: []
    coreName: "instana-core"
    coreNamespace: "instana-core"
     
    参数 描述
    initialAdminUser Instana 监控代理的初始管理员用户。
    initialAdminPassword Instana 监控代理的初始管理员密码。
    属性 一个空数组,用于存储与 Instana 监控代理相关的附加属性。
    componentConfigs 一个空数组,用于存储 Instana 监控代理中各个组件的配置详情。
    priorityClassName 将 Instana 监控代理的优先级类名称设置为空字符串,表示未分配特定优先级类。
    env 用于存储 Instana 监控代理环境变量的空数组。
    coreName Instana 监控代理的核心组件名称。
    coreNamespace Instana 监控代理核心组件的命名空间。

    有关在 中设置值的更多信息, custom-values.yaml请参阅 README

  5. 您可以根据需求运行以下命令:

    • 安装数据存储库和 Instana 后端:
    ./shce.sh apply
     
    • 卸载数据存储和 Instana 后端:
    ./shce.sh delete
     
    • 仅安装后端组件(操作员、核心、单元):
    ./shce.sh backend apply
     
    • 仅卸载后端组件(操作员、核心、单元):
    ./shce.sh backend delete
     
    • 仅安装数据存储:
    ./shce.sh datastores apply
     
    • 安装独立数据存储,例如: Kafka 或 Postgres :
    ./shce.sh datastores apply kafka
    ./shce.sh datastores apply postgres
     
    • 卸载单个数据存储,例如: Kafka 或 Postgres :
    ./shce.sh datastores delete kafka
    ./shce.sh datastores delete postgres
     

    要获取有关 shce.sh 命令的帮助:

    ./shce.sh help
     

    有关脚本 shce.sh 的更多信息,请参阅 README

  6. 添加负载均衡器详细信息及 DNS ,请参阅设置负载均衡器和 DNS