如何使用Helm在Kubernetes上安装Netdata

时间:2020-02-23 14:31:44  来源:igfitidea点击:

Netdata是用于监视和故障排除系统的开源解决方案。它可用于监视kubernetes集群并显示有关集群的信息,包括节点内存使用率,CPU,网络等。

Netdata仪表板可让我们全面了解Kubernetes集群,包括在每个节点上运行的服务和Pod。

在本文中,我们将介绍如何使用Helm图表在Kubernetes集群上部署Netdata。这种安装在每个工作节点上的主Pod和子Pod上部署一个父Pod。

子Pod从运行它们的节点收集度量,从节点收集kube-proxy,kubelet和cgroup度量。

子节点还使用通用的Prometheus收集器和服务发现来传递指标。

准备工作

在我们的群集上安装Netdata之前,我们需要满足以下条件:一个功能完整的Kubernetes群集v1.9及更高版本.Kubectl命令行工具Helm软件包管理器3.0.0及更高版本。

使用Helm在Kubernetes上安装Netdata

使用以下步骤通过Helm图表在Kubernetes集群中安装Netdata。

在Linux或macOS上安装Helm

这些是在Linux或macOS上安装Helm的步骤。从此链接下载Helm软件包

使用tar -xvzf <downloaded-package>提取软件包将二进制文件移动到usr/local/bin/helm

我们将使用自动执行上述步骤的安装脚本。

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
sudo ./get_helm.sh

macOS用户还可以使用Brew软件包管理工具。

$brew install helm

安装完成后,请检查当前版本以确认:

$helm version
version.BuildInfo{Version:"v3.4.0", GitCommit:"7090a89efc8a18f3d8178bf47d2462450349a004", GitTreeState:"clean", GoVersion:"go1.14.10"}

添加头盔图表存储库,然后更新头盔

$helm repo add stable https://charts.helm.sh/stable
$helm repo update

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈

使用Helm图表安装Netdata

我们可以使用两种方法安装Helm图表:从Netdatas Helm存储库安装克隆Netdata Git存储库。

我们将探讨两种方法

从Helm存储库安装

添加Netdatas Helm存储库,然后安装Helm图表

helm repo add netdata https://netdata.github.io/helmchart/
helm install netdata netdata/netdata
克隆Github存储库

确保我们已将git安装到系统上

在本地克隆git存储库

git clone https://github.com/netdata/helmchart.git netdata-helmchart

安装图表

helm install netdata ./netdata-helmchart/charts/netdata

现在,我们可以通过以下方式查看头盔部署:

$helm list
NAME   	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART        	APP VERSION
netdata	default  	1       	2017-11-20 18:41:46.244774507 +0000 UTC	deployed	netdata-3.1.0	v1.26.0

要检查父容器和子容器是否已成功部署:

$kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
netdata-child-fgh5c               2/2     Running   0          16h
netdata-child-qzhjp               2/2     Running   0          16h
netdata-child-ssmhp               2/2     Running   0          16h
netdata-parent-55d88fc784-x66ss   1/1     Running   0          16h

使用NodePort公开Netdata-parent

在本教程中,我们将使用NodePort公开netdata部署

Netdata默认配置为在端口19999上运行。

要公开端口,请使用以下命令:

$kubectl expose  deployment netdata-parent --type="NodePort" --port 19999

现在,我们可以使用" kubectl get service"命令来检查服务已公开的端口:

$kubectl get service
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
kubernetes       ClusterIP   10.96.0.1       <none>        443/TCP           21h
netdata          ClusterIP   10.99.202.135   <none>        19999/TCP         17h
netdata-parent   NodePort    10.97.24.181    <none>        19999:30939/TCP   16h

在我们的部署中,netdata-parent服务已公开给端口30939.

我们现在可以通过http://<yourmaster-IP>:NodePort访问浏览器中的netdata仪表板。

例如" http://172.16.1.4:30939"是我们的信息中心的网址。

我们可以检查左窗格中列出的所有节点的指标,如下面的屏幕截图所示。

然后,我们可以选择任何节点来检查统计信息