如何用Datadog监云服务器华为控Kubernetes+Docker

产品分类 虚拟云 浏览

小编:码头工人/库伯内特斯/AutoDiscoveryKubernetes于2014年由谷歌开源,它的流行度稳步上升,几乎成为Docker编排的代名词。Kubernetes正被诸如Box和GitHub这样的前瞻性组织广泛采用,原因有很多:

如何用Datadog监控Kubernetes+Docker

码头工人/库伯内特斯/AutoDiscoveryKubernetes于2014年由谷歌开源,它的流行度稳步上升,几乎成为Docker编排的代名词。Kubernetes正被诸如Box和GitHub这样的前瞻性组织广泛采用,原因有很多:它活跃的社区、快速的开发,当然还有它在动态容器上调度、自动化和管理分布式应用程序的能力基础设施。库伯内特斯+在本指南中,我们将介绍如何为Kubernetes编排的容器化应用程序设置监视。我们将使用Kubernetes项目中的guestbook go示例应用程序。举个例子,我们将逐步了解m的几个不同层次监测:收集Kubernetes以及节点中的Docker指标Collecting metrics with Autodiscovery:默认检查配置使用Autodiscovery收集指标:自定义检查配置安装将自定义指标发送到DatadogCollect Kubernetes和Docker的应用程序首先,您需要部署Datadog代理来从Kubernetes和Docker收集关键资源度量和事件,以便在Datadog中进行监视。在本节中,我们将向您展示一种将容器化Datadog代理作为守护进程安装在Kubernetes集群中的每个节点上的方法。或者,如果您只想在特定的节点子集上安装它,您可以向pod添加一个nodeSelector字段配置。分析以及聚合Docker和Kubernetes度量数据狗。试试如果Kubernetes集群使用基于角色的访问控制(RBAC),则可以部署Datadog代理的RBAC清单(RBAC-yaml探员)到授予它在集群中操作所需的权限。执行此操作将为创建ClusterRole、ClusterRoleBinding和ServiceAccountCopykubectl探员创建-f"https://raw.githubusercontent.com/DataDog/DataDog-agent/master/Dockerfiles/manifests/cluster-agent/rbac/rbac-agent.yaml"下一步,将以下清单复制到本地文件并将其另存为datadog-探员.yaml.datadog-代理.yamlCopyapiVersion:应用程序/v1种类:守护者元数据:名称:数据狗代理命名空间:默认规格:选择器:匹配标签:应用程序:数据狗代理模板:元数据:标签:应用程序:数据狗代理名称:数据狗代理规格:serviceAccountName:数据狗代理容器:-图片:数据狗/代理:最新imagePullPolicy:始终名称:数据狗代理端口:-集装箱港口:8125名称:dogstatsdport协议:UDP-集装箱港口:8126名称:跟踪报告协议:TCP环境:-名称:DD_API_密钥值:-名称:DD_COLLECT_KUBERNETES_事件值:"真"-姓名:民盟领袖选举值:"真"-姓名:KUBERNETES值:"真"-名称:DD_HEALTH_端口值:"5555"-名称:DD_KUBELET_TLS_VERIFY值:"false"-姓名:DD_KUBERNETES_KUBELET_主机取值来源:字段参考:字段路径:状态.hostIP-名称:启用DD_APM_值:"真"资源:请求:内存:"256Mi"cpu:"200米"限制:内存:"256Mi"cpu:"200米"卷数:-名称:dockersocket装载路径:/var/run/docker.sock公司-名称:procdir装载路径:/host/proc只读:真-名称:cgroups装载路径:/host/sys/fs/cgroup只读:真现场调查:httpGet:路径:/health端口:5555initialDelaySeconds:15秒周期秒数:15超时秒数:5成功阈值:1故障保留:3卷数:-主机路径:路径:/var/run/docker.sock公司名称:dockersocket-主机路径:路径:/proc名称:procdir-主机路径:路径:/sys/fs/cgroupname:cgroups用Datadog帐户中的API密钥替换。然后运行以下命令将代理部署为守护进程:Copykubectl create-f数据狗-yamlNow探员您可以通过运行代理的status命令来验证代理是否正在收集Docker和Kubernetes度量。为此,首先需要获取正在运行的pods的列表,以便可以在其中一个Datadog代理pods上运行命令:#获取正在运行的pods的列表$kubectl得到吊舱名称就绪状态重新启动年龄datadog代理krrmd 1/1运行0 17d...#使用上面返回的pod名称运行代理的"status"命令$kubectl exec-it datadog agent krrmd agent status在输出中,您应该看到类似以下部分,表明Kubernetes和Docker度量收集:kubelet(4.1.0)---------------实例ID:库贝莱特:d884b5186b651429[好的]配置源:file:/etc/datadog-agent/conf.d/kubelet.d/conf.yaml.default总跑步次数:35次公制样本:上次运行:378,总计:14191事件:上次运行:0,总计:0服务检查:上次运行:4次,总计:140次平均执行时间:817ms最后执行日期:2020-06-22 15:20:37.000000UTC上次成功执行日期:2020-06-22 15:20:37.000000UTC码头工人------实例ID:docker[OK]配置源:file:/etc/datadog-agent/conf.d/docker.d/conf.yaml.default总跑步次数:35次公制样本:上次运行:290,总计:15537事件:上次运行:1,总计:4服务检查:上次运行:1次,总计:35次平均执行时间:101ms最后执行日期:2020-06-22 15:20:30.000000UTC上一次成功执行日期:2020-06-22 15:20:30.000000utcnow您可以浏览一下Kubernetes和Docker的内置Datadog仪表板,看看这些指标是什么样子的就像我们的文档详细介绍了其他几种部署Datadog代理的方法,包括使用Helm包管理器和Datadog操作符。而且,如果您正在运行大规模的生产部署,除了基于节点的代理之外,您还可以安装Datadog集群代理,作为一种集中和优化的方式来收集集群数据,以便深入了解您的基础架构。Datadog是Kubernetes的现成仪表盘监控。添加更多Kubernetes度量和kube状态度量默认情况下,Kubernetes代理检查向Datadog报告一些基本的系统指标,包括CPU、网络、磁盘和内存使用情况。通过将kube state metrics插件部署到集群中,可以轻松地扩展从Kubernetes收集的数据,它提供了关于集群状态的更详细的度量本身。库贝-状态度量监听kubernetesapi并生成关于Kubernetes逻辑对象状态的度量:节点状态,节点容量(CPU和内存)、每个部署所需/可用/不可用/更新的副本数量、机架状态(例如,等待、运行、就绪)等等。您可以看到Datadog从kube状态度量收集的度量的完整列表给。给将kube状态度量部署为Kubernetes服务,将清单复制到这里,将其粘贴到kube状态-度量.yaml文件,并将服务部署到集群:Copykubectl create-库贝州-指标.yamlWithin分钟,您应该看到前缀为kubernetes_state的度量。流到你的数据狗账户。收款使用自动发现的指标Datadog代理可以自动跟踪哪些服务在哪里运行,这归功于它的自动发现功能。Autodiscovery允许您定义代理检查的配置模板,并指定每个检查应应用于哪些容器。当容器到达时,代理将启用、禁用和重新生成模板中的静态检查配置出去,出去代理可以使用Autodiscovery连接到许多常见的容器化服务,例如Redis和Apache(httpd),它们具有标准化的配置模式。在本节中,我们将展示Autodiscovery如何允许Datadog代理连接到留言簿应用程序堆栈中的Redis主容器,没有任何手册配置guestbook应用程序根据Kubernetes的逐步文档部署guestbook应用程序是了解Kubernetes应用程序各个部分的一个很好的方法。在本指南中,我们修改了guestbook应用程序的Go代码,以添加指令插入(我们将在下面介绍),并将应用程序的各种部署清单压缩为一个,这样您就可以使用一个kubectl部署一个功能齐全的留言簿应用程序命令。移动件guestbook应用程序是一个简单的web应用程序,允许您在web页面的字段中输入名称(或其他字符串)。然后应用程序将这些名字存储在Redis支持的"留言簿"中,并显示在页码。在那里是guestbook应用程序的三个主要组件:Redis主pod、两个Redis从pod和三个运行Go web服务的"guestbook"pods。每个组件都有自己的Kubernetes服务,用于将流量路由到复制的pod。留言簿服务的类型是LoadBalancer,使web应用程序通过公共IP访问地址。正在部署guestbook应用程序将清单的内容作为guestbook部署复制到Kubernetes主机-完整.yaml以及运行:Copykubectl apply-f留言簿部署-全自动正在收集Redis指标在Kubernetes上默认启用autodiscovery,允许您连续查看集群中运行的服务。这意味着Datadog代理应该已经从guestbook应用程序后端的Redis容器中提取度量,而不管这些容器在哪个节点上运行。但出于我们稍后将解释的原因,只有Redis主机将由默认值。到验证自动发现是否按预期工作,再次运行status命令:#获取正在运行的pods的列表$kubectl得到吊舱名称就绪状态重新启动年龄datadog代理krrmd 1/1运行0 17d...#使用pod名称

当前网址:http://www.vmchk.com//tutorials/7009.html

 
你可能喜欢的: