什么是Azure Kubernetes Service Automatic
细心的小伙伴可能会发现,在Global Azure中,多了一项和AKS服务相关的功能—Azure Kubernetes Service Automatic,(AKS Automatic)。AKS Automatic旨在简化Azure中的Kubernetes使用,减少管理复杂性。接下来让我们一起看下他是如何工作的,以及我们可以在什么样的场景中使用它。
什么是AKS Automatic
AKS Automatic是现有AKS服务的扩展。正常情况下,在部署AKS群集时,用户会获得一个控制平面,然后获得多个Work Node来运行Pod。用户需要管理这些资源,包括群集的更新、设置自动缩放、管理群集版本升级以及配置安全和操作设置。虽然AKS中提供了许多不同的服务可以帮助用户管理这些任务,但管理员仍需根据实际需求拍对其进行配置。
AKS Automatic并不是一个新的服务,在前面的介绍中并没有用服务去形容它,而是使用功能。我们可以吧它理解为AKS的一种自定义配置,它使用现有的服务并对其进行与配置。从而消除了用户管理群集所需的大量决策和工作。
比如对于默认AKS群集,管理员可以通过GUI或者CLI来处理AKS群集的升级,从而将AKS从一个版本升级到另一个版本。虽然AKS也提供了自动升级的通道,但其默认处于关闭的状态,需要用户明确的配置其启用才能使用。但是在AKS Automatic中,自动升级默认处于开启的状态,也就是说,系统会自动处理更新。因此用户无需对AKS更新执行任何操作,这也就意味着用户没有选择升级的权力。
AKS Automatic的工作原理
如上所述,AKS Automatic 使用 AKS 的现有的功能,但允许用户采用自定义配置,进而可降低使用 Kubernetes 的管理和操作复杂性。接下来让我们看看其中一些是如何配置的。
- 在启用 Container Insights 的情况下自动配置监控,并在集群中设置和配置托管的 Prometheus 和
- 节点使用节点自动配置器进行配置,并会根据需求进行扩展和缩减(包括缩减至0)。无需手动配置。水平和垂直自动缩放也会自动配置
- AKS Automatic 群集使用 AKS 的标准层,其中包括 SLA 且需要付费。没有免费选项
- 所有节点均使用 Azure Linux OS。无法选择使用其他操作系统
- 节点配置在受限资源组中,并使用资源锁来防止手动更改,并启用节点自动修复来修复故障节点
- 集群升级使用自动升级进行配置,并启用重大变更检测和维护窗口
- Azure RBAC 已打开,并且会自动配置工作负载身份和 OIDC 连接
- 为 API 服务器配置虚拟网络集成,以确保从节点到 API 服务器的通信通过私有网络进行
- 默认启用Image Cleaner和
- 默认会将托管 NGINX 配置为Ingress,Azure NAT 网关配置为出口,并可选择是否启用
综上所述,其实上面提到的所有功能,我们在不使用AKS Automatic的场景下都可以使用。但是使用AKS Automatic的好处是它可以遵循最佳时间的原则自动配置这些服务。从而确保AKS群集可以安全高效的运行
何时使用AKS Automatic
对于很多用户来说,AKS的管理可能非常复杂,往往需要非常专业的Azure和Kubernetes技能来对其进行管理和保护。但往往对于一些用户而言并不具备这些技能。这个时候,就可以考虑使用AKS Automatic来将AKS群集的部分管理和配置交给Azure来完成。
看到这里可能有的小伙伴会说,既然不想管理底层的基础架构,那为什么不适用Azure Container APP(ACA)?毕竟ACA提供了基于Kubernetes的托管解决方案,作为用户而言,在使用的过程中,无需太多的管理开销。但是需要注意的是,ACA相比于AKS而言,抽象了很多的K8S功能,添加了很多Azure的服务内容,并没有K8S的API,不支持CDR等。因此对于一些仍然想要使用原生的K8S资源并且想要降低管理开销的用户而言,AKS Automatic是一个非常好的选择
AKS Automatic存在的限制
AKS Automatic 存在最大的缺点可能是,它对上述所有服务的配置都是固定的。如果同意这些配置方式,那没问题;但是,如果不同意这些配置并希望自定义一些配置,则可能是不允许的。通过使用 AKS Automatic,将接受此预配置设置,并且大多数设置无法更改。例如,只能通过使用自动配置程序来配置节点,并且它们将根据部署的 pod 数量和消耗的资源进行扩展和缩减。