Kubernetes監視

Kubernetes監視を使用して、コンテナによるインフラストラクチャの各コンポーネントを監視し、Kubernetesクラスターの正常性とパフォーマンスを監視します。

目次

監視の追加

Site24x7ではオンプレミス、Azure (Azure Kubernetes Engine)、AWS (Elastic Kubernetes Service)、GCP (Google Kubernetes Engine)、MicroK8sといったプラットフォームでのKubernetes監視に対応しています。
Kubernetes監視を追加するにはSite24x7にログイン後、[サーバー]→[Kubernetes]→[クラスター]の横にある[+]アイコンをクリックしてください。

方法1:デーモンセット

ロールベースのアクセスコントロール権限を設定し、デーモンセットとしてSite24x7エージェントをインストールします。

  1. Site24x7のKubernetes監視の追加ページから、site24x7-agent.yamlファイルをダウンロードします。
  2. 次のコマンドを実行してシークレットを作成し、YAMLに適用します。<device-key>は自身のデバイスキーに置換してください。
    kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>' && kubectl apply -f site24x7-agent.yaml

site24x7-agentポッドが作成され実行状態であることを確認します。Site24x7にノード、コンテナー、ポッド、デプロイメント、HPA、レプリカセットが追加されるには数分かかります。

プロキシ設定を行う場合は、site24x7-agent.yamlファイルのenvにある次の行をアンコメントして、プロキシの値を更新します。

- name: http_proxy
value:
- name: https_proxy
value:

方法2:Helm

Helmチャートを使用してKubernetesエージェントをインストールする手順は次のとおりです。

  1. Helmをインストールします。
  2. 次のコマンドを実行して、Site24x7 Helmレポジトリを追加します。
    <device-key>は自身のデバイスキーに置換してください。
    helm repo add site24x7 https://site24x7.github.io/helm-charts;
    helm repo update;
    helm install site24x7-agent site24x7/site24x7 --set deviceKey= <device-key>;

デーモンセット経由でクラスター内の全ノードにSite24x7が追加されます。数分以内に、Site24x7アカウントへのホストおよびメトリクスのレポートを開始します。

プロキシ設定

Helmインストールコマンドにプロキシ設定のインストールパラメーターを設定します。

<device-key>は自身のデバイスキーに置換してください。
サンプルコマンド
helm install site24x7-agent site24x7/site24x7 --set deviceKey= <device-key>  --set http_proxy=http://192.108.10.10:3128 --set https_proxy=http://192.108.10.10:3128;
プロキシ認証のサンプル:
helm install site24x7-agent site24x7/site24x7 --set deviceKey= <device-key> --set http_proxy=http://username:password@192.108.10.10:3128 --set https_proxy=http://username:password@192.108.10.10:3128[;](http://192.108.10.10:3128;)

上記により、エージェントがデーモンセット経由でクラスター内の全ノードにインストールされます。
これに加えて、メトリック取得のためkube-state-metricsがデプロイメントとしてデプロイされます。
kube-state-metricsがデプロイされると、Site24x7はアカウントへのホストおよびメトリクスデータのレポートを開始します。

方法3:Sidecarコンテナー

ロールベースのアクセスコントロール権限を設定し、エージェントをSidecarコンテナーとしてコンテナーにデプロイします。

  1. Site24x7 Sidecar YAMLファイルをダウンロードします。
  2. クラウドシェルまたはマスターノードターミナルにファイルを保存します。
  3. ファイルを開き、アプリケーションのイメージと名前をアプリケーションコンテナーに置換します。

    デバイスキーは[管理]→[開発者]→[デバイスキー]で表示されます。

  4. 次のコマンドを実行してシークレットを作成し、YAMLに適用します。<device-key>は自身のデバイスキーに置換してください。
    kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>' && kubectl apply -f site24x7-sidecar-agent.yaml
プロキシ設定を行う場合は、YAMLファイル内の次の行をアンコメントし、プロキシの値を入力します。
Name: http_proxy
Value:
Name: https_proxy
Value:

Kubernetesメトリックであるkube-state-metricsを有効化する方法は次のとおりです。

  1. kube-state-metrics YAMLファイルをダウンロードします。
  2. クラウドシェルまたはマスターノードターミナルにファイルを保存します。
  3. 次のコマンドを実行し、YAMLを適用します。
kubectl apply -f site24x7-kube-state-metrics.yaml
  • このデプロイによりKubernetesインフラ全体がディスカバリーされます。
  • エージェントはside-carコンテナーとして実行しているため、ノード、ポッド、コンテナーのメトリックはポッドのみ表示されます。
  • 各ポッドのパフォーマンスを監視したい場合、各ポッドでエージェントを実行してください。

方法4:GKE Autopilot

ロールベースのアクセスコントロール権限をクラスターに設定し、GKE Autopilotにデーモンセットとしてエージェントをインストールします。

  1. Site24x7 GKE Autopilot YAMLファイルをダウンロードします。
  2. クラウドシェルまたはマスターノードターミナルにファイルを保存します。
  3. 次のコマンドを実行してシークレットを作成し、YAMLを適用します。<device-key>は自身のデバイスキーに置換してください。
    kubectl create secret generic site24x7-agent --from-literal KEY= <device-key> && kubectl apply -f site24x7-gke-autopilot-agent.yaml
プロキシ設定を行う場合は、YAMLファイル内の次の行をアンコメントし、プロキシの値を入力します。
Name: http_proxy
Value: <http_proxy_value>
Name: https_proxy
Value: <https_proxy_value>

方法5:Openshift

ロールベースのアクセスコントロール権限をクラスターに設定し、Openshiftにデーモンセットとしてエージェントをインストールします。

  1. site24x7-openshift-agent.yamlファイルをダウンロードします。
  2. Cloud Shellまたはマスターノードターミナルにファイルを保存します。
  3. ダウンロードしたYAMLファイルを開き、デバイスキー項目を自身のデバイスキーに置換します。
  4. 次のコマンドをコピーして実行し、YAMLを適用します。
    <device-key>は自身のデバイスキーに置換してください。
    oc create secret generic site24x7-agent --from-literal KEY= <device-key>  && oc apply -f site24x7-openshift-agent.yaml

方法6:VMware Tanzu

VMware Tanzu Kubernetes(TKG)に、デーモンセットとしてSite24x7エージェントをインストールします。

  1. Site24x7 Tanzu KubernetesのYAMLファイルをダウンロードします。
  2. Cloud Shellまたはマスターノードターミナルにファイルを保存します。
  3. site24x7ネームスペースを作成します。
     kubectl create ns site24x7
  4. ラベルを更新して、site24x7ネームスペースに適用します。
    kubectl label --overwrite ns site24x7 pod-security.kubernetes.io/enforce=privileged
  5. 次のコマンドを実行してシークレットを作成し、YAMLに適用します。<device-key>は自身のデバイスキーに置換してください。
    kubectl create secret generic site24x7-agent --from-literal KEY= <device-key> -n site24x7 && kubectl apply -f site24x7-vmware-tanzu-k8s-agent.yaml
プロキシ設定を行う場合は、YAMLファイル内の次の行をアンコメントし、プロキシの値を入力します。
Name: http_proxy
Value:
Name: https_proxy
Value:

監視の編集

Kubernetes監視の編集ページで、Kubernetesクラスター設定を編集できます。

  1. Site24x7画面で、[サーバー]→[Kubernetes]→[クラスター]の順に移動した後、監視名を選択し、[クラスターの詳細]をクリックします。
  2. 表示名横のハンバーガーアイコンから、[編集]を選択します。
  3. 表示名の編集、監視グループへの関連付け、タグ、IT自動化テンプレート、ネームスペースへの包含と除外、設定プロファイルの編集を行えます。
  4. 正規表現(regex)を用いて、一致するリソースを含めたり除外したりすることができます。
    例: zylker.*|zylkertest1.*
    上記の指定では、「zylker」で始まるリソース、または「zylkertest1」で始まるリソースに一致します。
  5. リソース停止設定で、リソース停止アラートのミュート機能を使用して、リソースを停止した際のアラートをミュートします。
    [停止リソースの自動削除]を有効化すると停止されたリソースが削除されます。
  6. [保存]をクリックします。

ダッシュボード

ビジネスビュー

Kubernetes監視が追加されると、クラスター全体を表示するビジネスビューが作成されます。

[インフラストラクチャビュー]と[サービスビュー]を切り替えると、外れ値を見つけて、Kubernetesクラスターの異常な監視パターンを検出します。
詳細は、こちらのページをご確認ください。

インフラストラクチャビュー

クラスター、ノード、ポッド、コンテナの情報をノード単位で表示します。

サービスビュー

クラスター、サービス、ポッド、コンテナの情報をサービス単位で表示します。

パフォーマンスメトリック

Site24x7にコンポーネントを追加すると、次のパフォーマンスメトリックを参照できます。

アラート設定

Kubernetes監視においてしきい値を設定する方法については、こちらのページをご確認ください。

予測

Kubernetesリソースの未来のパフォーマンスを予測し、データ起点のアクションにつなげます。重要メトリックの予測データを取得し、クラスター、ノード、ポッドの可用性を確保します。

Kubernetes変更追跡

Kubernetes変更追跡で設定変更を可視化し、クラスターの確保、問題のトラブルシュート、コンプライアンスへの準拠につなげられます。

依存ツリービュー

Kubernetes依存ツリーで、クラスター要素とそれらの接続を階層化構造で表示します。各Kubernetesリソース間の内部接続を可視化し、問題の特定やリソース使用率の強化につなげられます。

管理アクション

Kubernetes管理アクションを使用すると、ワークロードの再起動、レプリカのスケール、デプロイのロールバック、ノードのドレインなどのクラスタータスクを、監視ダッシュボードから直接実行できます。
これにより、インシデント対応やメンテナンス時に複数のツールを使い分ける手間を減らすことができます。

設定ルール

Kubernetesの設定ルールにより、各監視グループに監視設定変更のためのアクションを割り当てます。設定ルールをリソースグループに割り当てて、すぐに実行して適用することも可能です。

レポート

Site24x7画面で、[レポート]→[Kubernetes]をクリックすると、次のレポートでKubernetes監視について表示できます。

  • サマリレポート
  • 可用性サマリレポート
  • ビジー時間レポート
  • 正常性トレンドレポート
  • パフォーマンスレポート

ガイダンスレポート

Kubernetesクラスター環境の推奨事項を取得して、可用性、セキュリティ、パフォーマンスの強化します。さらに、ITコストの削減も行えます。

キャパシティプランニング

キャパシティプランニングによりCPU、メモリ、ディスク使用率といったメトリックを使用してキャパシティ使用率を追跡し、特定の操作やワークロードのためにKubernetesリソースを最適化します。

コントロールプレーン監視

コントロールプレーンコンポーネントを監視して、クラスター操作をスムーズに維持します。

ノードコンポーネント監視

  • Kube-proxy
    kube-proxyを監視して、Kubernetesクラスター内のサービスネットワーキングを追跡します。プロキシモード、接続追跡、IPTables/IPVSメトリックを可視化し、ネットワーキングボトルネックをトラブルシュートします。
  • CoreDNS
    CoreDNSは、クラスター内のDNSベースの内部サービスディスカバリを処理します。CoreDNSに問題が発生すると、サービス間の通信やワークロードの名前解決が妨げられる可能性があります。Site24x7は、メトリクスを用いてCoreDNSのパフォーマンスを追跡します。
  • Kubelet
    各ノード上のKubeletの正常性状態とパフォーマンスを追跡し、クラスター全体でポッドが予定通りにスケジュール、起動、および実行されていることを確認します。

kubevirt仮想マシン監視

Kubernetesクラスター内のKubeVirt仮想マシン(VM)を追跡し、コンテナーワークロードと並行して、VMIのCPU、メモリ、ストレージ、およびネットワークのパフォーマンスを可視化します。

Kubernetesログ

Kubernetesノード上で稼働しているサーバー監視エージェントを経由してKubernetes環境の下記ログを収集して監視します。

セキュリティ

Site24x7エージェントがKubernetes APIを用いて設定データと基本的なパフォーマンスデータを収集します。

使用しているAPIのバージョンはapps/v1であり、エージェントはRBAC認証を用いてAPIにアクセスします。RBAC認証時には、site24x7-agent.yamlファイル適用時に作成される権限をもつ次のオブジェクトが作成されます。

  • ネームスペース "default"配下にサービスアカウント "site24x7"
  • ノードやポッドのAPIへの権限 "list"および"watch"をもつクラスターロール "site24x7"
  • クラスターロールバインディング "site24x7"

site24x7-agent.yamlファイルが適用されると、RBAC認証トークンが作成されて、自動的にSite24x7エージェントコンテナにマウントされます。このトークンを用いてエージェントがAPIにアクセスしてデータを収集します。

Site24x7エージェントのデーモンセット設定

site24x7-agent.yamlファイルが適用されると、site24x7-agentというデーモンセットが作成されます。このデーモンセットはローリングアップデート戦略に用いられます。

  • site24x7-agentという同一名でポッドが作成されます。
  • イメージ"store/site24x7/docker-agent:<version>"をもつコンテナが作成されます。
    ImagePullPolicyは"Always"に設定されます。
  • ボリュームはコンテナ"/etc/, /var/, /proc/, and /var/run/docker.sock"内に適用されます。

パフォーマンスメトリックの収集

kube-state-metricsは詳細なパフォーマンスデータを収集するために用いられます。これはkube-state-metrics.yamlファイルが適用されている場合のみ有効にできます。パフォーマンスデータはAPIにアクセスすることで収集されます。

http://<KUBE_STATE_IP>:<KUBE_STATE_PORT>/metrics
<KUBE_STATE_IP> -> kube state pod ip
<KUBE_STATE_PORT> -> 8080 by default
待機、稼働、削除状態のコンテナ数、デプロイメント内の利用可能または利用不可なレプリカ数といったメトリックがこれにより有効化されます。

Site24x7エージェントのアクセス

Site24x7エージェントはKubernetes APIの"List"と"Watch"権限のみを所持しており、それによりsite24x7-agent.yamlファイルを特定します。KubernetesオブジェクトデータはKubernetes APIのみを経由して読み取られ、書き込み操作は行いません。そのためエージェントはKubernetesオブジェクトの作成や更新が行えません。エージェントが収集したデータはKubernetesが首位証している認証メソッドでのみ収集されます。

ライセンス

1Kubernetesクラスターごとに1ベーシック監視とみなされます。
詳細は、こちらのページをご確認ください。

[サーバー]→[Kubernetes]→[クラスター]に移動し、消費ライセンス数を表示できます。
特定のクラスターのライセンス使用量列に表示されている数字をクリックすることで消費量の詳細にドリルダウンできます。

FAQ