PrometheusとGrafanaによるKubernetes‐Nginxイングルコントローラの監視



私はどのようにNginx Kubernetes Ingress Controllerをセットアップすることができるかを説明しました、しかし、我々は現在これをモニターすることができますか?この記事では、プロメテウスとグラファナをどのように利用してイングルのコントローラーで何が起きているのかを視覚化するためにどのように利用できるかについて、本論文で取り上げたい.

必要条件


次のコンポーネントを実行すると、次のコンポーネントが実行されます.
  • の中で展開されるNGinx Ingressコントローラingress-nginx 名前空間
  • を介して到達できるデモアプリケーションingress ルート
  • これらの2つのコンポーネントを実行していない場合は、私はそれをチェックアウトに行くことをお勧めします!

    プロメテウスの設置


    参照を開くと ingress-nginx online プロメテウスをインストールするのはとても簡単であるべきです.
    PromeTusサーバーを配備して構成するには、次の手順を実行します.
    kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/prometheus/
    
    これが完了すると(~ 2分)、作成されたすべての出力が表示されます.
    serviceaccount/prometheus-server created
    role.rbac.authorization.k8s.io/prometheus-server created
    rolebinding.rbac.authorization.k8s.io/prometheus-server created
    configmap/prometheus-configuration-hct76d4c56 created
    service/prometheus-server created
    deployment.apps/prometheus-server created
    
    「ハード」部分に今すぐに-私たちのnginxを再構成します.

    Note: at the time of writing (20-SEP-2020) the documentation was incomplete, making me spend 5h on the issue of reconfiguring nginx...


    Nginxの再構成


    メトリックがプロメテウスに送られるのを許すためにNGinxを再構成することは簡単な仕事として聞こえるかもしれません、しかし、実際にそれはそうです.この点に関して公式文書が不足しているように見えるrecent pull request 必要ですServiceMonitor 使用する.
    ServiceMonitorのインストールは良いオプションですが、official repository これはまだ“ベータ”であることを示していますので、このオプションを設定するのに最適なオプションではありません.
    幸いにも私たちのために我々は常に我々の定義で値をチェックすることができますhelm chart , それは、我々がまだ利用できることを示しますprometheus annotations .
    そのため、以下のコマンドでヘルムチャートをアップグレードします.
    helm upgrade ingress-controller ingress-nginx/ingress-nginx \
      --namespace ingress-nginx \
      --set controller.metrics.enabled=true \
      --set-string controller.podAnnotations."prometheus\.io/scrape"="true" \
      --set-string controller.podAnnotations."prometheus\.io/port"="10254"
    
    これを以下のコマンドで検証すると
    helm get values ingress-controller --namespace ingress-nginx
    
    私たちの価値観は次のように設定されます.
    controller:
      metrics:
        enabled: true
        service:
          annotations:
            prometheus.io/port: "10254"
            prometheus.io/scrape: "true"
    
    今すぐプロメテウスダッシュボードを開きます.kubectl get nodes と外部IPアドレスを取得し、プロメテウスポートを介してkubectl get svc -A ) と入力を開始ng それは私たちのメトリックを示しています!

    グラファナのインストール


    ここからは、フィニッシュラインにスムーズに乗る!我々は、単に次のことができますofficial documentation Grafanaをインストールします.
    kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/grafana/
    
    これが完了したら、prometheusと同じようにして、ブラウザでgrafanaダッシュボードを開きます.kubectl get nodes ; kubectl get svc -A ) ここで使用できるadmin:admin 当社の資格情報として次の手順を実行します.
  • データソースの追加
  • 「プロメテウス」を選択
  • 詳細を入力しますhttp://CLUSTER_IP_PROMETHEUS_SVC:9090 )
  • 左のメニュー(上のホバー)->ダッシュボード
  • をクリックします
  • コピーされたJSONをhttps://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/grafana/dashboards/nginx.json
  • をクリックします
  • プロメテウスデータソースを選択します
  • をクリックします

  • 結論


    この記事では、以前のアプリケーションのInteressコントローラを監視する方法を学びました.これの目標は、次のポストには自動的に生成されたインフラは、着信要求に基づいてスケールすることができます!

    Note: feel free to check the original post at my blog https://xaviergeerinck.com