Skip to main content

3 篇博文 含有标签「集群管理

View All Tags

· 9 分钟阅读

通过之前的文章《Choerodon实践之集群管理(一)》,我们了解到了Choerodon集群与k8s集群之间的关联、集群权限管理以及节点详情查看的功能。那如何更加灵活便捷地对k8s集群进行监控呢?又怎么对监控组件进行安装、配置与管理呢?本文旨在为大家介绍Choerodon平台中的组件管理以及集群监控的功能。

功能背景

因为集群管理员或运维人员需要知道集群中所有节点以及节点下各个Pod的资源使用情况,为了收集与展示这些指标,Choerodon集群管理模块主要使用了Prometheus来实现对集群的监控。同时,Choerodon还在界面中提供了直接安装、配置与卸载Prometheus等监控组件的入口,用户可在此通过界面化的形式高效快速地在集群中完成各组件的安装与配置。

除此之外,为了实现在Kubernetes集群中使用 HTTPS 协议的功能,Choerodon在环境资源中支持了对证书的管理,同时为了确保集群中的证书有效且是最新的,并能在到期前按照配置的时间续订证书,Choerodon又提供了对cert-manager组件的支持,用户在组件管理界面即可实现对cert-manager组件的安装与卸载。

组件管理功能

集群管理中组件管理模块目前支持对cert-manager和监控组件(Prometheus、Grafana、AlertManager)进行安装与管理,用于管理集群下所有组件

CertManager

cert-manager 是一个云原生证书管理开源项目,用于确保集群中的证书有效且是最新的,并能在到期前按照配置的时间续订证书,支持 Let’s Encrypt, HashiCorp Vault 这些免费证书的签发。而在Kubernetes集群中,我们可以通过 Kubernetes Ingress 和 Let’s Encrypt 实现外部服务的自动化 HTTPS。

在Kubernetes集群中使用 HTTPS 协议,需要一个证书管理器、一个证书自动签发服务,主要通过 Ingress 来发布 HTTPS 服务,因此需要Ingress Controller并进行配置,启用 HTTPS 及其路由。

安装cert-manager

在“集群管理-组件管理”页面,选中CertManager组件,点击安装按钮,即可在集群中安装该组件。(此操作仅能在“运行中”状态的集群下执行)

对于Choerodon 0.20版本之前已安装CertManager组件的集群,此处会直接展示出该组件是已安装的状态。若是在升级0.20后新建的集群,则需在此处自主安装CertManager组件。

若集群未安装CertManager组件,将不能在集群对应的环境下进行“创建证书”的操作。

卸载cert-manager

在“集群管理-组件管理”页面,选中CertManager组件,点击卸载按钮即可。(此操作仅能在“运行中”状态的集群下执行)

监控组件

监控组件用于帮助监控集群中资源的使用情况,该组件包括了Prometheus、Grafana和AlertManager。其中Prometheus用于实现对监控数据的获取、存储以及查询;Grafana可作为可视化界面来展示监控数据;AlertManager则是Prometheus体系中的告警组件。

监控组件的结构图如下:

安装监控组件

在“集群管理-组件管理”页面,选中监控组件,点击安装按钮,右侧会弹出安装监控组件的配置页面,需填入:admin密码(即Grafana组件admin账户的登录密码)、域名地址(即Grafana的访问地址)、并且为其中的3个组件分别选择一个满足条件的PV(对应组件需要使用到的PV,需要提前在PV管理中创建)。配置完成后,点击安装即可。(此操作仅能在“运行中”状态的集群下执行)

监控组件安装成功后,即可在“集群管理-集群监控”页面看到集群监控的数据。

修改监控组件

监控组件安装成功后,仅支持修改域名地址(即Grafana的访问地址)。

卸载监控组件

在“集群管理-组件管理”页面,选中监控组件,点击卸载按钮即可。(此操作仅能在“运行中”状态的集群下执行)

集群监控功能

集群监控功能用于展示集群中所有节点以及节点下各个Pod的资源使用情况,如CPU、内存、网络吞吐和带宽占用、磁盘I/O和磁盘使用等指标。

在“组件管理”页面中成功安装了监控组件后,只要在页面中成功登录Grafana(此处可以使用有集群权限的Choerodon账号直接登录),即可查看集群监控数据。

集群监控界面如下:

若想查看集群下某个节点以及节点中Pods的CPU、内存的使用情况,须在树结构中点击对应的节点,最后选择“节点监控”Tab页即可。

总结

组件管理与集群监控使得Choerodon集群管理的功能更加完善。集群管理员与运维人员可以通过界面更高效地对各个组件进行安装、配置与管理。而通过集群监控功能,集群管理员与运维人员又能更便捷地监控到集群中资源的使用情况。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

更加详细的内容,请参阅Release Notes官网

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。

· 9 分钟阅读

集群是用于运行k8s的托管群组,一个Choerodon集群对应一个k8s集群。有了集群,我们就能以此来统一调配资源,管理环境。结合Choerodon中的层级结构,一个集群又可以被同组织下的多个项目共同使用。

本文旨在为大家介绍Choerodon v0.19及以上版本的集群管理功能。与k8s集群相关的更多详情介绍,请查看之前的《从0到1使用Kubernetes系列》文章。

集群管理功能的改动

在介绍Choerodon V0.19及以上版本的“集群管理”功能之前,先为大家讲解该功能相较于之前版本做了哪些改动,以及改动的原因。

在Choerodon V0.18及之前的版本中,集群管理的功能在组织层,组织管理员负责管理整个组织中的集群,并通过对集群进行权限配置以此来管理组织下各个项目对集群的使用。而组织下的各个项目通过创建环境与组织层的集群相关联(Choerodon中的环境对应为k8s中namespace)。这样的层级结构,从Choerodon V0.11一直保持到了 V0.18,但在组织的实际使用场景下,还是存在着一些需要优化与改进的地方。

  • 集群管理者的权限问题,因为只有组织管理员才有集群管理的权限,所以当集群出现问题后,集群管理者需要拥有“组织管理员”的权限才能前往组织层查看集群的情况,这就造成了集群管理者权限过大的情况。
  • 组织下的一个集群可能会有多个项目进行使用,这样又会造成一个组织下多个项目中的集群管理者都拥有“组织管理员”的权限。
  • 平台层与组织层更多的是管理与监控的功能,且与项目层的业务功能没有了过强的关联关系。

为了解决以上问题,从而满足更多的实际应用场景,从0.19版本开始,Choerodon猪齿鱼平台便将集群相关的所有功能从组织层移到了项目层,即集群管理者在项目下就能完成集群的创建、管理与监控等操作。而对于之前版本中组织层已有的集群,我们在各个组织下预置了一个“默认运维项目”来进行集中的管理,集群管理者只需拥有“默认运维项目”下项目所有者的权限即可。为了使平台功能与业务结构更加清晰,从而来满足更多的使用场景,在Choerodon V0.19 中,我们对各个层级的功能进行了重新的整理。

怎样使用集群管理功能?

在Choerodon猪齿鱼平台中开发一个应用服务,跑完CI,生成版本之后,我们需要将其部署到对应的环境之中。而Choerodon中的环境是与集群进行关联的,因此部署一个应用服务的必要条件是存在一个可用的Choerodon集群。目前我们建议在“默认运维项目”中去集中管理组织下的集群。

创建集群

在Choerodon项目层“集群-集群管理”菜单下,使用项目所有者角色,点击创建集群的按钮,输入集群名称、集群编码以及描述。点击创建后,界面会自动生成可执行的shell脚本命令,其中各个参数已经由后端服务自动生成,只需将此脚本命令复制至kubernetes中运行,以此来连接Choerodon平台与k8s集群。执行成功后,便能看到页面中集群变为了“运行中”的状态。

集群权限管理

集群管理者成功创建集群之后,可以通过权限管理为同组织下所有项目或特定项目分配该集群的权限,配置后,只有被选中的项目在创建环境时才能选择与此集群关联。

查看节点详情

一个Kubernetes集群由Master和Node组成,Master是集群的网关和中枢,负责为客户端暴露API、跟踪其他服务器的健康状态、以最优方式调度工作负载,以及编排其他组件之间的通信等任务,它是客户端与集群之间的核心联络点,并负责Kubernetes系统的大多数集中式管控逻辑。Node是Kubernetes集群的工作节点,负责接收来自Master的工作指令并根据指令相应地创建或销毁Pod对象,以及调整网络规则以合理地路由和转发流量等。

在集群激活之后,我们可以通过集群管理中的“节点列表”查看到集群下所有节点的状态、类型以及CPU与内存的请求值和限制值。以此来实时监控集群下所有节点的资源分配情况。

总结

在Choerodon V0.11刚上线集群管理功能时,我们将之前“利用单个环境客户端管理单个环境”的模式变为了使用“单个集群客户端可以统一管理多个环境”的模式,以此来避免资源浪费的情况。在此基础上,我们在后面的版本中不断对此功能进行优化与完善,除了上文中提到的结构与层级的优化、权限管理和节点管理功能,Choerodon集群管理中还陆续新增了组件管理、集群监控、健康检查等集群功能。关于健康检查功能,可以参考《Choerodon猪齿鱼实践之健康检查》,至于组件管理与集群监控的功能,将在后续文章中详细介绍。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

更加详细的内容,请参阅Release Notes官网

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。

· 8 分钟阅读

Choerodon 是一个全场景效能平台,通过使用Kubernetes来部署和升级应用,而在集群中部署应用时,像忘记配置资源请求或忘记配置限制这样简单的事情就可能破坏自动伸缩,甚至导致工作负载耗尽资源。因此,保证集群的稳定运行十分必要。

基于这个目的,Choerodon团队通过借鉴 Polaris 健康检查的实现原理,并结合自身业务需求,在 Agent 组件中实现了一套自己的健康检查规则,既能从集群的维度查看其中可能影响稳定性、可靠性、可伸缩性和安全性的配置问题,也支持检测某个环境某个实例中具体的配置问题,从而达到监控集群监控环境健康状态的目的。

本文旨在为大家介绍Choerodon v0.21版本中的健康检查功能。

集群健康检查

执行健康检查

在Choerodon平台中,选择一个存在关联环境且状态为“运行中”的集群,进入“集群管理-健康检查”的页面后,点击页面中的“扫描”按钮,即可执行该集群的健康检查。

在此过程中,Polaris支持的检测类型有:Health Checks、Images、Networking、Resources、Security;检测完毕之后,会将这些分类中所有的配置项分为 passed、warning 以及error 三个状态,分别代表检测通过、警告和错误的状态。

若想详细了解各分类中所包含的默认配置项,请参考Polaris - Kubernetes最佳实践之配置校验

查看健康检查结果

健康检查执行成功后,便能从“集群概览”和“环境详情”两个维度查看存在配置项的问题(即状态为warning和error的配置项)。界面上的健康分值,是根据passed状态配置项的占比计算得来的。需要注意的是,各类详情下,只会展示出warning与 error状态的配置项。

通过检测得出的结果(尤其是存在error状态配置项的分类),集群管理员可以及时的捕捉到集群中存在的问题与隐患,并快速地进行修复。

健康分值= passed配置项数量/(passed配置项数量+1/2warning配置项数量+error配置项数量)

  • 集群概览

“集群概览”维度支持查看集群中各个分类的配置项问题;主要分为了: 健康检查、镜像检查、网络配置、资源分配以及安全这五类,并可以分别查看各个分类下有问题的配置项(warning与 error状态的配置项)及其所属的环境。

  • 环境详情

“环境详情”维度则支持查看集群中所有环境(包括Choerodon平台环境与非Choerodon平台环境)中存在问题的配置项(warning与 error状态的配置项)。

环境健康检查

执行健康检查

通过以上内容,我们知道了集群管理员如何在集群中执行健康检查操作,以此来监控集群的健康状态。那在环境层,环境管理员(运维人员)又如何对环境的健康状态进行监控的呢?针对这个问题,我们在“部署-资源-实例视图-环境层”中,也新增了“健康检查”的功能,用来检测环境下所有实例的配置项问题。 其中包括了对Deployments、StatefulSets、DaemonSets 、Jobs、CronJobs以及ReplicationControllers的检测。(注意:在进行扫描之前,请确保环境中已有实例资源,并且该环境为“运行中”状态)

查看健康检查结果

健康检查执行成功之后,会将这些分类中所有的配置项分为 passed、warning 以及 error 三个状态,分别代表检测通过、警告和错误的状态。并在各个实例下方,展示出有问题的配置项(warning与 error状态的配置项)。此外,对于含有“error”状态配置项的实例和对象,会在其名称后面标出警示标志。

界面上健康分值的计算方式,和上文中集群的一致。环境管理员通过有问题的配置项便能及时的定位与解决问题,从而避免造成更大的损失。

总结

健康检查功能是集群与环境监控模块中重要的一环,能够帮助运维人员实时地检测出集群与环境中可能影响稳定性、可靠性、可伸缩性和安全性的配置问题,以此来保证集群与环境的稳定运行。

关于猪齿鱼

Choerodon 猪齿鱼作为全场景效能平台,是基于Kubernetes,Istio,knative,Gitlab,Spring Cloud来实现本地和云端环境的集成,实现企业多云/混合云应用环境的一致性。平台通过提供精益敏捷、持续交付、容器环境、微服务、DevOps等能力来帮助组织团队来完成软件的生命周期管理,从而更快、更频繁地交付更稳定的软件。

Choerodon 猪齿鱼v0.21安装/升级地址如下。

更加详细的内容,请参阅Release Notes官网

大家也可以通过以下社区途径了解猪齿鱼的最新动态、产品特性,以及参与社区贡献:

欢迎加入Choerodon猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。