首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Cluster API中引入ClusterClass和托管拓扑

在Cluster API中引入ClusterClass和托管拓扑

作者头像
CNCF
发布2021-10-12 14:56:04
1.6K0
发布2021-10-12 14:56:04
举报
文章被收录于专栏:CNCFCNCF

作者:Fabrizio Pandini(VMware)

Cluster API 社区[1]很高兴地宣布了ClusterClass托管拓扑的实现,这是一个新特性,它将极大地简化以声明方式创建、升级和操作多个 Kubernetes 集群的方式。

一点背景知识……

在深入了解细节之前,让我们先回顾一下 Cluster API 的历史。

Cluster API 项目[2]开始于三年前,第一个版本专注于扩展性和实现声明式 API,允许跨基础设施提供商的无缝体验。这与许多云供应商是一个成功:AWS、Azure、Digital Ocean、GCP、Metal3、vSphere 等等。

随着可扩展性的解决,重点转移到特性上,如自动控制平面和 etcd 管理、基于运行状况的机器补救、机器推出策略等等。

快进到 2021 年,很多公司[3]都在使用 Cluster API 来管理 Kubernetes 集群在生产中运行的工作负载,社区的工作重点是代码、API、文档的稳定,以及 Kubernetes 发布的大量测试信号。

有了坚实的基础,一个充满活力和欢迎大家的社区仍在继续发展,是时候为新用户和高级用户计划另一次 UX 迭代了。

来到 ClusterClass 和管理拓扑,tada!

ClusterClass

顾名思义,ClusterClass 和托管拓扑分为两部分构建。

ClusterClass 背后的思想很简单:只定义一次集群的形状,然后多次重用它,将 Kubernetes 集群的复杂性和内部抽象出来。

ClusterClass 的核心是一组 Cluster 和 Machine 模板。你可以使用它作为“图章”,可以利用它创建许多形状类似的集群。

---
apiVersion: cluster.x-k8s.io/v1beta1
kind: ClusterClass
metadata:
  name: my-amazing-cluster-class
spec:
  controlPlane:
    ref:
      apiVersion: controlplane.cluster.x-k8s.io/v1beta1
      kind: KubeadmControlPlaneTemplate
      name: high-availability-control-plane
    machineInfrastructure:
      ref:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
        kind: DockerMachineTemplate
        name: control-plane-machine
  workers:
    machineDeployments:
      - class: type1-workers
        template:
          bootstrap:
            ref:
              apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
              kind: KubeadmConfigTemplate
              name: type1-bootstrap
          infrastructure:
            ref:
              apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
              kind: DockerMachineTemplate
              name: type1-machine
      - class: type2-workers
        template:
          bootstrap:
            ref:
              apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
              kind: KubeadmConfigTemplate
              name: type2-bootstrap
          infrastructure:
            ref:
              kind: DockerMachineTemplate
              apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
              name: type2-machine
  infrastructure:
    ref:
      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
      kind: DockerClusterTemplate
      name: cluster-infrastructure

可能性是无限的;你可以从社区获得默认的 ClusterClass,从选择的供应商获得“现成的”类,从公司的平台管理员获得“认证的”类,甚至可以为高级场景创建自定义类。

托管拓扑

托管拓扑允许你将 ClusterClass 的强大功能付诸实践。

给定一个 ClusterClass,你可以通过提供单一资源 Cluster 来创建许多形状相似的 Cluster。

下面是一个例子:

---
apiVersion: cluster.x-k8s.io/v1beta1
 kind: Cluster
 metadata:
   name: my-amazing-cluster
   namespace: bar
 spec:
   topology: # define a managed topology
     class: my-amazing-cluster-class # use the ClusterClass mentioned earlier
     version: v1.21.2
     controlPlane:
       replicas: 3
     workers:
       machineDeployments:
       - class: type1-workers
         name: big-pool-of-machines
         replicas: 5
       - class: type2-workers
         name: small-pool-of-machines
         replicas: 1

但这不仅仅是简单的集群创建。现在 Cluster 作为整个拓扑的单个控制点。

Cluster API 的所有功能、可扩展性、生命周期自动化、稳定性以及在你选择的基础设施提供商上管理企业级 Kubernetes 集群所需的所有功能现在都触手可及:你可以创建 Cluster、添加新机器、升级到下一个 Kubernetes 版本,所有这些都来自一个地方。

它就像它看起来一样简单!

接下来

当令人惊叹的 Cluster API 社区正在努力在今年晚些时候交付第一版的 ClusterClass 和托管拓扑时,我们已经开始期待这个项目和它的生态系统接下来会发生什么。

前方有很多伟大的想法和机会!

我们希望使托管拓扑更加强大和灵活,允许用户根据集群的特定需求动态更改 ClusterClass;这将确保在解决复杂问题时使用同样简单和直观的 UX,比如为特定的 Kubernetes 版本和基础设施提供商的特定区域选择机器镜像,或者在整个集群中注入代理配置等等。

请继续关注接下来的内容,如果你有任何问题、评论或建议:

  • 在 Kubernetes Slack[4]上与我们聊天:#cluster-api
  • 加入 SIG Cluster Lifecycle Google Group[5]以接收日历邀请并获得对文档的访问权
  • 参加我们的Zoom 会议[6],太平洋时间每周三 10 点
  • 请参阅 Cluster APII 书中的ClusterClass 教程[7]

参考资料

[1]

Cluster API 社区: https://cluster-api.sigs.k8s.io/

[2]

Cluster API 项目: https://github.com/kubernetes-sigs/cluster-api/

[3]

很多公司: https://www.cncf.io/blog/2021/10/06/kubernetes-cluster-api-reaches-production-readiness-with-version-1-0/

[4]

Slack: http://slack.k8s.io/

[5]

Google Group: https://groups.google.com/g/kubernetes-sig-cluster-lifecycle

[6]

Zoom 会议: https://zoom.us/j/861487554

[7]

ClusterClass 教程: https://cluster-api.sigs.k8s.io/tasks/experimental-features/cluster-classes.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一点背景知识……
  • ClusterClass
  • 托管拓扑
  • 接下来
    • 参考资料
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档