Kubernetes 監控營運商的安裝與組態
Cloud Insights 提供 Kubernetes Monitoring Operator* for Kubernetes 系列。瀏覽至 * Kubernetes > Collectores > +Kubernetes Collector* 以部署新的運算子。
安裝 Kubernetes Monitoring Operator 之前
請參閱 "先決條件" 安裝或升級 Kubernetes Monitoring Operator 之前的文件。
安裝 Kubernetes Monitoring Operator
-
輸入唯一的叢集名稱和命名空間。如果您是 升級 從先前的 Kubernetes 運算子中、使用相同的叢集名稱和命名空間。
-
一旦輸入這些指令碼、您就可以將 Download Command 片段複製到剪貼簿。
-
將程式碼片段貼到_bash_視窗中並執行。將下載操作員安裝檔案。請注意、程式碼片段具有獨特的金鑰、有效時間為24小時。
-
如果您有自訂或私有儲存庫、請複製選用的「影像」抽取片段、將其貼入 bash Shell 並加以執行。影像擷取完成後、請將其複製到您的私有儲存庫。請務必維持相同的標記和資料夾結構。更新 operer-deployment.yaml 中的路徑、以及 operer-config.yaml 中的泊塢視窗儲存庫設定。
-
如有需要、請檢閱可用的組態選項、例如 Proxy 或私有儲存庫設定。您可以深入瞭解 "組態選項"。
-
準備好之後、請複製 KUBECtl 套用程式碼片段、下載並執行、以部署操作員。
-
安裝會自動繼續進行。完成後、按一下 _ 下一步 _ 按鈕。
-
安裝完成後、按一下 _ 下一步 _ 按鈕。請務必刪除或安全儲存 operer-Secrets 。 yaml 檔案。
如果您使用的是 Proxy 、請參閱 設定 Proxy。
如果您有自訂儲存庫、請參閱 使用自訂 / 私有泊塢視窗儲存庫。
Kubernetes 監控元件
Cloud Insights Kubernetes 監控由四個監控元件組成:
-
叢集度量
-
網路效能與地圖(選用)
-
事件記錄(選用)
-
變更分析(選用)
根據預設、每個 Kubernetes 收集器都會啟用上述選用元件;如果您決定不需要特定收集器的元件、您可以瀏覽至 Kubernetes > Collectors 、然後從畫面右側的收集器「三點」功能表中選取「修改部署」、將其停用。
畫面會顯示每個元件的目前狀態、並可讓您視需要停用或啟用該收集器的元件。
升級
升級至最新的 Kubernetes Monitoring Operator
判斷現有運算子是否存在 AgentConfiguration (如果您的命名空間不是預設的 _NetApp-monitoring 、請改用適當的命名空間):
kubectl -n netapp-monitoring get agentconfiguration netapp-monitoring-configuration 如果存在 AgentConfiguration :
如果 AgentConfiguration 不存在:
-
請記下 Cloud Insights 所識別的叢集名稱(如果您的命名空間不是預設的 NetApp-Monitoring 、請改用適當的命名空間):
kubectl -n netapp-monitoring get agent -o jsonpath='{.items[0].spec.cluster-name}' * 建立現有運算子的備份(如果您的命名空間不是預設的 NetApp 監控功能、請改用適當的命名空間):
kubectl -n netapp-monitoring get agent -o yaml > agent_backup.yaml * <<to-remove-the-kubernetes-monitoring-operator,解除安裝>> 現有的運算子。 * <<installing-the-kubernetes-monitoring-operator,安裝>> 最新的運算子。
-
請使用相同的叢集名稱。
-
下載最新的 Operator YAML 檔案之後、請先將 agent_backup.yaml 中的任何自訂項目連接至下載的 operator-config.yaml 、然後再進行部署。
-
確保您是 擷取最新的容器映像 如果您使用的是自訂儲存庫。
-
停止並啟動 Kubernetes 監控操作員
若要停止 Kubernetes 監控操作員:
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=0 若要啟動 Kubernetes Monitoring 運算子:
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=1
正在解除安裝
移除 Kubernetes Monitoring Operator
請注意、 Kubernetes Monitoring Operator 的預設命名空間是「 NetApp-Monitoring 」。 如果您已設定自己的命名空間、請在這些名稱空間以及所有後續命令和檔案中取代該命名空間。
可使用下列命令解除安裝較新版本的監控操作員:
kubectl -n <NAMESPACE> delete agent -l installed-by=nkmo-<NAMESPACE> kubectl -n <NAMESPACE> delete clusterrole,clusterrolebinding,crd,svc,deploy,role,rolebinding,secret,sa -l installed-by=nkmo-<NAMESPACE>
如果監控操作員部署在其專屬命名空間中、請刪除命名空間:
kubectl delete ns <NAMESPACE> 如果第一個命令傳回「找不到資源」、請依照下列指示解除安裝舊版監控操作員。
依序執行下列每個命令。視您目前的安裝情況而定、其中一些命令可能會傳回「找不到物件」訊息。這些訊息可能會被安全忽略。
kubectl -n <NAMESPACE> delete agent agent-monitoring-netapp kubectl delete crd agents.monitoring.netapp.com kubectl -n <NAMESPACE> delete role agent-leader-election-role kubectl delete clusterrole agent-manager-role agent-proxy-role agent-metrics-reader <NAMESPACE>-agent-manager-role <NAMESPACE>-agent-proxy-role <NAMESPACE>-cluster-role-privileged kubectl delete clusterrolebinding agent-manager-rolebinding agent-proxy-rolebinding agent-cluster-admin-rolebinding <NAMESPACE>-agent-manager-rolebinding <NAMESPACE>-agent-proxy-rolebinding <NAMESPACE>-cluster-role-binding-privileged kubectl delete <NAMESPACE>-psp-nkmo kubectl delete ns <NAMESPACE>
如果先前已建立安全性內容限制:
kubectl delete scc telegraf-hostaccess
關於Kube-state指標
NetApp Kubernetes監控操作員會安裝自己的Kube-態 指標、以避免與任何其他執行個體發生衝突。
如需有關 Kube-State-Metrics 的資訊、請參閱 "本頁"。
設定 / 自訂操作員
這些區段包含自訂運算子組態、使用 Proxy 、使用自訂或私有泊塢視窗儲存庫或使用 OpenShift 的相關資訊。
組態選項
最常修改的設定可在 AgentConfiguration 自訂資源中進行設定。您可以編輯 operer-config.yaml 檔案、在部署運算子之前編輯此資源。此檔案包含設定的註解範例。請參閱清單 "可用的設定" 適用於最新版的運算子。
您也可以使用下列命令在部署運算子之後編輯此資源:
kubectl -n netapp-monitoring edit AgentConfiguration 若要判斷您部署的營運者版本是否支援 AgentConfiguration 、請執行下列命令:
kubectl get crd agentconfigurations.monitoring.netapp.com 如果您看到「錯誤來自伺服器( NotFound )」訊息、則必須先升級您的營運商、才能使用 AgentConfiguration 。
設定Proxy支援
您可以在兩個地方使用環境中的 Proxy 來安裝 Kubernetes Monitoring Operator 。這些可能是相同或獨立的Proxy系統:
-
在執行安裝程式碼片段時(使用「Curl」)需要Proxy、以便將執行程式碼片段的系統連接Cloud Insights 至您的作業系統環境
-
目標Kubernetes叢集需要Proxy才能與Cloud Insights 您的支援環境進行通訊
如果您使用任一或兩個代理程式、為了安裝 Kubernetes 作業系統監視器、您必須先確定您的 Proxy 已設定為允許與 Cloud Insights 環境進行良好的通訊。如果您有Proxy、而且可以Cloud Insights 從要安裝該運算子的伺服器/ VM存取功能、則您的Proxy可能設定正確。
對於用於安裝 Kubernetes 作業系統的 Proxy 、在安裝運算子之前、請先設定 _http 代理伺服器 /https 代理伺服器 _ 環境變數。在某些Proxy環境中、您可能也需要設定_no_proxyEnvironments _變數。
若要設定變數、請在系統 * 上 * 安裝 Kubernetes Monitoring 運算子之前 * 執行下列步驟:
-
為目前使用者設定_https_proxy_和/或_https_proxy_環境變數:
-
如果正在設定的Proxy沒有驗證(使用者名稱/密碼)、請執行下列命令:
export https_proxy=<proxy_server>:<proxy_port> .. 如果正在設定的Proxy具有驗證(使用者名稱/密碼)、請執行下列命令:
export http_proxy=<proxy_username>:<proxy_password>@<proxy_server>:<proxy_port>
-
對於 Kubernetes 叢集用來與 Cloud Insights 環境通訊的 Proxy 、請在閱讀完所有指示之後、安裝 Kubernetes Monitoring Operator 。
在部署 Kubernetes Monitoring Operator 之前、請先在 operator-config.yaml 中設定 AgentConfiguration 的 Proxy 區段。
agent: ... proxy: server: <server for proxy> port: <port for proxy> username: <username for proxy> password: <password for proxy> # In the noproxy section, enter a comma-separated list of # IP addresses and/or resolvable hostnames that should bypass # the proxy noproxy: <comma separated list> isTelegrafProxyEnabled: true isFluentbitProxyEnabled: <true or false> # true if Events Log enabled isCollectorsProxyEnabled: <true or false> # true if Network Performance and Map enabled isAuProxyEnabled: <true or false> # true if AU enabled ... ...
使用自訂或私有泊塢視窗儲存庫
根據預設、 Kubernetes Monitoring Operator 會從 Cloud Insights 儲存庫擷取容器映像。如果您使用 Kubernetes 叢集做為監控目標、且該叢集設定為僅從自訂或私有 Docker 儲存庫或容器登錄中提取容器映像、則必須設定 Kubernetes Monitoring Operator 所需的容器存取權。
從 NetApp Monitoring Operator 安裝方塊執行「影像提取片段」。此命令會登入 Cloud Insights 儲存庫、擷取操作員的所有映像相依性、然後登出 Cloud Insights 儲存庫。出現提示時、請輸入提供的儲存庫暫存密碼。此命令會下載操作員所使用的所有影像、包括選用功能。請參閱下方、瞭解這些影像的用途。
核心營運者功能與 Kubernetes 監控
-
NetApp 監控
-
CI-KRBA-Proxy
-
CI-ksm
-
CI-Telegraf
-
無 distrouse-root 使用者
事件記錄
-
CI-Fluent 位元
-
CI-Kubernetes-event-Exporter
網路效能與地圖
-
CI-net-觀察者
根據您的企業原則、將「operator」泊塢視窗影像推送到您的「私有/本機/企業」泊塢視窗儲存庫。確保儲存庫中這些映像的映像標記和目錄路徑與 Cloud Insights 儲存庫中的映像標記和目錄路徑一致。
在 operer-deployment.yaml 中編輯監控營運者部署、並修改所有映像參照以使用您的私有 Docker 儲存庫。
image: <docker repo of the enterprise/corp docker repo>/kube-rbac-proxy:<ci-kube-rbac-proxy version> image: <docker repo of the enterprise/corp docker repo>/netapp-monitoring:<version>
在 operer-config.yaml 中編輯 AgentConfiguration 、以反映新的泊塢視窗 repo 位置。為您的私有儲存庫建立新的 imagePullSecret 、如需詳細資料、請參閱 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
agent: ... # An optional docker registry where you want docker images to be pulled from as compared to CI's docker registry # Please see documentation link here: link:task_config_telegraf_agent_k8s.html#using-a-custom-or-private-docker-repository dockerRepo: your.docker.repo/long/path/to/test # Optional: A docker image pull secret that maybe needed for your private docker registry dockerImagePullSecret: docker-secret-name
OpenShift指示
如果您是在 OpenShift 4.6 或更新版本上執行、則必須在 operer-config.yaml 中編輯 AgentConfiguration 、才能啟用 runPrivileged 設定:
# Set runPrivileged to true SELinux is enabled on your kubernetes nodes runPrivileged: true
OpenShift可能會實作額外的安全層級、以封鎖對某些Kubernetes元件的存取。
關於機密的備註
若要移除 Kubernetes Monitoring Operator 檢視整個叢集機密的權限、請在安裝之前、從 operer-setup.yaml 檔案中刪除下列資源:
ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding
如果是升級、也請從叢集中刪除資源:
kubectl delete ClusterRole/netapp-ci-<namespace>-agent-secret-clusterrole kubectl delete ClusterRoleBinding/netapp-ci-<namespace>-agent-secret-clusterrolebinding
如果啟用變更分析、請修改 AgentConfiguration 或 operer-config.yaml 以取消變更管理區段的註解、並在變更管理區段下包含 _kindsToIgnoreFromWatch :「 Secrets 」。請注意此行中單引號和雙引號的存在和位置。
# change-management: ... # # A comma separated list of kinds to ignore from watching from the default set of kinds watched by the collector # # Each kind will have to be prefixed by its apigroup # # Example: '"networking.k8s.io.networkpolicies,batch.jobs", "authorization.k8s.io.subjectaccessreviews"' kindsToIgnoreFromWatch: '"secrets"' ...
正在驗證Kubernetes Checksum
雖然無法執行完整性檢查、Cloud Insights 但有些使用者可能想在安裝或套用下載的成品之前、先執行自己的驗證。若要執行純下載作業(而非預設的下載與安裝)、這些使用者可以編輯從UI取得的代理程式安裝命令、並移除後續的「install」選項。
請遵循下列步驟:
-
依照指示複製代理程式安裝程式程式片段。
-
不要將程式碼片段貼到命令視窗中、而是貼到文字編輯器中。
-
從命令中刪除後端"--install"。
-
從文字編輯器複製整個命令。
-
現在請將其貼到命令視窗(工作目錄)中、然後執行。
-
下載並安裝(預設):
installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download –-install ** 僅限下載:
installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download
-
純下載命令會將Cloud Insights 所有必要的成品從功能性資訊下載到工作目錄。 這些成品包括但不限於:
-
安裝指令碼
-
環境檔案
-
Y反 洗錢檔案
-
簽署的Checksum檔案(sh256.signed)
-
用於簽名驗證的一個PES檔案(NetApp_CERT.pem)
安裝指令碼、環境檔案及Yaml檔案均可使用目視檢查進行驗證。
您可以確認其指紋為下列項目、以驗證該PEM檔案:
1A918038E8E127BB5C87A202DF173B97A05B4996 更具體地說、
openssl x509 -fingerprint -sha1 -noout -inform pem -in netapp_cert.pem 簽署的Checksum檔案可以使用PEM檔案進行驗證:
openssl smime -verify -in sha256.signed -CAfile netapp_cert.pem -purpose any 一旦所有成品都已通過驗證、即可執行下列步驟來啟動代理程式安裝:
sudo -E -H ./<installation_script_name> --install
公差和污染
NetApp-CI-telegraf-DS 、 NetApp-CI-Fluent-bit-DS 和 NetApp-CI-net-觀察者 -L4-DS 示範必須在叢集中的每個節點上排程一個 Pod 、以便正確收集所有節點上的資料。已將操作員配置爲允許某些已知的 * 污點 * 。如果在節點上配置了任何自定義污點,從而阻止 Pod 在每個節點上運行,則可以爲這些污點創建一個 *公差 * "在 AgentConfiguration 中"。如果您已將自訂污點套用至叢集中的所有節點、您也必須在操作員部署中新增必要的容錯功能、以便排程及執行操作員 Pod 。
深入瞭解 Kubernetes "污染與容許"。
疑難排解
如果您在設定 Kubernetes 監控操作員時遇到問題、請嘗試下列事項:
問題: | 試用: |
---|---|
我看不到Kubernetes持續Volume與對應的後端儲存設備之間的超連結/連線。我的Kubernetes持續Volume是使用儲存伺服器的主機名稱來設定。 |
請依照步驟解除安裝現有的Telegraf代理程式、然後重新安裝最新的Telegraf代理程式。您必須使用Telegraf 2.0版或更新版本、而且Kubernetes叢集儲存設備必須由Cloud Insights 效益管理系統主動監控。 |
我在記錄中看到類似下列內容的訊息: |
如果您執行Kubernetes版本低於1.20的Kubernetes 2.0.0版或更新版本之Kube-state度量、則可能會出現這些訊息。 |
我看到 Telegraf 的錯誤訊息類似下列內容、但 Telegraf 確實啟動並執行: |
這是已知的問題。 請參閱 "這篇GitHub文章" 以取得更多詳細資料。只要Telegraf已啟動且正在執行、使用者就可以忽略這些錯誤訊息。 |
在 Kubernetes 上、我的 Telegraf Pod 回報下列錯誤: |
如果啟用並強制執行 SELinux 、則可能會阻止 Telegraf Pod 存取 Kubernetes 節點上的 /proc/1/mountstats 檔案。若要克服此限制、請編輯 agentconfiguration 、然後啟用 RunPrivileged 設定。如需詳細資訊、請參閱 "OpenShift指示"。 |
在 Kubernetes 上、我的 Telegraf ReplicicaSet Pod 回報下列錯誤: |
Telegraf ReplicaSet Pod可在指定為主節點或etcd節點上執行。如果ReplicaSet Pod未在其中一個節點上執行、您將會收到這些錯誤。檢查您的主節點/ etcd節點是否有問題。如果有、請將必要的容許值新增至Telegraf ReplicaSet、Telegraf-RS。 |
我有PSP/PSA.環境。這是否會影響我的監控操作員? |
如果您的 Kubernetes 叢集正在執行 Pod 安全政策( PSP )或 Pod 安全許可( PSA )、則您必須升級至最新的 Kubernetes 監控營運者。請依照下列步驟升級至目前支援 PP/PSA 的營運商: |
我在嘗試部署操作員時遇到問題、而且我使用 PP/PSA 。 |
1. 使用下列命令編輯代理程式: |
grep -i PSP (應顯示找不到任何項目) |
出現「ImagePullBackOff」錯誤 |
如果您有自訂或私有泊塢視窗儲存庫、但尚未設定 Kubernetes Monitoring Operator 正確辨識、就可能會出現這些錯誤。 瞭解更多資訊 關於設定自訂/私有repo。 |
我的監控操作員部署有問題、目前的文件無法協助我解決問題。 |
擷取或記下下列命令的輸出、然後聯絡技術支援團隊。 kubectl -n netapp-monitoring get all kubectl -n netapp-monitoring describe all kubectl -n netapp-monitoring logs <monitoring-operator-pod> --all-containers=true kubectl -n netapp-monitoring logs <telegraf-pod> --all-containers=true |
Operator 命名空間中的 Net-Oborative (工作負載對應) Pod 位於 CrashLoopBackOff |
這些 Pod 對應於網路可觀察性的工作負載對應資料收集器。請嘗試下列項目: |
Pod 在 Operator 命名空間中執行(預設值: NetApp-Monitoring )、但查詢中的工作負載對應或 Kubernetes 度量、 UI 中不會顯示任何資料 |
檢查 K8S 叢集節點上的時間設定。為了準確地進行稽核和資料報告、強烈建議您使用網路時間傳輸協定( NTP )或簡易網路時間傳輸協定( SNTP )、同步代理機器上的時間。 |
運算子命名空間中的某些網路觀察者 Pod 處於「擱置中」狀態 |
Net-觀察者 是一組示範集、在 k8s 叢集的每個節點上執行 Pod 。 |
安裝 Kubernetes Monitoring Operator 後、我立即在記錄中看到下列內容: |
此訊息通常只有在安裝新的營運者、且_Telefra-Rs_ pod在_ksm_ pod啟動之前就已啟動時才會出現。所有Pod都在執行時、這些訊息應該會停止。 |
我沒有看到叢集中存在的 Kubernetes CronJobs 正在收集任何度量。 |
驗證 Kubernetes 版本(即 |
安裝操作員之後、 Telegraf-DS Pod 會進入 CrashLoopBackOff 、 Pod 記錄會顯示「 su :驗證失敗」。 |
編輯 AgentConfiguration 中的 Teledraf 區段、並將 dockerMetricCollectionEnabled 設為 false 。如需詳細資訊、請參閱操作員的 "組態選項"。 |
我在 Telegraf 記錄檔中看到類似以下內容的重複錯誤訊息: |
編輯 AgentConfiguration 中的 Telegraf 區段、並將 outputTimeout 增加至 10s 。如需詳細資訊、請參閱操作員的 "組態選項"。 |
我遺失某些事件記錄的 _ 參與物件 _ 資料。 |
請務必遵循中的步驟 "權限" 上一節。 |
為什麼我看到兩個監控營運商 Pod 正在執行、一個名為 NetApp-CI-monitoring 、 <pod> 、另一個名為 monitoring 、 <pod> ? |
截至 2023 年 10 月 12 日、 Cloud Insights 已重新考慮營運商、以便為使用者提供更好的服務;若要充分採用這些變更、您必須 移除舊的運算子 和 安裝新的。 |
我的 Kubernetes 事件意外停止回報 Cloud Insights 。 |
擷取事件導出者 Pod 的名稱: `kubectl -n netapp-monitoring get pods |
grep event-exporter |
awk '{print $1}' |
sed 's/event-exporter./event-exporter/'` |
我看到 Kubernetes Monitoring Operator 部署的 Pod 因為資源不足而當機。 |
請參閱 Kubernetes Monitoring Operator "組態選項" 視需要增加 CPU 和 / 或記憶體限制。 |
遺失影像或組態無效、導致 NetApp-CI-kube 狀態指標 Pod 無法啟動或準備就緒。目前狀況集已停滯、組態變更並未套用至 NetApp-CI-kube 狀態指標群。 |
StatefulSet 位於 A 中 "毀損" 州/省。在修正任何組態問題之後、 NetApp-CI-kube 狀態指標 Pod 就會恢復運作。 |
NetApp-CI-kube-state 指標 Pod 在執行 Kubernetes 操作員升級後無法啟動、造成勘誤影像資料(無法擷取影像)。 |
請嘗試手動重設 Pod 。 |
我的 Kubernetes 叢集在記錄分析下會觀察到「事件已捨棄為較舊、然後是 maxEventAgeSeconds 」的訊息。 |
修改運算子 agentconfigurated 、並增加 event-aler-maxEventAgeSeconds (即增加至 60s )、 event-kaler-kubeQPS (即增加至 100 )、以及 _event-kaler-kubebBurst (即增加至 500 )。如需這些組態選項的詳細資訊、請參閱 "組態選項" 頁面。 |
Telegraf 會警告或因為可鎖定的記憶體不足而當機。 |
嘗試增加基礎作業系統 / 節點中 Telegraf 可鎖定記憶體的限制。如果增加限制並非選項、請修改 NKMO 代理組態、並將 NOISS 設為 true 。 這將指示 Telegraf 不要嘗試保留鎖定的記憶體頁面。雖然這可能會造成安全風險、因為解密的機密資料可能會被換出到磁碟、但它允許在無法保留鎖定記憶體的環境中執行。如需 inbizon 組態選項的詳細資訊、請參閱 "組態選項" 頁面。 |
如需其他資訊、請參閱 "支援" 頁面或中的 "資料收集器支援對照表"。