免费动画模板素材网站,秀米编辑器官网,前端开发培训机构知乎,怎样才能做网站在本教程的前两部分#xff0c;我们分别了解和学习了Prometheus 和 Grafana 的基本概念和使用的前提条件#xff0c;以及使用 Helm 在 Kubernetes 上安装 Prometheus。 在今天的教程中#xff0c;我们将为你介绍以下内容#xff1a; 安装 Grafana#xff1b;集成 Promethe…在本教程的前两部分我们分别了解和学习了Prometheus 和 Grafana 的基本概念和使用的前提条件以及使用 Helm 在 Kubernetes 上安装 Prometheus。 在今天的教程中我们将为你介绍以下内容 安装 Grafana集成 Prometheus 和 GrafanaGrafana 将使用 Prometheus 作为数据源使用 Grafana 创建用于监控和观察 Kubernetes 集群的控制面板。 安装 Grafana
安装时我们遵循与安装 Prometheus 相同的步骤 搜索 Grafana Helm Chart
要搜索 Prometheus Helm Chart请运行以下命令 helm search hub grafana您还可以访问 ArtifactHub 存储库并搜索官方 Grafana Helm Chart如下图所示 要获取此 Grafana Helm Chart请运行以下命令 helm repo add grafana https://grafana.github.io/helm-charts
helm repo update输出结果 在 Kubernetes 集群上安装 Grafana Helm Chart
运行此 helm install 命令 helm install grafana grafana/grafana输出结果 现在我们已经在 Kubernetes 集群上安装了 Grafana。我们可以通过端口 80 访问 Grafana 服务器。下一步是访问并启动 Grafan 应用程序。您将使用 Grafana 的 Kubernetes 服务访问该应用程序。要获取 Grafana 的所有 Kubernetes 服务请运行以下命令 kubectl get service输出结果 我们将使用 grafana Kubernetes 服务来访问 Grafana 应用程序。grafana Kubernetes 服务也是 ClusterIP 类型。您只能从 Kubernetes 集群内部访问它。我们需要公开这个 Kubernetes 服务以便在 Kubernetes 集群外部访问它。 公开 grafana Kubernetes 服务
kubectl expose service grafana --typeNodePort --target-port3000 --namegrafana-ext此命令会将 ClusterIP 类型转换为 NodePort 类型。这样grafana 可以通过端口 3000 在 Kubernetes 集群外部访问。现在我们已经公开了grafana Kubernetes 服务。让我们使用以下命令访问 grafana 应用程序 minikube service grafana-ext该命令生成以下 URL URL 可能需要一些时间才能可用。您需要在浏览器上重试几次直到使用此 URL 访问 Grafana Kubernetes 应用程序。您还需要保持终端打开并运行命令以便继续访问服务。 上图显示的是 Grafana 登录页面。要获取 admin 的密码请在新终端上运行以下命令。 kubectl get secret --namespace default grafana -o jsonpath{.data.admin-password} | base64 --decode ; echo注意您需要打开一个新终端来运行此过程以便 Grafana 保持运行。 登录 Grafana
要登录 Grafana请输入 admin 作为用户名和生成的密码。它将启动 Welcome to Grafana 主页如下所示 要将 Prometheus 添加为数据源请按照以下步骤操作 1. 在欢迎页面上单击 Add your first data source : 2. 选择 Prometheus 作为数据源 3. 然后添加运行 Prometheus 应用程序的 URL。这是我们之前运行 minikube service prometheus-server-ext 时显示的第一个 URL集群内部。 4. 点击 Save test 保存更改。 这样您就完成了在 Kubernetes 上将 Prometheus 和 Grafana 与 Helm 集成的工作。 最后一步是创建 Grafana 控制面板。这将帮助我们可视化 Kubernetes 集群指标。 Grafana 控制面板
如前所述您可以选择从头开始创建控制面板。您还可以导入 Grafana 已经提供模板。在本节中我们将导入一个 Grafana Dashborad。 要导入 Grafana 控制面板请按照以下步骤操作 从 Grafana 公共控制面板库中获取 Grafana 控制面板 ID 在此网页上搜索 Kubernetes 滚动直到找到 Kubernetes 集群监控通过 Prometheus控制面板 选择控制面板并复制控制面板 ID 回到Grafana点击左上角Home 在菜单上单击 Dashboards : 单击 New : 屏幕上会显示三个选项: New Dashboard , New Folder 和Import 。 单击 Import 添加 Grafana ID添加已复制的 Grafana ID然后单击 Load 。Grafana ID 是 315。 选择 Promethues 数据源并单击 Import : 它将启动如下所示的控制面板 您可以使用此控制面板来监视和观察 Kubernetes 集群指标。它显示以下 Kubernetes 集群指标 网络 I/O 压力集群 CPU 使用率集群内存使用情况集群文件系统使用情况Pod CPU 使用率 附加步骤
将 Prometheus 和 Grafana 部署到 Azure Kubernetes 服务 (AKS) 等基于云的生产集群时需要执行以下操作。 为 Prometheus 创建持久卷
持久卷资源用于管理集群中的持久和永久存储。管理员提供一个持久卷以明确存储数据。它可以将数据存储在 本地计算机网络共享云供应商提供的 block 存储卷 无论 Kubernetes 应用程序、pod、应用程序容器甚至 kubernetes 集群本身的生命周期/状态如何持久卷数据都会持续保存。下面的示例代码展示了如何创建持久卷以保留应用程序数据 apiVersion: v1
kind: PersistentVolume
metadata:name: pvc-prometheus-migration-prometheus-0
spec:accessModes:- ReadWriteOnceazureDisk:cachingMode: NonediskName: pvc-prometheus-migration-prometheus-0diskURI: /subscriptions/f5125d82-2622-4c50-8d25-3f7ba3e9ac4b/resourceGroups/sample-migration-resource-group/providers/Microsoft.Compute/disks/pvc-prometheus-migration-prometheus-0fsType: kind: ManagedreadOnly: falsecapacity:storage: 1GipersistentVolumeReclaimPolicy: DeletestorageClassName: prometheusvolumeMode: Filesystem您将创建一个新的 .yaml 文件并添加上面的代码此代码将在服务重新启动之间保留您的数据。 要将持久卷添加到集群请运行以下命令 kubectl apply -f prometheus-persistent-volume.yaml用于 Prometheus 的 PVC
PVCPersistent Volume Claim表示 pod 为获得实际块存储而提出的数据存储请求。PVC 消耗 Persistent Volume 数据资源。 PVC 可以请求特定的数据大小和访问模式。下面的示例代码显示了如何创建持久卷请求以访问持久卷 apiVersion: v1
kind: PersistentVolumeClaim
metadata:labels:app.kubernetes.io/name: prometheusprometheus: prometheus-migration-prometheusname: prometheus-prometheus-migration-prometheus-db-prometheus-prometheus-migration-prometheus-0namespace: monitoring
spec:accessModes:- ReadWriteOnceresources:requests:storage: 1GistorageClassName: prometheusvolumeMode: FilesystemvolumeName: pvc-prometheus-migration-prometheus-0要将 PVC 添加到群集请运行此命令 kubectl apply -f prometheus-persistent-volume-claim.yaml为 Grafana 创建持久卷和 PVC
以下示例代码将为 Grafana 创建持久卷 apiVersion: v1
kind: PersistentVolume
metadata:name: pv-grafana-storagenamespace: monitoringlabels:type: nfs
spec:storageClassName: managed-nfscapacity:storage: 1GiaccessModes:- ReadWriteOncenfs:server: (your Production prometheus)path: /mnt/nfs/grafana-storage要将 PVC 添加到集群请运行以下命令 kubectl apply -f grafana-persistent-volume-claim.yaml配置 Prometheus RBAC 权限
在将 Prometheus 和 Grafana 部署到生产环境之前您将使用 ClusterRole 配置 RBAC 权限。然后使用 ClusterRoleBinding 对象将此 ClusterRole 绑定到 ServiceAccount。 配置 Prometheus RBAC 权限的示例 yaml 代码 apiVersion: v1
kind: ServiceAccount
metadata:name: prometheus
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:name: prometheus
rules:
- apiGroups: []resources:- nodes- nodes/metrics- services- endpoints- podsverbs: [get, list, watch]
- apiGroups: []resources:- configmapsverbs: [get]
- apiGroups:- networking.k8s.ioresources:- ingressesverbs: [get, list, watch]
- nonResourceURLs: [/metrics]verbs: [get]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:name: prometheus
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects:
- kind: ServiceAccountname: prometheusnamespace: default要将 RBAC 权限添加到集群请运行以下命令 kubectl apply -f rbac-permissions.yaml创建 Prometheus Kubernetes 服务
Prometheus Kubernetes 服务将公开正在运行的 Prometheus 应用程序以允许外部访问。 创建 Prometheus Kubernetes 服务的 YAML 示例 apiVersion: v1
kind: Service
metadata:name: prometheuslabels:app: prometheus
spec:ports:- name: webport: 9090targetPort: 80selector:app.kubernetes.io/name: prometheussessionAffinity: ClientIP要将 Prometheus 服务添加到集群请运行以下命令 kubectl apply -f prometheus-service.yaml创建 Grafana Kubernetes 服务
Prometheus Kubernetes 服务将公开正在运行的 Grafana 应用程序以允许外部访问 Grafana 控制面板。 用于创建 Grafana Kubernetes 服务的示例 YAML apiVersion: v1
kind: Service
metadata:name: grafananamespace: monitoringannotations:prometheus.io/scrape: trueprometheus.io/port: 3000
spec:selector: app: grafanatype: NodePort ports:- port: 3000targetPort: 80nodePort: 32000要将 Grafana 服务添加到集群请运行以下命令 kubectl apply -f grafana-service.yaml完成这些附加步骤后您就可以在生产中运行 Prometheus 和 Grafana 了。 总结
在本期教程中我们带您一起学习了如何使用 Helm 在 Kubernetes 上集成 Prometheus 和 Grafana。此外还详细介绍了如何在 Grafana 上创建一个简单的控制面板以便跟踪 Kubernetes 集群上的资源和性能指标。为了更好地跟踪 Kubernetes 集群和微服务性能监控至关重要。