Kubernetes Monitoring Operatorのインストールと設定
Cloud Insights では、Kubernetesコレクション向けにNetApp Kubernetes Monitoring Operator *(NKMO)を提供しています。データコレクタを追加するときは、「Kubernetes」タイルを選択するだけです。
Cloud Insightsフェデラルエディションを使用している場合は、インストールと設定の手順がこのページの手順と異なる場合があります。Cloud Insightsの指示に従って、NetApp Kubernetes監視オペレータをインストールします。 |
Kubernetes Operatorとデータコレクタは、Cloud Insights Dockerレジストリからダウンロードされます。インストールが完了すると、OperatorはKubernetesクラスタノードに展開されたOperator互換コレクタを管理して、データを取得します。これには、コレクタのライフサイクルの管理も含まれます。このチェーンに続いて、データがコレクタから取得され、Cloud Insights に送信されます。
NetApp Kubernetes Monitoring Operatorをインストールする前に
を参照してください "インストールまたはアップグレードの前に" NetApp Kubernetes Monitoring Operatorをインストールまたはアップグレードする前に、前提条件のドキュメントを参照してください。 |
NetApp Kubernetes Monitoring Operatorをインストールします
-
一意のクラスタ名およびネームスペースを入力してください。実行中の場合 をアップグレードして 以前のKubernetes Operatorで、同じクラスタ名とネームスペースを使用します。
-
これらを入力すると、ダウンロードコマンドスニペットをクリップボードにコピーできます。
-
スニペットを a_bash_window に貼り付け、実行します。Operatorインストールファイルがダウンロードされます。スニペットには固有のキーがあり、24時間有効です。
-
カスタムリポジトリまたはプライベートリポジトリがある場合は、オプションのImage Pullスニペットをコピーし、a_bash_shellに貼り付けて実行します。画像がプルされたら、プライベートリポジトリにコピーします。必ず同じタグとフォルダ構造を維持してください。_operator-deployment.yaml_のパスと_operator-config.yaml_のDockerリポジトリ設定を更新します。
-
必要に応じて、プロキシやプライベートリポジトリの設定など、使用可能な設定オプションを確認します。あなたはについてもっと読むことができます "設定オプション"。
-
準備ができたら、kubectl Applyスニペットをコピーしてダウンロードし、実行してOperatorをデプロイします。
-
インストールが自動的に開始されます。完了したら、[Next]ボタンをクリックします。
-
インストールが完了したら、[Next]ボタンをクリックします。また、_operator-secrets.yaml_fileを削除するか、安全に保存してください。
詳細については、をご覧ください プロキシを設定します。
詳細については、をご覧ください カスタム/プライベートDockerリポジトリを使用する。
NetApp Kubernetes Monitoring Operatorをインストールすると、Kubernetes EMSログ収集がデフォルトで有効になります。インストール後にこの収集を無効にするには、Kubernetesクラスタの詳細ページの上部にある* Modify Deployment *ボタンをクリックし、[Log collection]の選択を解除します。
画面に[Log Collection]のチェックボックスが表示されている。"]
この画面には、現在のログ収集ステータスも表示されます。次の状態が考えられます。
-
無効
-
有効
-
Enabled -インストールを実行中です
-
Enabled -オフライン
-
有効-オンライン
-
エラー- APIキーに十分な権限がありません
をアップグレードして
最新のNetApp Kubernetes Monitoring Operatorにアップグレードします
既存のOperatorにAgentConfigurationが存在するかどうかを確認します(ネームスペースがdefault_netapp-monitoring_でない場合は、適切なネームスペースに置き換えてください)。
kubectl -n netapp-monitoring get agentconfiguration netapp-monitoring-configuration AgentConfigurationが存在する場合:
-
をインストールします 既存の演算子の上にある最新の演算子。
-
確認してください 最新のコンテナイメージを取得します カスタムリポジトリを使用している場合。
-
AgentConfigurationが存在しない場合は、次の手順を実行します。
-
クラスタ名がCloud Insights で認識される名前であることをメモします(ネームスペースがデフォルトのネットアップ監視機能でない場合は、該当するネームスペースで置き換えてください)。
kubectl -n netapp-monitoring get agent -o jsonpath='{.items[0].spec.cluster-name}' * 既存のOperatorのバックアップを作成します(ネームスペースがデフォルトのネットアップ監視機能になっていない場合は、適切なネームスペースで置き換えてください)。
kubectl -n netapp-monitoring get agent -o yaml > agent_backup.yaml * <<to-remove-the-netapp-kubernetes-monitoring-operator,をアンインストールします>> 既存の演算子。 * <<installing-the-netapp-kubernetes-monitoring-operator,をインストールします>> 最新の演算子。
-
同じクラスタ名を使用してください。
-
最新のOperator YAMLファイルをダウンロードしたら、展開する前に、agent_backup.yamlにあるカスタマイズをダウンロードしたoperator-config.yamlに移植します。
-
確認してください 最新のコンテナイメージを取得します カスタムリポジトリを使用している場合。
-
NetApp Kubernetes Monitoring Operatorを停止および開始します
NetApp Kubernetes Monitoring Operatorを停止するには、次の手順を実行します
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=0 NetApp Kubernetes Monitoring Operatorを開始するには、次の手順を実行します
kubectl -n netapp-monitoring scale deploy monitoring-operator --replicas=1
アンインストール中です
をクリックして、NetApp Kubernetes Monitoring Operatorを削除します
NetApp 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ステートメトリックについて
NetApp Kubernetes Monitoring Operatorは、kube-state-metricsを自動的にインストールします。ユーザによる操作は必要ありません。
kube-state-metrics カウンタ
これらのkubbeステートメトリックカウンタの情報にアクセスするには、次のリンクを使用します。
== Configuring the Operator 新しいバージョンの演算子では、最も一般的に変更される設定は_AgentConfiguration_customリソースで構成できます。オペレータを配備する前に、_operator-config.yaml_fileを編集して、このリソースを編集できます。このファイルには、一部の設定例がコメントアウトされています。のリストを参照してください link:telegraf_agent_k8s_config_options.html["使用可能な設定"] 演算子の最新バージョン。
次のコマンドを使用してオペレータを配置した後で、このリソースを編集することもできます。
kubectl -n netapp-monitoring edit AgentConfiguration 展開したオペレータのバージョンがAgentConfigurationをサポートしているかどうかを確認するには、次のコマンドを実行します。
kubectl get crd agentconfigurations.monitoring.netapp.com 「Error from server (NotFound)」というメッセージが表示された場合は、AgentConfigurationを使用する前にオペレータをアップグレードする必要があります。
プロキシサポートを設定しています
環境にプロキシを使用してNetApp Kubernetes Monitoring Operatorをインストールする方法は2つあります。同じプロキシシステムでも、別のプロキシシステムでもかまいません。
-
プロキシは、インストールコードスニペット(「curl」を使用)の実行中に、スニペットが実行されるシステムをCloud Insights 環境に接続するために必要です
-
ターゲットのKubernetesクラスタがCloud Insights 環境と通信するために必要なプロキシ
これらのいずれか、または両方にプロキシを使用する場合は、NetApp Kubernetes Operating Monitorをインストールするために、まずCloud Insights 環境との良好な通信を可能にするようにプロキシが設定されていることを確認する必要があります。プロキシがあり、オペレータをインストールするサーバ/VMからCloud Insights にアクセスできる場合は、プロキシが適切に設定されている可能性があります。
NetApp Kubernetes Operating Monitorのインストールに使用するプロキシとして、オペレータをインストールする前に、_http_proxy/https_proxy_environment変数を設定します。一部のプロキシ環境では'_no_proxy環境変数も設定する必要があります
変数を設定するには、NetApp Kubernetes Monitoring Operatorをインストールする前に、システムで次の手順を実行します。
-
現在のユーザの https_proxy 変数と _http_proxy_environment 変数を設定します。
-
セットアップするプロキシに認証(ユーザ名/パスワード)がない場合は、次のコマンドを実行します。
export https_proxy=<proxy_server>:<proxy_port> .. セットアップするプロキシに認証(ユーザ名/パスワード)が設定されている場合は、次のコマンドを実行します。
export http_proxy=<proxy_username>:<proxy_password>@<proxy_server>:<proxy_port>
-
KubernetesクラスタがCloud Insights 環境と通信するために使用するプロキシについては、以下の手順をすべて読み、NetApp Kubernetes Monitoring Operatorをインストールします。
NetApp Kubernetes Monitoring Operatorを導入する前に、operator-config.yamlでAgentConfigurationのプロキシセクションを設定します。
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 ... ...
カスタムまたはプライベートのDockerリポジトリを使用する
デフォルトでは、NetApp Kubernetes Monitoring OperatorはCloud Insights リポジトリからコンテナイメージを取得します。監視のターゲットとして使用されているKubernetesクラスタがあり、カスタムまたはプライベートのDockerリポジトリまたはコンテナレジストリからのみコンテナイメージを取得するようにそのクラスタが設定されている場合は、NetApp Kubernetes Monitoring Operatorで必要なコンテナへのアクセスを設定する必要があります。
NetApp Monitoring Operatorのインストールタイルから[Image Pull Snippet]を実行します。このコマンドは、Cloud Insights リポジトリにログインし、オペレータのすべてのイメージ依存関係をプルして、Cloud Insights リポジトリからログアウトします。プロンプトが表示されたら、指定したリポジトリの一時パスワードを入力します。このコマンドは、オプション機能を含む、オペレータが使用するすべてのイメージをダウンロードします。これらの画像がどの機能に使用されるかについては、以下を参照してください。
Core Operator Functionality and Kubernetes Monitoringの略
-
ネットアップによる監視
-
ci-kube-rbac-proxy
-
CI-KSM
-
CI-テレグラフ
-
distroless-root-user
イベントログ
-
CI-fluent-bit
-
ci-kubernetes-event-exporter
ネットワークのパフォーマンスとマップ
-
ci-net-observerの略
社内のポリシーに従って、オペレータ用の Docker イメージをプライベート / ローカル / エンタープライズ Docker リポジトリにプッシュします。リポジトリ内のこれらのイメージへのイメージタグとディレクトリパスが、Cloud Insights リポジトリ内のイメージタグとディレクトリパスと一致していることを確認します。
operator-deployment.yamlでmonitoring-operatorデプロイメントを編集し、プライベート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>
operator-config.yamlのAgentConfigurationを編集して、新しいDockerリポジトリの場所を反映します。プライベートリポジトリ用に新しい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: https://docs.netapp.com/us-en/cloudinsights/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以降で実行している場合は、_runPrivileged_settingを有効にするには、_operator-config.yaml_でAgentConfigurationを編集する必要があります。
# Set runPrivileged to true SELinux is enabled on your kubernetes nodes runPrivileged: true
OpenShiftは、一部のKubernetesコンポーネントへのアクセスをブロックする可能性のある追加のセキュリティレベルを実装する場合があります。
秘密に関する注意事項
クラスタ全体のシークレットを表示するNetApp Kubernetes Monitoring Operatorの権限を削除するには、インストール前に_operator-setup.yaml_fileから次のリソースを削除します。
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_or_operator -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 のチェックサムの検証
Cloud Insights エージェントのインストーラで整合性チェックが実行されますが、ダウンロードしたアーティファクトのインストールまたは適用前に独自の検証を実行したいユーザもいます。デフォルトのダウンロードおよびインストールではなく、ダウンロードのみの操作を実行するには、 UI から取得したエージェントインストールコマンドを編集し、末尾の「インストール」オプションを削除します。
次の手順を実行します。
-
指示に従ってエージェントインストーラスニペットをコピーします。
-
スニペットをコマンドウィンドウに貼り付ける代わりに、テキストエディタに貼り付けます。
-
コマンドから末尾の「--install」を削除します。
-
コマンド全体をテキストエディタからコピーします。
-
次に、コマンドウィンドウ(作業ディレクトリ内)に貼り付けて実行します。
-
Download and install (デフォルト):
installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download –-install ** ダウンロードのみ:
installerName=cloudinsights-rhel_centos.sh … && sudo -E -H ./$installerName --download
-
download-only コマンドを使用すると、必要なアーティファクトがすべて Cloud Insights から作業ディレクトリにダウンロードされます。 アーティファクトには次のものがありますが、これらに限定することはできません。
-
インストールスクリプト
-
環境ファイル
-
YAMLファイル
-
署名済みチェックサムファイル( SHA256 署名)
-
署名の検証に使用する PEM ファイル( NetApp_cert.pem )
インストールスクリプト、環境ファイル、 YAML ファイルは、目視検査を使用して検証できます。
PEM ファイルは、フィンガープリントが次のようになっていることを確認することで検証できます。
1A918038E8E127BB5C87A202DF173B97A05B4996 具体的には、
openssl x509 -fingerprint -sha1 -noout -inform pem -in netapp_cert.pem 署名済みチェックサムファイルは、 PEM ファイルを使用して確認できます。
openssl smime -verify -in sha256.signed -CAfile netapp_cert.pem -purpose any すべてのアーティファクトが正常に検証されたら、次のコマンドを実行してエージェントのインストールを開始できます。
sudo -E -H ./<installation_script_name> --install
トラブルシューティング
NetApp Kubernetes Monitoring Operatorのセットアップで問題が発生した場合の対処方法を次に示します。
問題 | 次の操作を実行します |
---|---|
Kubernetes 永続ボリュームと対応するバックエンドストレージデバイスの間にハイパーリンク / 接続がありません。My Kubernetes Persistent Volume がストレージサーバのホスト名を使用して設定されます。 |
手順に従って既存の Tegraf エージェントをアンインストールし、最新の Tegraf エージェントを再インストールします。Tegrafバージョン2.0以降を使用していて、KubernetesクラスタストレージがCloud Insights によってアクティブに監視されている必要があります。 |
ログに次のようなメッセージが表示されます。 |
これらのメッセージは、1.20より前のバージョンのKubernetesでkube-state-metricsバージョン2.0.0以上を実行している場合に発生する可能性があります。 |
Telegrafから次のようなエラーメッセージが表示されますが、Telegrafは起動して実行されます。 |
これは問題と呼ばれています。 を参照してください "この GitHub の記事" 詳細:Tegraf が起動して動作している限り、ユーザはこのエラーメッセージを無視できます。 |
Kubernetesで、Telegrafポッドが次のエラーを報告しています。 |
SELinuxを有効にして強制すると、TelegrafポッドがKubernetesノードの/proc/1/mountstatsファイルにアクセスできなくなる可能性があります。この制限を克服するには、agentconfigurationを編集し、runPrivileged設定を有効にします。詳細については、以下を参照してください。 https://docs.netapp.com/us-en/cloudinsights/task_config_telegraf_agent_k8s.html#openshift-instructions。 |
Kubernetesで、Telegraf ReplicaSetポッドが次のエラーを報告しています。 |
Telegraf ReplicaSet ポッドは、マスターまたは etcd 用に指定されたノード上で実行することを目的としています。これらのノードのいずれかで ReplicaSet ポッドが実行されていない場合は、これらのエラーが発生します。マスター / etcd ノードに汚染があるかどうかを確認します。その場合は、 Telegraf ReplicaSet 、テレグラム af-RS に必要な忍容を追加します。 |
PSP/PSA環境があります。これはモニタリングオペレータに影響しますか? |
ポッドセキュリティポリシー(PSP)またはポッドセキュリティアドミッション(PSA)を適用してKubernetesクラスタを実行している場合は、最新のNetApp Kubernetes Monitoring Operatorにアップグレードする必要があります。PSP/PSAをサポートする現在のNKMOにアップグレードするには、次の手順に従います。 |
NKMOを導入する際に問題が発生し、PSP/PSAを使用しました。 |
1.次のコマンドを使用してエージェントを編集します。 |
grep -i psp (should show that nothing is found) |
「ImagePullBackoff」エラーが発生しました |
このエラーは、カスタムまたはプライベートのDockerリポジトリがあり、NetApp Kubernetes Monitoring Operatorで正しく認識されるように設定していない場合に表示されることがあります。 詳細はこちら カスタム/プライベートリポジトリの設定について |
監視オペレータの配置に問題 を使用していますが、現在のドキュメントでは解決できません。 |
次のコマンドの出力をキャプチャまたはメモし、テクニカルサポートチームに連絡します。 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 |
NKMOネームスペース内のNet-Observer(ワークロードマップ)ポッドはCrashLoopBackOffにあります |
これらのポッドは、Network ObservabilityのWorkload Mapデータコレクタに対応しています。以下をお試しください。 |
ポッドはNKMOネームスペース(デフォルト:netapp-monitoring)で実行されていますが、[Queries]のワークロードマップまたはKubernetes指標のデータがUIに表示されません |
K8Sクラスタのノードの時間設定を確認します。監査およびデータレポートを正確に作成するには、Network Time Protocol(NTP;ネットワークタイムプロトコル)またはSimple Network Time Protocol(SNTP;簡易ネットワークタイムプロトコル)を使用してAgentマシンの時刻を同期することを強く推奨します。 |
NKMOネームスペース内の一部のnet-observerポッドが保留状態になっています |
net-observerはデーモンセットであり、Kubernetesクラスタの各ノードでポッドを実行します。 |
NetApp Kubernetes Monitoring Operatorをインストールした直後に、ログに次のようなメッセージが表示されます。 |
このメッセージが表示されるのは、通常、_KSM_PODが起動する前に、新しいオペレータがインストールされ、_テレ グラム-RS_PODが稼働している場合のみです。これらのメッセージは、すべてのポッドが実行されると停止します。 |
クラスタに存在するKubernetes CronJobsについて収集された指標が表示されません。 |
Kubernetesのバージョンを確認します( |
オペレータのインストール後、telegraf-DSポッドがCrashLoopBackOffに入り、PODログに「su:Authentication failure」と表示されます。 |
_AgentConfiguration_のtelegrafセクションを編集し、set_dockerMetricCollectionEnabled_をfalseに設定します。詳細については、オペレータのを参照してください "設定オプション"。 |
Telegrafログに次のようなエラーメッセージが繰り返し表示されます。 |
_AgentConfiguration_のtelegrafセクションを編集し、set_dockerMetricCollectionEnabled_をfalseに設定します。詳細については、オペレータのを参照してください "設定オプション"。 |
一部のイベントログの_involvedobject_dataが見つかりません。 |
次の手順を実行していることを確認してください: "権限" 上記のセクション。 |
2つの監視オペレータポッド(netapp-ci-monitoring-operator-pod <pod>とmonitoring-operator-pod)が実行されているのはなぜ<pod>ですか? |
2023年10月12日現在、Cloud Insightsはユーザーにより良いサービスを提供するためにオペレータをリファクタリングしています。これらの変更を完全に適用するには、 古いオペレータを削除します。 および 新しいものを取り付ける。 |
Kubernetesイベントが予期せずCloud Insightsへの報告を停止しました。 |
event-exporterポッドの名前を取得します。 `kubectl -n netapp-monitoring get pods |
grep event-exporter |
awk '{print $1}' |
sed 's/event-exporter./event-exporter/'` |
リソースが不足しているため、NetApp Kubernetes Monitoring Operatorによってデプロイされたポッドがクラッシュしています。 |
『NetApp Kubernetes Monitoring Operator』を参照してください。 "設定オプション" 必要に応じてCPUやメモリの制限を増やします。 |
追加情報はから入手できます "サポート" ページまたはを参照してください "Data Collector サポートマトリックス"。