使用New Relic・Pixie来对Kubernetes进行可视化
首先
这篇文章是New Relic Advent Calendar 2022的第四天的文章。
由於以前聽過New Relic的名字,但從來沒有使用過,這次的聖誕專題讓我決定好好體驗一下。
去年的聖誕專題中,@inductor先生介紹了Pixie,讓我對它很感興趣,所以我想多了解一下。
在某个环境中尝试
我们选择使用 Azure Kubernetes Service (AKS) v1.23.12 作为导入的 Kubernetes。
将New Relic引入Kubernetes


请输入以下项目的信息。
-
- We’ll send your data to this account: データ送信先のNew Relicアカウントを選択します。1つしかアカウントがなければそのままでOKです。
-
- Cluster Name: New Relic上で表示されるKubernetesクラスターの名前を入力します。今回はAKSという名前にしました。
- Namespace for the integration: New RelicのエージェントがデプロイされるKubernetesのNamespaceを入力します。今回はデフォルトのnewrelicのままとします。


在下一个画面上,将显示安装步骤。
-
- New Relic CLIを使ってインストールする(Guided Install)
-
- Helm 3でインストールする
- Manifestを生成する

"newrelic" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "newrelic" chart repository
Update Complete. ⎈Happy Helming!⎈
namespace/newrelic created
NAME: newrelic-bundle
LAST DEPLOYED: Sat Dec 3 17:19:10 2022
NAMESPACE: newrelic
STATUS: deployed
REVISION: 1
TEST SUITE: None
让我们检查已部署Pod的启动状态。
kubectl get pod -n newrelic
只要所有的任务状态都是运行或完成,就没有问题了。
NAME READY STATUS RESTARTS AGE
kelvin-655b8fdccd-cw9l8 1/1 Running 0 2m54s
newrelic-bundle-kube-state-metrics-547fc6d94f-fx7vt 1/1 Running 0 4m21s
newrelic-bundle-newrelic-pixie-fq8mg 0/1 Completed 0 4m21s
newrelic-bundle-newrelic-prometheus-agent-0 1/1 Running 0 4m21s
newrelic-bundle-nri-kube-events-f8ffcd4db-vfgvt 2/2 Running 0 4m21s
newrelic-bundle-nri-metadata-injection-7f9d67967f-c8xw8 1/1 Running 0 4m21s
newrelic-bundle-nrk8s-ksm-8448567987-tcx6v 2/2 Running 0 4m21s
newrelic-bundle-nrk8s-kubelet-6sk84 2/2 Running 0 4m21s
newrelic-bundle-nrk8s-kubelet-gdksv 2/2 Running 0 4m21s
newrelic-bundle-nrk8s-kubelet-xd9gm 2/2 Running 0 4m21s
pl-nats-0 1/1 Running 0 3m3s
vizier-cloud-connector-fd69bb6cd-ksw6r 1/1 Running 0 2m54s
vizier-metadata-0 1/1 Running 0 2m54s
vizier-pem-nl9mc 1/1 Running 0 2m54s
vizier-pem-tsb4f 1/1 Running 0 2m54s
vizier-pem-v8nj2 1/1 Running 0 2m54s
vizier-query-broker-5c5cc5c684-fcfrl 1/1 Running 2 (53s ago) 2m54s

当您稍作等待,屏幕会显示“?我们已经成功接收到您的集群数据。”



精灵
Pixie是一个监控工具,目前是CNCF的沙盒项目。
其特点是使用eBPF进行信息收集,即使不对应用程序进行任何更改也可以获取各种信息。
如果使用默认设置安装New Relic,则会同时安装Pixie。在上述Helm命令中,还指定了–set pixel-chart.enabled=true选项。显示部分也已与New Relic的图形用户界面集成。
下面是关于Pixie能够查看的一些信息的一些精选介绍。
将HTTP请求可视化



框架图

上述的Pod是直接部署Docker官方的nginx而不做任何修改。这意味着可以获取这些信息而不需要在程序内嵌入代理。
SQL的可视化


本功能的目标是PostgreSQL和MySQL两种关系型数据库管理系统。
根据下面的列表来看,除了关系数据库管理系统(RDBMS)之外,似乎也支持对Redis/Kafka/Cassandra进行信息获取。
总而言之
只需安装New Relic(和Pixie),就可以轻松可视化Kubernetes的各种信息。这样即使不介入应用程序,也能获取信息,真是方便。
顺便提一点未解决的问题。
根据此页面上的图表内容,我想知道是否支持获取通过OpenSSL加密的通信内容,但在连接到PostgreSQL时,如果不禁用SSL,则无法获取信息。
我认为这可能是配置或环境问题,但由于时间紧迫,就在这里截止了。我相信会有专业人士给出指正,所以我会继续发帖…。