在New Relic中监视Kubernetes的方式

首先

为了监视Kubernetes,我尝试使用New Relic Infrastructure的Kubernetes集群浏览器。根据官方文档进行了配置,下面将介绍配置方法。

背景 –

Kubernetes是一种容器编排工具。虽然Kubernetes本身能够进行自动修复,但监控仍然是必要的。另外,不仅限于Kubernetes,监控应该考虑指标易读性和管理易于操作性等方面。

所以我关注的是 New Relic https://newrelic.com/。
它能够将 Kubernetes 复杂的内容以直观易懂的方式展示出来。
因为它看起来很方便,所以我尝试使用了一下。

image.png

设置步骤

我将执行以下事项。

    • Kubernetes に kube-state-metrics を設定する

 

    • Kubernetes に New Relic のデーモンセットを設定する

 

    New Relic にて監視する

kube-state-metrics是作为Kubernetes的插件提供的监控工具。通过kube-state-metrics获取的指标将被发送到New Relic,从而实现在New Relic上集中管理Kubernetes!

kube-state-metrics 的配置

次のコマンドで kube-state-metrics を設定します。
内容は kube-state-metrics をダウンロードし、zipファイルを解凍、Kubectl にて環境へ Apply です。

curl -o kube-state-metrics-1.4.zip https://codeload.github.com/kubernetes/kube-state-metrics/zip/release-1.4 && unzip kube-state-metrics-1.4.zip && kubectl apply -f kube-state-metrics-release-1.4/kubernetes

実行した結果 created と表示されれば成功です。

clusterrolebinding.rbac.authorization.k8s.io/kube-state-metrics created
clusterrole.rbac.authorization.k8s.io/kube-state-metrics created
deployment.apps/kube-state-metrics created
rolebinding.rbac.authorization.k8s.io/kube-state-metrics created
role.rbac.authorization.k8s.io/kube-state-metrics-resizer created
serviceaccount/kube-state-metrics created
service/kube-state-metrics created

上記は Version1.4 の例であるため、最新版は git から取得してください。
https://github.com/kubernetes/kube-state-metrics/

実際に行っていることは、下記ディレクトリに用意されているyamlファイルを使って、Kubernetes に Apply しています。
https://github.com/kubernetes/kube-state-metrics/tree/master/kubernetes

次に Kubernetes に適応されたかを確認します。

$ kubectl get pods --all-namespaces | grep kube-state-metrics
kube-system kube-state-metrics-7d799b9c7d-kd8bd 2/2 Running 0 31m

kube-state-metrics が Running になっていることが分かります。
これで kube-state-metrics の設定は完了です。

设置New Relic的守护进程集合

Kubernets の場合、ノードを複数作成し Pod(コンテナ) を分散配置させるため、各ノードで情報収集し New Relic へデータを送信できる仕組みが必要になります。
そこでデーモンセットを作成することで各ノードに必ず一つの Pod(コンテナ:集めたデータを New Relic へ送信する処理) を配置することができます。
これにより全ノードのデータを New Relic へ送信できるようになります。

由于有一个yaml文件可供使用,因此请进行下载。

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

请将 yaml 文件中的 [YOUR_LICENSE_KEY] 和 [YOUR_CLUSTER_NAME] 进行修改。

env:
  - name: NRIA_LICENSE_KEY
    value: YOUR_LICENSE_KEY
  - name: CLUSTER_NAME
    value: YOUR_CLUSTER_NAME

修改后,将创建一个Kubernetes的守护进程集。

kubectl create -f newrelic-infrastructure-k8s-latest.yaml

确认已创建的守护程序集正在运行。

$ kubectl get pods --all-namespaces
default                newrelic-infra-65444                            1/1     Running   0          1m
default                newrelic-infra-9pgbl                            1/1     Running   0          1m
default                newrelic-infra-kj54p                            1/1     Running   0          1m
default                newrelic-infra-l5xpr                            1/1     Running   0          1m
default                newrelic-infra-lzpwk                            1/1     Running   0          1m
default                newrelic-infra-qmx2j                            1/1     Running   0          1m
default                newrelic-infra-s976f                            1/1     Running   0          1m
default                newrelic-infra-tkg85                            1/1     Running   0          1m

确认到正在运行中。
如果运行时出现问题,请怀疑yaml文件中的[YOUR_LICENSE_KEY]和[YOUR_CLUSTER_NAME]是否有错误。(您也可以通过kubectl logs来确认情况)

设置在这里完成。

在New Relic上确认

我将登录 https://infrastructure.newrelic.com/ 并确认是否可以进行监控。

image.png
image.png
image.png

以上是设置的方法。

总结

按照公式文档的步骤进行操作,但没有遇到问题并成功进行了设置。
我认为Kubernetes集群可以很方便地进行统一管理,即使创建多个集群。
本次只是完成了设置,下次我希望能加入监控要点等内容!

请查阅相关资料。

广告
将在 10 秒后关闭
bannerAds