在 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 Chart或 YAML 檔案 (DaemonSet),在 OpenShift 叢集裡安裝 instana-agent 。
選擇適當的安裝方法
對於 OpenShift,建議您使用 操作器來安裝 Instana 代理程式。 此外,請參閱 一般 Kubernetes 文件 ,以取得適當的安裝方法。
安裝方法的現行版本
新版 Operator、 Helm Chart 或 YAML DaemonSet 檔案的發行頻率很高。 若要更新修正程式、改進項目及新增特性的最新更新項目,請確保您正在執行最新版本的 Operator、 Helm Chart 或 YAML DaemonSet 檔案。
您可以在下列位置找到版本資訊:
使用操作器安裝
在 OpenShift 上安裝操作器類似於 Kubernetes,但您需要完成其他安裝方法選項及部分 必要條件 步驟。
在繼續安裝操作器之前,請先完成 必要條件 步驟。
您可以使用下列一種方式來安裝操作器:
使用 Operator Lifecycle Manager (OLM) (在 OpenShift上偏好使用)。
必要條件
您需要設定 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 來安裝操作器
從 OperatorHub.io或 OpenShift Container Platform安裝 Instana 代理程式操作器。
如果您還沒有目標名稱空間,請建立 Instana 代理程式安裝所在的目標名稱空間。 代理程式不需要在與操作器相同的名稱空間中執行。 大部分使用者會建立新的名稱空間
instana-agent,以執行代理程式。遵循 手動安裝操作員 區段中的步驟 4 ,為代理程式建立自訂資源並套用自訂資源。 操作器將從自訂資源中挑選配置,並部署 Instana 代理程式。
配置操作器
Instana 代理程式自訂資源支援與 Instana Helm 圖表完全相同的配置。 如需所有配置參數的詳細清單,請參閱 Helm 圖表配置。
解除安裝主機代理程式
移除自訂資源,以解除安裝 Instana 主機代理程式:
kubectl delete -f instana-agent.customresource.yaml執行下列指令來解除安裝操作器:
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。
登入 Instana 使用者介面,然後按一下 其他 > 代理程式 > 安裝 Instana 代理程式 > Kubernetes。
從 技術 清單中,選取 Helm 圖表。
輸入 叢集 名稱及 代理程式區域 (選擇性地)。
叢集名稱 (
INSTANA_KUBERNETES_CLUSTER_NAME) 是此 DaemonSet 所監視叢集的自訂名稱。代理程式區域 (
INSTANA_ZONE) 用來 自訂顯示在基礎架構地圖上的區域分組 。 它也會設定叢集的預設名稱。所有其他必要參數都會預先移入。
執行下列指令來安裝 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中定義的專案 nodeSelector 和 nodeSelector 有任何衝突。
透過使用 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 代理程式之雙向連線的感應器。