Nutanix Karbon是一种精心策划的交钥匙产品,可提供简化的Kubernetes簇的配置和操作。Kubernetes是一种开源容器编排系统,用于部署和管理基于容器的应用程序。
2018年10月,AOS 5.9和Prism Central 5.9推出后,Karbon在Tech-Preview发行。
我们收到了客户,合作伙伴和同伴的几个疑问,他们重视我们为Kubernetes带来的简单性,但他们发现很难理解集群的行为以及封面下的情况。
进入普罗米修斯(也称为舞会或P8)。
Prometheus是由SoundCloud团队建造的开源监控工具,它受到Google的启发Borgmon,它是从第一天设计的,用于分配和管理工作单位的Kubernetes模型。Prometheus具有用于临时可视化的表达浏览器,但是,Grafana通常用作Prometheus顶部的可视化仪表板。
在牢记karbon群集被部署时,请记住Prometheus和Grafana将来将作为附加组件(Post GA)包括在内。在这篇文章中,我将带领您浏览使用Helm和Prometheus操作员在Nutanix Karbon上部署Prometheus + Grafana所需的步骤。这些步骤也可以用于在香草库伯尼特集群上部署Prometheus。:)
开始吧。
先决条件:
- 具有Internet连接的工作Karbon群集。我使用了Kubernetes 1.10.3。
- kubectl使用配置的kubeconfig安装在笔记本电脑上。
安装头盔
创建RBAC群集角色
创建服务帐户
配置群集角色绑定到服务帐户
下载并安装头盔
初始化头盔
使用头盔安装Prometheus操作员
添加coreos repo
安装Prometheus操作员
安装普罗米修斯表现
暴露于docess grafana。
安装头盔
Helm是Kubernetes软件包管理器,它使用Helm Charts来帮助您定义,安装和升级为Kubernetes构建的应用程序。
让我们继续安装头盔。
让我们首先创建一个RBAC群集角色。
使用kubectl连接到您的karbon群集,然后应用以下清单。以下清单创建了一个称为“头盔”的聚类,并分配了RBAC权限。注意:这些权限实质上允许完全访问整个Karbon Kubernetes群集,因此请谨慎使用。不建议生产。对于生产使用,我们建议以更严格的方式对RBAC规则进行审查。
使用您喜欢的文本编辑器,将以下清单保存为Helmrole.yaml
apiversion:rbac.authorization.k8s.io/v1
KIND:聚类
元数据:
CreationTimestamp:null
名称:头盔
注释:
rbac.authorization.kubernetes.io/autoupdate:“ true”
规则:
-Apigroups:
- “*”
资源:
- “*”
动词:
- “*”
- 非养分量:
- “*”
动词:
- “*”
完成此操作后,请使用Kubectl将清单应用于Karbon群集。
代码:
kubectl应用-f helmrole.yaml
一旦创建了聚类,我们的下一步就是创建一个供helm使用的ServiceAccount。以下清单在Kube-System名称空间中创建了一个名为“ Helm”的ServiceAccount。
使用您喜欢的文本编辑器,将以下清单保存为Helmservice.yaml
apiversion:v1
善良:ServiceAccount
元数据:
名称:舵
名称空间:Kube-System
完成此操作后,请使用Kubectl将清单应用于Karbon群集。
代码:
kubectl应用-f Helmservice.yaml
一旦创建了ServiceAccount,我们的下一步就是创建一个群集,以将簇的簇绑定到ServiceAccount。以下清单创建了“头盔”簇的绑定到“舵” ServiceAccount。
使用您喜欢的文本编辑器,将以下清单保存为Helmbinding.yaml
apiversion:rbac.authorization.k8s.io/v1beta1
类型:簇束
元数据:
名称:舵
名称空间:Kube-System
ROLEREF:
Apigroup:rbac.authorization.k8s.io
KIND:聚类
名称:头盔
主题:
- 善良:ServiceAccount
名称:舵
名称空间:Kube-System
完成此操作后,请使用Kubectl将清单应用于Karbon群集。
代码:
kubectl应用-f Helmbinding.yaml
既然我们已经创建并配置了Clusterrole,ServiceAccount和ClusterRolebinding,我们可以继续下载和安装Helm。
从您的终端执行以下操作。它将下载Helm Installer脚本。
代码:
curl https://raw.githubusercontent.com/helm/helm/helm/master/scripts/get> get_helm.sh
接下来,让我们更改get_helm.sh文件的权限,以便我们拥有执行它的权限。
从您的终端执行以下操作。
代码:
Chmod 700 get_helm.sh
现在,让我们执行get_helm.sh下载并安装Helm。
从您的终端执行以下操作。
代码:
./get_helm.sh
下载并安装后,我们现在需要初始化Helm并使用我们之前创建的ServiceAccount。
从您的终端执行以下操作。
代码:
掌舵初始化-Service-Account Helm
恭喜!现在,您在Karbon群集上安装了头盔。让我们继续下一步。
部署Prometheus操作员
首先,让我们将CoreOS Helm存储库添加到掌舵中。执行以下内容以添加存储库。
代码:
Helm Repo添加CoreOS https://s3-eu-west-1.amazonaws.com/coreos-charts/stable/
现在添加了存储库,我们可以继续部署Prometheus操作员。
以下赫尔姆命令将在命名空间中的kubernetes群集上部署Prometheus操作员
代码:
Helm install install coreos/prometheus-operator-名称Prometheus-operator-Namespace监视
完毕!现在部署了普罗米修斯。容易吧?在我们访问仪表板之前,需要再进行2个步骤。
首先,让我们部署Kube-Prometheus Helm图表为我们配置Prometheus和Grafana。
执行以下头盔命令
代码:
Helm install install coreos/kube-prometheus-名称kube-prometheus -set global.rbacenable = true -namespace监视
现在,我们已经配置了Prometheus和Grafana。让我们向我们访问访问grafana的一个点头。
以下清单将在端口30900上创建NodePort服务。
使用您喜欢的文本编辑器,将以下清单保存为grafanaservice.yaml
apiversion:v1
善良:服务
元数据:
名称:grafana-node-svc
名称空间:监视
规格:
类型:nodeport
端口:
- 名称:网络
NodePort:30900
端口:3000
协议:TCP
TargetPort:Web
选择器:
应用:Kube-Prometheus-Grafana
完成此操作后,请使用Kubectl将清单应用于Karbon群集。
代码:
kubectl应用-f grafanaservice.yaml
现在,我们已经部署了Prometheus和Grafana,nodeport向Grafana展示了30900。让我们继续访问Grafana。
访问Grafana
您可以通过导航到https:// nodeip是任何karbon/kubernetes工人节点的IP地址来访问Grafana仪表板。
您可以使用PRISM检查IP地址或运行以下kubectl命令。
代码:
kubectl get nodes -o jsonpath ='{。项}']。status.addresses [?(@type ==“ internalip”)]。地址}
现在,我们可以通过启动您喜欢的网络浏览器并导航到http:// nodeip:30900
就我而言,我的nodeip是10.139.76.251,所以我只是导航到http://10.139.76.251:30900
在这里,我们看到了Grafana仪表板的主页
我们可以单击“家庭图标”以获取可用的预种子仪表板的列表。
这是Kubernetes能力规划仪表板的样本。
希望这有用。我将通过将来使用Tillerless的步骤来更新此帖子。
在我的下一篇文章中,我将分享如何在Karbon集群上部署Nutanix时代。
Nutanix Epoch是一种应用程序跟踪和性能监控工具。它具有执行运行的应用程序或微服务的应用程序的能力。它围绕Google的4个黄金信号的原理,即延迟,流量,错误和饱和度。Epoch可以部署在Karbon或Vanilla Kubernetes群集上,以监控健康状况,并绘制应用程序的依赖性以及在服务开始发生或应用程序停止工作时为客户提供洞察力的能力。
学分:丹尼斯·盖迪恩(Denis Guyadeen),何塞·戈麦斯(Jose Gomez)提供了这篇博客文章的帮助。