New Relic OneでKubernetes Cluster Explorerをみてみる

### New Relic One 関連記事

- [New Relic Oneが公開されました](https://qiita.com/takayoshitanaka/items/6193152554054b4911cf)

### Kuberneteds Cluster Explorer

今回はNew Relic OneでKubernetes Cluster Explorerをみてみます。もし既存のNew Relicですでにcluster explorerをみるためにkubernetesをセットアップしている場合、New Relic Oneでみるための特別な手順は不要です。またセットアップは監視対象のkubernetesクラスターに対して操作を行いますが、New Relic Oneリリース後も変わりはなく、新たにセットアップするとNew Relic Oneと既存のNew Relicの両方で表示されます。

#### セットアップ

Kubernetesへのインストールについてはこちらにドキュメントがあります。インストール自体は`kubectl`が使えれば実行できるので、Windowsからでも操作できるはず。しかし、ドキュメントに記載の一部コマンドがLinuxやMacのシェルを想定しているので、コマンドプロンプトやPowerShellではうまく動かないと思います。手動で操作するか、WSLなどの利用をご検討ください。

https://docs.newrelic.co.jp/docs/integrations/kubernetes-integration/installation/kubernetes-installation-configuration

また、EKS,AKS,GEKといったマネージドなkubernetesサービスの場合と、OpenShiftの場合は注意書きがありますので、[`Install on Kubernetes managed services and platforms`](https://docs.newrelic.co.jp/docs/integrations/kubernetes-integration/installation/kubernetes-installation-configuration#cloud-platforms)をご確認ください。今回スクリーンショットに使っている画像はAKSに対してインストールしたものです。

操作の流れを紹介します。

まず最初に`kube-state-metrics`をインストールします。これはNew Relic固有のものではなく、kubernetesから提供されているものです。New Relicのドキュメントにはコマンド例が乗っていますが、kubernetesのドキュメントをみて環境に合わせてインストールして頂いて構いません。

https://github.com/kubernetes/kube-state-metrics#kubernetes-deployment

次にNew Relicが提供しているインテグレーション用のkubernetesのオブジェクト定義ファイルをダウンロードします。いったん編集する必要があります。

https://download.newrelic.com/infrastructure_agent/integrations/kubernetes/newrelic-infrastructure-k8s-latest.yaml

`NRIA_LICENSE_KEY`に自分のライセンスキーを、`CLUSTER_NAME`にCluster Explorer上で識別する名前を指定します。また環境によっては追加で必要な設定もあるので`Optional: Complete these steps as applicable:`の手順をご確認ください。

リソースを作る前に`kube-state-metrics`がインストールされ実行されていることを確認します。
```kubectl get pods --all-namespaces | grep kube-state-metrics
```
例えばこのように表示されるはずです。
```kube-system   kube-state-metrics-597754dd6b-bszcj                               2/2     Running     0          5m
```

確認できたら、先ほど編集したファイルを元にリソースを作成します。
```kubectl create -f newrelic-infrastructure-k8s-latest.yaml```

この後、daemonsetが作成され、Podが動き出せば、Cluster Explorerから見えるようになります。

#### Cluster Explorer

Kubernetes Cluster Explorerはトップページのタイルか、`Entity explorer`などからアクセスできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/e5b0a7ec-0cc2-d95c-8803-5435ebae5ccb.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/f45d093c-2bf7-ae05-de0b-36874afa1b29.png)

以前とあまり変わっていません。上にノードとポッドを表した様子が描かれ、下にスクロールすると実行しているポッドが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/5f44ca19-4e10-3973-4624-0607f421c73b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/4db0e7a9-5fd0-c203-6e97-33cbcfba67b2.png)

上の絵は、長方形がノードを、放射線上に位置する六角形がポッドを表します。ノード、ポッドを選択するとリソース消費量がわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/cd4a8012-68bc-a70b-ff61-9196d38396ad.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/419c8b54-bcbd-8008-9a51-1ac0a7232f4b.png)

また複数のコンテナで構成されるPodはそれぞれのPodを確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/8f227bc5-f6e0-7aa1-f847-08ae3ff15761.png)

さらに上のフィルターを使うとdeployment、namespace、nodeの名前で表示をフィルタリングできます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/aeebad3f-e499-c66a-2ed2-f7a094941cc6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405931/7dafabe1-80ae-3bf4-e973-71241f394b63.png)

基本的に今表示できるものはこのくらいで、詳細なメトリクスの表示やアラートの設定については上の`kubernetes dashboard`から今までのダッシュボードに移動する必要があります。なお、既存のダッシュボードで表示されているもので、NRQLで記述できるものはNew Relic Oneのダッシュボードに表示できるようになります。このダッシュボードに乗せるためのチャートの作り方については別途説明の記事を書きたいと思います。