Kubernetes教程收集度量标准仓

阅读时间:5分钟

Heapster死了!

监控的节点和豆荚Kubernetes集群不是一件容易的事。有多个这样的工具和方法,与一切美丽,最佳实践和常用的方法变化如此之快,几乎是不可能的。

以Heapster为例,一个超级流行的插件从豆荚和收集度量标准的首选工具,直到一年前,这是现在弃用。有很多好的理由中止Heapster,但它并不方便我们DevOps跟踪,不断反思工具。

幸运的是,似乎我们要得到一些稳定的资源指标API。从1.8 Kubernetes开始,资源使用指标,如容器的CPU和内存使用,可在Kubernetes通过度量API。这些指标可以被度量服务器访问或通过第三方工具如普罗米修斯。用户可以使用命令获取数据,如“kubectl最高”,但更重要的是,许多服务可以使用这些数据来做出明智的决策,HPA(水平舱Auto-scaler)为例。

收集k8指标

在这个博客中,我们将设置标准服务器,从我们收集CPU指标豆荚和部署HPA规模基于这些指标。在下面,我们将使用Spotinst海洋自动启动最好的实例来适应的需要等待pod基于其资源需求。

与Spotinst海洋,您可以创建一个Kubernetes集群与多个机器类型和大小的盒子。海洋用俄罗斯方块缩放和装箱算法是由容器资源需求驱动的,而不是节点利用率,从而使集群高度利用。最重要的是,海洋保持动态集群的“空间”,确保产能可供新工作负载在任何时间。这样你不需要等待一个新实例启动时创建一个新的部署。

Kubernetes指标集合逐步指南

(本指南假定你有Kubernetes集群1.8 +,并访问它通过kubectl)

让我们开始吧!

首先,安装Kubernetes度量服务器:

克隆Metrics-servergit存储库:

git克隆https://github.com/kubernetes-incubator/metrics-server.git

部署度量服务器:

kubectl应用- f metrics-server /部署/ 1.8 + /

让我们看看一些指标:

好!
现在让我们做一些充分利用这些指标。

首先,让我们来部署一个简单的Apache(基于容器https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/)

= k8s.gcr kubectl运行php-apache——形象。io / hpa-example——请求= cpu = = 80 200——暴露——港口

确保舱成功运行通过运行kubectl豆荚:

现在让我们把HPA到位。在下面的示例中,HPA在我们吊舱将保持50%的CPU, 1 - 10之间,将改变豆荚:

kubectl自动定量部署php-apache——cpu百分比= 50分钟= 1——max = 10

在下一步中,让我们产生一些负载Apache,为了看到HPA在行动。此外,我们将看到海洋扩大基础设施建设作为当前节点接近他们的限制:

我们将使用负载生成器…嗯,生成一些负载。

打开另外一个终端窗口并运行:

kubectl运行——我——tty负载生成器= busybox /bin/sh形象

回车。

而真正的;做wget - q - o - http://php-apache.default.svc.cluster.local;完成

几分钟后我们将通知HPA踢:

这里,CPU消耗增加了488%,不久HPA将达到50%的目标

我们可以看到,HPA决定推出4额外的豆荚,成功地将集群。

在容器上的负载,一个额外的4舱发射,而是因为没有足够的资源在任何现有的节点满足吊舱的需求,他们进入挂起状态。雷竞技rabet官网

不需要担心,海洋会救我们!

最大可用性与Spotinst海洋

后立即认识到需要额外的资源,Spotinst将评估情况和发射任务的最合适的实例:雷竞技rabet官网

Kubernetes扩展节点支持计划外豆荚

在这里我们可以看到决定推出c3。大型实例是:

在“缩放”和“后规模”部分的数量我们可以看到集群中的资源之前和之后缩放操作。雷竞技rabet官网在“待部署豆荚”所需资源的数量待定豆荚和后,被选为启动实例,它将添加到集群的资源。雷竞技rabet官网

实际的c3。在海洋Spotinst大型实例启动的节点页面:

Kubernetes聚类分析

瞧,我们所有的豆荚成功预定!

在这个博客中,我们安装Kubernetes Metrics-server, metrics-api收集了一些指标,把它与HPA一些良好的使用。

此外,我们证明了混合智能的惊人潜力pod比例由HPA和智能基础设施决策由Spotinst海洋。

如何监控你的豆荚?让我们知道在Twitter @Spotinst!

Baidu
map