集群是用于运行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集群。执行成功后,便能看到页面中集群变为了“运行中”的状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCtW1sEN-1589017623297)(https://user-gold-cdn.xitu.io/2020/5/9/171f8d372b2c272b?w=1353&h=621&f=gif&s=538067)]

集群权限管理

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqbOj3dC-1589017623304)(https://user-gold-cdn.xitu.io/2020/5/9/171f8d35cf77f0c5?w=1366&h=625&f=png&s=35143)]

查看节点详情

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxFn310F-1589017623307)(https://user-gold-cdn.xitu.io/2020/5/9/171f8d35d1f7d997?w=1366&h=602&f=png&s=58074)]

总结

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

关于猪齿鱼

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

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

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

  • 官网:http://choerodon.io
  • 论坛:http://forum.choerodon.io
  • Github:https://github.com/choerodon

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

本篇文章出自Choerodon猪齿鱼社区毛智伟。

Choerodon猪齿鱼实践之集群管理(一)相关推荐

  1. 美团点评Kubernetes集群管理实践

    背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著.规律的"高峰"和"低谷"特征.尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长.这 ...

  2. 工商银行:应用多k8s集群管理及容灾实践

    摘要:在华为开发者大会(Cloud)2021上,工商银行Paas云平台架构师沈一帆发表了<工商银行多k8s集群管理及容灾实践>主题演讲,分享了工商银行使用多云容器编排引擎Karmada的落 ...

  3. 火山引擎李玉光:字节跳动大规模K8s集群管理实践

    嘉宾 | 李玉光   整理 | 贾凯强 出品 | CSDN云原生 2022年5月31日,在CSDN云原生系列在线峰会第6期"K8s大规模应用和深度实践峰会",火山引擎资深云原生架构 ...

  4. java集群_JAVA架构师学习:实践ZooKeeper 应用场景与集群管理,辛勤总结

    ZooKeeper 典型的应用场景 Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生 ...

  5. 三层架构项目如何发布_以k8s集群管理为例,大牛教你如何设计优秀项目架构

    架构设计一直是技术人的关注热点,如何设计一个更优的架构对于实际的业务来说至关重要.本文腾讯云专家将从自身从事的一个k8s集群管理项目为例,重点剖析在项目开发过程中的三次架构演进历程,即针对项目最早版本 ...

  6. 还在为多集群管理烦恼吗?RedHat 和蚂蚁、阿里云给开源社区带来了OCM

    简介: 为了让开发者.用户在多集群和混合环境下也能像在单个 Kubernetes 集群平台上一样,使用自己熟悉的开源项目和产品轻松开发功能,RedHat 和蚂蚁.阿里云共同发起并开源了 OCM(Ope ...

  7. 集群管理工具KafkaAdminClient——改造

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. 集群管理工具KafkaAdminClient——原理与示例

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. dao层如何调用对象_以k8s集群管理为例,大牛教你如何设计优秀项目架构

    架构设计一直是技术人的关注热点,如何设计一个更优的架构对于实际的业务来说至关重要.本文腾讯云专家将从自身从事的一个k8s集群管理项目为例,重点剖析在项目开发过程中的三次架构演进历程,即针对项目最早版本 ...

  10. kubernetes 入门实践-搭建集群

    ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(一个人的真正伟大之处就在于他能够认识到自己的渺小 -- 保罗) ㅤㅤㅤ ㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤ 上一篇:kubernetes 入门实践-核心概念 下 ...

最新文章

  1. python判断列表list中的内容、数值是否全部都大于某一个阈值(threshold)、如果数值都大于某一个阈值(threshold)则跳出循环
  2. ReactNative v0.55学习笔记
  3. visual studio 插件开发(5) -- 在任意位置添加自己的菜单
  4. 小程序之 保存canvas生成商品图片附加小程序二维码 分享到朋友圈
  5. linux i2c子系统入口,I2C子系统1 - ARM_Linuxx的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. asp.net 2.0 技巧2
  7. 【机器视觉】 dev_set_part算子
  8. 工业机器人入门实用教程_机器学习实用入门
  9. plsql 弹出 register,plsql注册码
  10. 服务器里怎么更改网站图片大小,php实现在服务器端调整图片大小的方法
  11. php 正则匹配收货地址,PHP简单实现正则匹配省市区的方法
  12. 四川第七届 C Censor (字符串哈希)
  13. Bootstrap table列内容过长,显示固定长度,超过内容隐藏
  14. C#使用NLOG System.TypeInitializationException,类型初始值设定项引发异常
  15. mac开启docker kubernetes
  16. 无线接入控制服务器(ac),网络ac和ap是什么意思(图文)
  17. Java实现密码加密
  18. xshell 6安装教程
  19. iOS 逻辑分辨率、物理分辨率
  20. html页面证书过期,网页证书过期怎么办

热门文章

  1. 英文词源 —— 法语、西班牙语、古希腊语
  2. 保持初心,不负韶华||回顾2021,展望2022
  3. vue3 组合式API composition 简单使用
  4. C++实现DNS域名解析
  5. Unity3D学习之旅7-RPG游戏-更新与踩坑实录
  6. linux查看ubuntu版本命令,检查Ubuntu版本号的三种方法:从终端和设置中检查及使用Neofetch...
  7. 基于LSTM的IMDB电影评论情感分析
  8. 再谈GPU-Driven Rendering Pipelines
  9. Angluar编译过程中出现的TS2339问题
  10. 浅谈贪吃蛇的创新玩法