安裝 Instana 操作器

本手冊可交換使用 Kubernetes 和 Red Hat OpenShift 。 Kubernetes 物件的參照也適用於 Red Hat OpenShift。

Instana 操作器必須在 kubectl 外掛程式的協助下安裝。

您必須先配置一組密鑰,然後才能這麼做。

建立映像檔取回密碼

除非您有自己的 Docker 登錄,可鏡映 artifact-public.instana.io 且不需要取回密碼,否則您需要為將在其中安裝 Instana Operator 的名稱空間建立映像檔取回密碼。 請遵循下列步驟:

  1. 建立將在其中安裝 Instana 操作器的名稱空間。

    kubectl create ns <namespace_name>
    

    <namespace_name> 取代為您想要的名稱空間名稱,例如 instana-operator

  2. 使用下列其中一種方式,在您建立的名稱空間中安裝密碼:

    • 直接建立密鑰。

      kubectl create secret docker-registry <secret-name> \
          --namespace=<namespace_name> \
          --docker-username=_ \
          --docker-password=<agent_key> \
          --docker-server=artifact-public.instana.io
      
      • <namespace_name> 取代為將在其中安裝 Instana Operator 的名稱空間名稱。
      • <agent_key> 取代為代理程式金鑰。
      • <secret-name> 取代為您想要的密鑰名稱。
    • 建立密鑰的 YAML ,而不套用 YAML。 會列印密鑰而不建立。

      kubectl create secret docker-registry <secret-name> \
          --namespace=<namespace_name> \
          --docker-username=_ \
          --docker-password=<agent_key> \
          --docker-server=artifact-public.instana.io \
          --dry-run=client \
          --output=yaml
      

      然後,建立密碼。

      kubectl create -f <secret-file-name.yaml> --namespace <namespace>
      

建立許可 Webhook 的 TLS 密鑰

運算子隨附用於預設、驗證及版本轉換的許可 Webhook。 許可 Webhook 需要 TLS ,亦即, TLS 憑證必須備妥。

確保 kubernetes.io/tls 類型的 TLS 密鑰 instana-operator-webhook 存在。 您可以選擇使用憑證管理程式或自訂憑證。

使用 cert-manager

依預設,會使用 cert-manager 來自動供應密鑰。 如果叢集上已安裝 cert-manager ,則這立即可用。 在此情況下,會在安裝時建立 IssuerCertificate 物件,這會導致 cert-manager 供應並注入憑證。

如需 cert-manager 安裝的相關資訊,請參閱 cert-manager 文件

使用自訂憑證

建議您使用 cert-manager。 不過,如果您偏好自行佈建憑證,則可以這麼做。 密鑰必須包含下列項目:

  • ca.crt
  • tls.crt
  • tls.key

憑證 (tls.crt) 必須包含下列 DNS 名稱:

  • instana-operator.<namespace>.svc
  • instana-operator.<namespace>.svc.<clusterDomain>
  • <namespace> 取代為將在其中安裝 Instana Operator 的名稱空間名稱。
  • <clusterDomain> 取代為將在其中安裝 Instana Operator 的叢集的網域名稱。

若要建立 kubernetes.io/tls類型的 TLS 密鑰 instana-operator-webhook ,請使用下列一種方式:

  • 直接建立密鑰。

    kubectl create secret generic instana-operator-webhook \
        --type=kubernetes.io/tls \
        --from-file=tls.key=path/to/tls.key \
        --from-file=tls.crt=path/to/tls.crt \
        --from-file=ca.crt=path/to/ca.crt
    
  • 建立密鑰的 YAML ,而不套用。 會列印密鑰而不建立。

    kubectl create secret generic instana-operator-webhook \
        --type=kubernetes.io/tls \
        --from-file=tls.key=path/to/tls.key \
        --from-file=tls.crt=path/to/tls.crt \
        --from-file=ca.crt=path/to/ca.crt \
        --dry-run=client \
        --output=yaml
    

    然後,建立密碼。

    kubectl create -f <secret-file-name.yaml>
    

建立及配置值檔案

values 檔包含 Instana 操作器的配置。 此機制與 Helm使用的機制相同。

除了 values 檔案中的預設配置之外,您還需要使用您在 建立映像檔取回密碼 區段中建立的映像檔取回密碼來更新 imagePullSecrets 欄位。

  1. 產生 values 檔案,如下所示:

    kubectl instana operator template --output-dir /tmp --values values.yaml
    
  2. 將下列幾行新增至 values 檔案:

    imagePullSecrets:
    - name: <image_pull_secret>
    

    附註:<image_pull_secret> 取代為您在 建立映像檔取回密碼 區段中建立的映像檔取回密碼。

    請參閱下列範例 values 檔案:

    image:
      registry: my.registry.com
    
    imagePullSecrets:
      - name: my-registry-secret
    
  3. 套用 values 檔案的變更,如下所示:

    kubectl instana operator apply --values /tmp/values.yaml
    

安裝 Instana 操作器

您現在可以使用下列兩個選項之一,繼續安裝 Instana 操作器。

直接套用資訊清單

此選項會建立 CRD ,並在 Kubernetes 叢集上安裝操作器部署及相關聯的資源。

附註: 如果您搭配使用 cert-manager 與自訂叢集網域 (亦即,不是 cluster.local) ,或您自己產生憑證,則必須特別小心。

  • 若要在現行名稱空間中安裝 Instana 操作器,請執行下列指令:

    kubectl instana operator apply
    
  • 若要在指定的名稱空間 (例如 instana-operator) 中安裝 Instana 操作器,請執行下列指令:

    kubectl instana operator apply --namespace=instana-operator
    
  • 若要使用自訂憑證在現行名稱空間中安裝 Instana 操作器,請執行下列指令:

    kubectl instana operator apply --ca-bundle-base64=<base64-encoded ca.crt file>
    

    <base64-encoded ca.crt 檔案> 取代為 base64-encoded CA 組合檔名。

先呈現資訊清單,然後再套用資訊清單

此選項會將資訊清單呈現給 stdout ,或先將它們寫入特定目錄中的檔案。

  • 若要將 YAML 檔案寫入指定的目錄,請執行下列指令:

    kubectl instana operator template --output-dir <dir>
    
  • 若要使用自訂叢集網域來呈現 YAML 檔案,請執行下列指令:

    kubectl instana operator template --cluster-domain=my-domain.local
    
  • 若要使用自訂憑證來呈現 YAML 檔案,請執行下列指令:

    kubectl instana operator template --ca-bundle-base64=<base64-encoded ca.crt file>
    

    <base64-encoded ca.crt 檔案> 取代為 base64-encoded CA 組合檔名。

然後,您可以使用 直接套用資訊清單中的指令來套用資訊清單。

選用項目: 使用進階操作員配置

安裝 Instana 操作器之後,您可以透過更新您在 建立及配置值檔案 小節中建立的 values YAML 檔,來配置 Instana 操作器。

如需您可以配置的可用選項,請參閱 Instana 操作器配置選項 一節。

更新 values YAML 檔案之後,請如下所示套用變更:

kubectl instana operator apply --values /tmp/values.yaml

Instana 操作器配置選項

您可以配置的可用選項列在 Instana 操作器配置選項 表格中。

索引鍵 類型 預設值 說明
fullnameOverride 字串 "" 置換圖表的完整名稱 (instana-operator)。
image.registry 字串 "artifact-public.instana.io" 要使用的映像檔登錄。
image.repository 字串 "infrastructure/instana-operator" 要使用的映像檔儲存庫。
image.tag 字串 kubectl 外掛程式自動設定 要使用的映像檔標籤。
imagePull原則 字串 "IfNotPresent" 映像檔取回原則。
imagePullSecrets 清單 [{"name":"instana-registry"}] 映像檔取回密碼的清單。
installCRDs bool true 指定是否安裝 CRD。
nameOverride 字串 "" 置換圖表的名稱 (instana-operator)。
operator.affinity 物件 {} 操作器 Pod 的親緣性。
operator.clusterDomain 字串 "" 指定自訂叢集網域。
operator.enabled bool true 如果為 true ,則會安裝操作器部署。
operator.extraArgs 清單 [] 運算子處理程序的其他 CLI 引數。
operator.extraEnv 清單 [] 操作員處理程序的其他環境變數。
operator.nodeSelector 物件 {} 操作器 Pod 的節點選取器。
operator.replicas int 1 要建立之抄本的數目。
operator.resources 物件 {} 操作器 Pod 的資源要求及限制。
operator.securityContext 物件 {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} 操作器儲存器的安全環境定義。
operator.tolerations 清單 [] 操作員 Pod 的容錯。
webhook.affinity 物件 {} 操作器 Pod 的親緣性。
webhook.caBundleBase64 字串 "" Webhook 的 Base64-encoded CA 組合。
webhook.enabled bool true 如果為 true ,則會安裝 Webhook 部署。
webhook.extraArgs 清單 [] 運算子處理程序的其他 CLI 引數。
webhook.extraEnv 清單 [] 操作員處理程序的其他環境變數。
webhook.nodeSelector 物件 {} 操作器 Pod 的節點選取器。
webhook.replicas int 1 要建立之抄本的數目。
webhook.resources 物件 {} 操作器 Pod 的資源要求及限制。
webhook.securityContext 物件 {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true} 操作器儲存器的安全環境定義。
webhook.tolerations 清單 [] 操作員 Pod 的容錯。