如何使用Prometheus和Grafana监控Kubernetes集群

时间:2020-03-05 15:31:10  来源:igfitidea点击:

如果我们阅读了上一篇关于KOP的文章以及如何制作群集,本文将是它的延续。
我们将需要kubernetes群集,我们将安装Prometheus和Grafana。

我们可能需要升级此群集,我将显示本文的方式。

用kops升级群集

对于Prometheus的成功操作,我们需要Kubernetes 1.7.3,我们实际上将升级到1.7.5.

要设置升级,我们需要使用以下命令编辑群集的YAML:

kops edit cluster

然后我们将改变说Kubernetesversion的行看起来像这样:

kubernetesVersion: 1.7.5

接下来,我们将尝试对有效性进行配置

kops update cluster

然后通过使用标志--yes运行相同的命令来实际更新群集。

kops update cluster --yes

KOP完成此过程后,我们可能会提示我们也可以进行滚动更新。
我们可以使用以下命令执行以下操作:

kops rolling-update cluster

我们再次需要说--yes进行更改

kops rolling-update cluster --yes

这将重新启动所有AWS实例,并且当它们备份时,我们将想再次验证群集以查看全部是否顺利。

kops validate cluster

设置Prometheus和Grafana

我们完成了更新群集,我们现在需要在它的顶部安装Prometheus和Grafana。
我们将首先克隆存储库。

git clone https://github.com/camilb/prometheus-kubernetes.git

接下来,我们将将目录更改为此。

cd prometheus-kubernetes/

我们将编辑Prometheus的服务文件,以从Clusterip更改为LoadBalancer

nano k8s/prometheus/prometheus.svc.ss.yaml

只需找到ClountPip并更改为LoadBalancer,看起来类似于(但不是完全):

apiVersion: v1
kind: Service
metadata:
 annotations:
 prometheus.io/scrape: 'true'
 labels:
 name: prometheus
 name: prometheus
 namespace: monitoring
spec:
 selector:
 app: prometheus
 type: LoadBalancer
 ports:
 - name: prometheus
 protocol: TCP
 port: 9090
 targetPort: 9090

我们还将编辑Grafana服务,但在这种情况下,我们需要添加类型字段符号字段。

Nano K8S/Grafana/Grafana.svc.de.yaml

spec:
 type: LoadBalancer
 ports:
 - port: 3000
Now we are ready to go, Execute ./init.sh command and work the prompt as follows
Enter Grafana version [4.5.0]:
 Enter Prometheus version [v2.0.0-beta.3]:
 Enter Alert Manager version [v0.8.0]:
 Enter Node Exporter version [v0.14.0]:
 Enter Kube State Metrics version [v1.0.1]:
 Enter Dockerhub username []: yourdockerhubusername
Do you want to set up an SMTP relay?
 Y/N [N]: n
Do you want to set up slack alerts?
 Y/N [N]: n
Do you want to monitor EC2 instances in your AWS account?
 Y/N [N]: n
Creating 'monitoring' namespace.
 namespace "monitoring" created
Using RBAC?
 [y/N]: y

现在等待几分钟,然后寻找Grafana和Prometheus服务。
完成后,我们需要获取LoadBalancer的地址以访问Web UI。
我们可以使用此命令进行此操作

kubectl describe svc -n monitoring prometheus grafana

我们所在的线路是LoadBalancer Ingress和Port。
Grafana端口是3000,对于Prometheus为9090.我们需要它们与负载平衡器一起形成URL。
例如这样的

启动密码是admin on username admin。
你可能想要改变这个。
正如我们所看到的,Prometheus乐于监视我们的Kubernetes集群并将数据发送到Grafana仪表板。
当我们决定删除Grafana和Prometheus时,我们可以通过执行./remove.sh脚本在存储库中执行此操作。
如何删除kops群集已在上一篇文章中显示,但让我们再说一遍,这里是命令

kops delete cluster --name cluster2.k8s.local --yes