Choerodon猪齿鱼实践之集群管理(一)
集群是用于运行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猪齿鱼社区,共同为企业数字化服务打造一个开放的生态平台。
作者:毛智伟
出处:Choerodon
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。