安裝 Instana 操作器
本手冊可交換使用 Kubernetes 和 Red Hat OpenShift 。 Kubernetes 物件的參照也適用於 Red Hat OpenShift。
Instana 操作器必須在 kubectl 外掛程式的協助下安裝。
您必須先配置一組密鑰,然後才能這麼做。
建立映像檔取回密碼
除非您有自己的 Docker 登錄,可鏡映 artifact-public.instana.io 且不需要取回密碼,否則您需要為將在其中安裝 Instana Operator 的名稱空間建立映像檔取回密碼。 請遵循下列步驟:
建立將在其中安裝 Instana 操作器的名稱空間。
kubectl create ns <namespace_name>將 <namespace_name> 取代為您想要的名稱空間名稱,例如
instana-operator。使用下列其中一種方式,在您建立的名稱空間中安裝密碼:
直接建立密鑰。
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 ,則這立即可用。 在此情況下,會在安裝時建立 Issuer 及 Certificate 物件,這會導致 cert-manager 供應並注入憑證。
如需 cert-manager 安裝的相關資訊,請參閱 cert-manager 文件。
使用自訂憑證
建議您使用 cert-manager。 不過,如果您偏好自行佈建憑證,則可以這麼做。 密鑰必須包含下列項目:
ca.crttls.crttls.key
憑證 (tls.crt) 必須包含下列 DNS 名稱:
instana-operator.<namespace>.svcinstana-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 欄位。
產生
values檔案,如下所示:kubectl instana operator template --output-dir /tmp --values values.yaml將下列幾行新增至
values檔案:imagePullSecrets: - name: <image_pull_secret>附註: 將 <image_pull_secret> 取代為您在 建立映像檔取回密碼 區段中建立的映像檔取回密碼。
請參閱下列範例
values檔案:image: registry: my.registry.com imagePullSecrets: - name: my-registry-secret套用
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 的容錯。 |