【.com快译】我们Kubermatic一直在帮助客户交付Kubernetes集群和其他云原生解决方案,早在它们流行之前。我们帮助客户使用Ansible、Terraform和其他各种非云原生工具构建集群;当我们遇到这些工具的限制时,我们帮助客户重建集群。我们很早就明白两件事:1)Kubernetes不是单一的大集群解决方案,而是需要大量的小集群。2)Kubernetes多集群管理需要为声明式、API驱动的世界构建的云原生工具。从那时起,这些想法在很大程度上得到了全球众多组织的验证,包括云原生计算基金会、推特、《今日美国》、Zalando和阿里巴巴。了解到每个大规模运行Kubernetes的公司都需要高效地管理多集群管理,我们开发了开源KubermaticKubernetes平台。本文解释了为什么您需要多集群管理,KubermaticKubernetes平台如何利用KubernetesOperators自动管理跨多个集群、云和区域的集群生命周期,以及您如何立即开始使用它。为什么需要多集群管理?Kubernetes缺乏使用户、组织或运营商能够允许不受信任的租户共享基础架构资源或分离软件的不同部分的硬多租户功能。这会带来安全和操作问题。当运维人员试图按类型(敏感数据处理与非敏感数据处理)隔离工作负载时,或者甚至只想将生产与非生产分开时,他们无法在集群级别做到这一点,从而造成安全噩梦。在操作上,尝试将太多应用程序部署到同一个集群中可能会导致版本冲突、配置冲突和软件生命周期管理问题。最后,如果没有适当的隔离机制,级联故障的风险就会增加。在集群内没有硬多租户的情况下,必须使用单独的集群为具有不同安全要求的工作负载提供有效隔离。拥有多个集群来部署应用程序还使运营商能够将类似的应用程序部署在一起,同时将具有不同生命周期的应用程序彼此隔离。部署在同一个集群中的应用可以一起升级,以减轻运维负担,而需要不同版本、配置和依赖的应用可以运行在不同的集群中并进行自我升级。如果运行多个集群是满足这些工作负载和基础架构要求的唯一解决方案,则还必须考虑此模型的运营负担。如果手动完成,运行多个集群是一个巨大的操作挑战。因此,任何考虑大规模运行Kubernetes的运营商都应该仔细评估其多集群管理策略。我们Kubermatic选择使用KubernetesOperators进行多集群管理。什么是Kubernetes操作员?Operator是一个软件,它了解如何运行并促进另一个软件的操作。CoreOS(自RedHat收购后)在2016年引入了KubernetesOperators,描述了当时的概念:Operators是一种打包、部署和管理Kubernetes应用程序的方式。Kubernetes应用程序是既部署在Kubernetes上又使用KubernetesAPI和kubectl工具进行管理的应用程序。Operator的自定义控制器监控专门为应用程序定义的自定义资源。这允许开发人员整理需要维护状态的应用程序的生命周期管理知识,自动执行许多日常管理,包括部署、备份、升级、日志记录和警报。它仅通过监视事件并利用Kubernetes的内置协调循环来实现这一点。简而言之,一个精心打造的Operator负责处理容器化软件的整个生命周期。我们如何使用KubernetesOperator进行多集群管理?借助KubermaticKubernetes平台,我们将Operators范例扩展到应用程序之外,以管理集群本身。是的,我们使用Kubernetes来操作Kubernetes。这个模型实际上已经被包括阿里巴巴在内的几个组织证明了,它用它来管理数万个集群。从技术上讲,集群状态是用“自定义资源定义”定义的,然后存储在etcd中。一组控制器及其关联的协调周期监视集群状态的更改或添加,并根据需要更新它们。所有状态都存储在“主集群”中。一旦定义了新的用户集群,就会创建控制平面(API、etcd、调度程序和控制器),并将其部署为主集群命名空间中的容器。用户集群的工作节点由实现集群API的计算机控制器部署,为工作节点带来声明式创建、配置和管理。Operators让Kubermatic不仅可以自动化集群的创建,还可以自动化集群的整个生命周期管理。更新控制平面只需要滚动更新容器部署,而更新集群中的实际节点也可以以滚动方式以声明方式完成。图1利用KubernetesOperators还提供了跨所有基础设施提供商的一致抽象。无需为每个提供商重新发明轮子,可以轻松地将同一套工具从一个提供商移植到另一个提供商(包括混合云和多云),以及集成本地基础设施(虚拟化和裸机)。图2运营商可以让我们的用户做什么?为一个困难的技术问题开发一个优雅的解决方案是一个令人兴奋的过程和一个学习机会,但最令人欣慰的是看到它每天给我们的用户带来什么。即将到来的影响。作为帮助用户踏上云原生之旅的合作伙伴,我们很高兴看到我们软件的价值。柏林的托管服务提供商SysEleven是我们的第一个生产用户。该公司的工程师希望能够向其客户提供Kubernetes即服务,但他们无法扩展人员操作。所以他们选择了KubermaticKubernetes平台,通过软件进行扩展,已经在生产环境中使用了将近三年。因为KubermaticKubernetesPlatform背后的KubernetesOperators可以自动执行许多操作任务(包括典型的“关闭和重启”操作),他们可以仅用一名专职员工来运行和管理数百个集群。这使他们的Kubernetes团队能够专注于客户需求并提供他们众所周知的高质量服务。除了云原生之旅之外,Operators还允许我们将久经考验的原则和流程应用到边缘。在不久的将来,我们将提供体现上述原则的边缘功能。原标题:ManageMulticlusterKuberneteswithOperators,作者:SaschaHaase
