在 OpenShift 上安裝主機代理程式

支援的版本

Instana 支援 生命週期階段 文件中說明的 Red Hat OpenShift 版本。

Instana 主機代理程式支援受管理 OpenShift on IBM Cloud OpenShift (ROKS)Microsoft Azure Red Hat® OpenShift® (ARO)Red Hat® OpenShift® Service on AWS (ROSA)。 遵循此安裝手冊,在這些受管理 OpenShift 供應項目上安裝 Instana 主機代理程式。

安裝方法

在 OpenShift 上安裝 Instana 代理程式類似於 Kubernetes,但您需要完成一些額外的安全步驟。

您可以使用 操作器Helm ChartYAML 檔案 (DaemonSet),在 OpenShift 叢集裡安裝 instana-agent

選擇適當的安裝方法

對於 OpenShift,建議您使用 操作器來安裝 Instana 代理程式。 此外,請參閱 一般 Kubernetes 文件 ,以取得適當的安裝方法。

安裝方法的現行版本

新版 Operator、 Helm Chart 或 YAML DaemonSet 檔案的發行頻率很高。 若要更新修正程式、改進項目及新增特性的最新更新項目,請確保您正在執行最新版本的 Operator、 Helm Chart 或 YAML DaemonSet 檔案。

您可以在下列位置找到版本資訊:

使用操作器安裝

在 OpenShift 上安裝操作器類似於 Kubernetes,但您需要完成其他安裝方法選項及部分 必要條件 步驟。

在繼續安裝操作器之前,請先完成 必要條件 步驟。

您可以使用下列一種方式來安裝操作器:

必要條件

您需要設定 Instana 代理程式的專案,並配置其許可權。

建立 instana-agent 專案,並設定原則許可權,以確保 instana-agent 服務帳戶位於特許安全環境定義中。 請參閱下列範例指令:

oc login -u system:admin
oc new-project instana-agent
oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent

新安裝 ( 2.x 版以及更新版本)

如果您執行 Instana 代理程式操作器 2.x 版以及更新版本的全新安裝,則不需要其他步驟。

將 1.x 運算子升級至 2.x

如果您將操作器從 1.x 版升級至 2.x,則需要在叢集裡安裝 cert-manager 操作器。 2.x 運算子會將現有 Instana 代理程式 CRD 轉換為其新格式。 如需如何適當地安裝及配置 Cert-Manager 的相關資訊,請參閱 Cert Manager 文件

您必須先將 Instana 代理程式升級至 2.0.9版,其中包括 Webhook 轉換,以將現有代理程式 CR 轉換為較新的格式。 在 2.0.9版之後移除此 Webhook。 轉換完成之後,您可以將 Instana 代理程式重新升級至較新的版本。

使用 OLM 來安裝操作器

  1. OperatorHub.ioOpenShift Container Platform安裝 Instana 代理程式操作器。

  2. 如果您還沒有目標名稱空間,請建立 Instana 代理程式安裝所在的目標名稱空間。 代理程式不需要在與操作器相同的名稱空間中執行。 大部分使用者會建立新的名稱空間 instana-agent ,以執行代理程式。

  3. 遵循 手動安裝操作員 區段中的步驟 4 ,為代理程式建立自訂資源並套用自訂資源。 操作器將從自訂資源中挑選配置,並部署 Instana 代理程式。

配置操作器

Instana 代理程式自訂資源支援與 Instana Helm 圖表完全相同的配置。 如需所有配置參數的詳細清單,請參閱 Helm 圖表配置

解除安裝主機代理程式

  1. 移除自訂資源,以解除安裝 Instana 主機代理程式:

    kubectl delete -f instana-agent.customresource.yaml
    
  2. 執行下列指令來解除安裝操作器:

    kubectl delete -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
    

使用 Helm 圖表安裝

Instana 代理程式 Helm Chart 1.2.0 版及更高版本支援 OpenShift 4.x。

  1. 登入 Instana 使用者介面,然後按一下 其他 > 代理程式 > 安裝 Instana 代理程式 > Kubernetes

    從這個頁面中,您需要 主機代理程式端點代理程式金鑰

  2. 技術 清單中,選取 Helm 圖表

  3. 輸入 叢集 名稱及 代理程式區域 (選擇性地)。

    叢集名稱 (INSTANA_KUBERNETES_CLUSTER_NAME) 是此 DaemonSet 所監視叢集的自訂名稱。

    代理程式區域 (INSTANA_ZONE) 用來 自訂顯示在基礎架構地圖上的區域分組 。 它也會設定叢集的預設名稱。

    所有其他必要參數都會預先移入。

  4. 執行下列指令來安裝 Instana 代理程式。 若要配置安裝,請使用 --set 旗標在指令行上指定值,或使用 -f 旗標向 yaml 檔案提供您的值。

    附註: 如果您想要部署靜態主機代理程式,請在 helm 安裝指令中設定旗標 —set agent.image.name=containers.instana.io/instana/release/agent/static

    kubectl create namespace instana-agent && \
    helm install instana-agent --namespace instana-agent \
    --repo https://agents.instana.io/helm \
    --set agent.key='<your agent key - as described above>' \
    --set agent.endpointHost='<your host agent endpoint - as described above>' \
    --set cluster.name='<your-cluster-name>' \
    --set zone.name='<your-cluster-name>' \
    --set openshift=true \
    instana-agent
    

    如需所有配置參數的詳細清單,請參閱 Instana Helm 圖表

解除安裝主機代理程式

若要解除安裝使用 Helm Chart 安裝的 Instana 主機代理程式,請執行下列指令:

helm uninstall instana-agent

然後,會移除與主機代理程式相關的所有資源。

使用 OpenShift 指令行來安裝

您可以遵循下列步驟,將 Instana 代理程式安裝至 OpenShift :

您可以從公用 GitHub 儲存庫下載一般 instana-agent-openshift.yaml 檔案。 它會以一般預設值從 Helm 圖表 呈現。 個別內容定義為下一個步驟中佈置的空懸錨點。

下載此檔案 ,並檢視最新的 變更日誌

在 YAML 檔案中,您可以看到下列空懸錨點,這些錨點需要取代為實際值:

  • *agentKey: base64-encoded Instana 金鑰,用於將產生的資料傳送至其中的叢集。

    echo YOUR_INSTANA_AGENT_KEY | base64
    
  • *endpointHost: 與安裝相關聯的 IP 位址或主機名稱。

  • *endpointPort: 與安裝相關聯的網路埠。

  • *clusterName: 要指派給 Instana 中叢集的名稱。

  • *zoneName: 要與叢集的節點相關聯的 代理程式區域

如需代理程式端點的其他詳細資料,請參閱 主機代理程式配置

自訂

視您的 OpenShift 環境而定,您可能需要執行一些自訂作業。

如果您無法從 IBM Cloud Container Registry (icr.io) 取回映像檔,則需要新增兩個映像檔串流。 開啟 OpenShift Container Registry,移至 instana-agent 名稱空間,並新增下列映像檔串流:

Name: instana-agent
Image: icr.io/instana/agent

產生的影像串流是 docker-registry.default.svc:5000/instana-agent/instana-agent

Name: leader-elector
Image: icr.io/instana/leader-elector

產生的影像串流是 docker-registry.default.svc:5000/instana-agent/leader-elector:0.5.4

在 YAML 中使用個別的新映像檔串流。

透過使用 node-selector ,您可以指定 instana-agent DaemonSet 的部署位置。 請注意,每個工作者主機都需要有 Instana 代理程式。 如果您配置節點選取元,請檢查您是否可以看到與 instana-agent.yaml中定義的專案 nodeSelectornodeSelector 有任何衝突。

透過使用 ConfigMap,您可以設定適當監視所需的代理程式配置。

密鑰

如需詳細資料,請參閱 Kubernetes 密碼

檢查主機代理程式的狀態

安裝主機代理程式之後,您可以在 Instana 使用者介面或主機上檢查主機代理程式的狀態。 如需相關資訊,請參閱 檢查主機代理程式的狀態

常見問題 (FAQ)

為何在 OpenShift 3.9上代理程式 Pod 排程失敗?

在 OpenShift 3.9中,套用 DaemonSet 配置可能會導致未排程的代理程式 Pod。 您可以看到下列錯誤訊息:

Normal   SuccessfulCreate  1m    daemonset-controller  Created pod: instana-agent-m6lwr
Normal   SuccessfulCreate  1m    daemonset-controller  Created pod: instana-agent-vchgg
Warning  FailedDaemonPod   1m    daemonset-controller  Found failed daemon pod instana-agent/instana-agent-vchgg on node node-1, will try to kill it
Warning  FailedDaemonPod   1m    daemonset-controller  Found failed daemon pod instana-agent/instana-agent-m6lwr on node node-2, will try to kill it
Normal   SuccessfulDelete  1m    daemonset-controller  Deleted pod: instana-agent-m6lwr
Normal   SuccessfulDelete  1m    daemonset-controller  Deleted pod: instana-agent-vchgg

然後,它指出您遺漏其他註釋,讓 instana-agent 名稱空間能夠排定 Pod。 執行下列指令,以新增遺漏的註釋:

oc annotate namespace instana-agent openshift.io/node-selector=""

OpenShift ServiceMesh是否支援 ServiceMesh 略過?

雖然 OpenShift ServiceMesh 是以 Istio 為基礎,但目前不支援追蹤部署在 OpenShift ServiceMesh 上的工作量。 這適用於兩個可用的版本 (1.x 和 2.x)。 這也適用於度量值收集,特別是 Java 工作負載及其他需要從應用程式 Pod 到 Instana 代理程式之雙向連線的感應器。