开始使用Kubernetes Cloud Controller Manager

日期: 2023-08-14 作者:Chris Tozzi翻译:邹铮 来源:TechTarget中国 英文

在某些情况下,允许 Kubernetes 以专门的方式与特定的云提供商或其他基础设施平台进行交互是有利的。例如,使用基础设施提供商自己的 API 来管理节点或设置负载均衡器的能力可以帮助 Kubernetes 更有效地管理集群资源。

这就是 Kubernetes 提供Cloud Controller Manager的原因,这是一项可选功能,可在 Kubernetes 和支持Controller Manager的特定公共或私有云平台之间实现更深入的集成。

在此文章中,我们将更好地了解什么是Cloud Controller Manager,它与 Kubernetes 控制器管理器的区别以及如何开始使用。

什么是 Kubernetes 中的Cloud Controller Manager

Cloud Controller Manager允许 Kubernetes 使用基础设施提供商自己的 API 管理一些集群资源。以下是该工具中的其他控制器:

  • 节点控制器。 在云基础架构中创建新服务器时更新节点对象。
  • 路由控制器。 配置 Kubernetes 集群中不同节点上的容器之间的通信路由。
  • 服务控制器。 与提供程序的 API 交互,以便在服务资源需要时设置负载均衡器和其他基础结构组件。

Cloud Controller Manager 使得在 Kubernetes 和基础设施提供商的第三方 API 之间构建原生接口成为可能,这些基础设施提供商包括可以托管 Kubernetes 的公共和私有提供商。例如,为了部署基础设施提供商的托管负载均衡服务以在 Kubernetes 集群中使用,请使用Cloud Controller Manager在 Kubernetes 中开始。或者使用Cloud Controller Manager来管理来自基础架构提供商的虚拟机,这些虚拟机充当 Kubernetes 群集中的节点。如果你的云平台支持Cloud Controller Manager中的此功能,则可以执行此操作。

为了利用Cloud Controller Manager,以将Kubernetes与特定的基础设施平台集成,该平台必须支持Kubernetes云提供商接口。所有主要的公共云都提供这种支持。私有云平台(例如OpenStack)以及任何其他基础设施提供商或平台都可以实现自己的云提供商接口,以实现与Cloud Controller Manager的兼容性。

Cloud Controller Manager Kubernetes 控制器管理器

现在通过Cloud Controller Manager提供的大部分功能都是直接在 Kubernetes 控制器管理器中实现的,Kubernetes 控制器管理器是 Kubernetes 控制平面的核心组件。要访问该功能,请在启动 Kubernetes 控制器管理器时指定要使用的云平台。

然而,通过这种方法,负责特定于平台的集成的代码被整合到 Kubernetes 本身。这很低效,因为不同的基础设施提供商提供不同的API和功能,可以与Kubernetes连接。当只有少数Kubernetes 用户需要时,将所有代码作为 Kubernetes 的核心部分进行维护是没有意义的。例如,Kubernetes 与 AWS 的集成仅对使用AWS基础设施运行 Kubernetes 集群的用户有价值。

通过将这些集成分解到Cloud Controller Manager中,Kubernetes 开发人员为用户提供了一种方法,以在需要时部署集成,而无需默认情况下使其在所有 Kubernetes 环境中可用。

向Cloud Controller Manager的转变意味着,特定于平台的 Kubernetes 集成现在可以“在外部”管理,因为它们所依赖的代码-用户在运行 Kubernetes 时可以选择部署,而不是必须的要求,而在此之前它们是“在内部”,因为它们是核心 Kubernetes 代码的一部分。

谁应该使用Cloud Controller Manager

虽然云控制器管理器是可选的 Kubernetes 组件,不是必需的,但它可以简化支持 Kubernetes 集群的基础架构的某些部分的管理。你可以使用你的基础设施提供商的原生 API 管理 Kubernetes 中的资源,而不是单独设置这些资源。

例如,通过使用Cloud Controller Manager,你可以通过第三方托管负载均衡服务为 Kubernetes 创建负载均衡器。同样,Cloud Controller Manager可以自动检测不再使用的节点之间的网络路由,然后将其删除以节省基础架构资源。

如何开始使用Cloud Controller Manager

为了部署Cloud Controller Manager,请确保在启动 Kubernetes 控制器管理器或 Kubernetes API Server 时未指定–cloud-provider 标志。如果你这样做,Kubernetes 会使用旧的树内云提供商接口,Cloud Controller Manager会替换该接口。

接下来,在群集中部署Cloud Controller Manager二进制文件。执行此操作的最常见方法是  使用如下所示的配置在控制平面节点上将其作为DaemonSet运行:

apiVersion: apps/v1
kind: DaemonSet
metadata:
labels:
k8s-app: cloud-controller-manager
name: cloud-controller-manager
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: cloud-controller-manager
template:
metadata:
labels:
k8s-app: cloud-controller-manager
spec:
serviceAccountName: cloud-controller-manager
containers:
– name: cloud-controller-manager
# for in-tree providers we use registry.k8s.io/cloud-controller-manager
# this can be replaced with any other image for out-of-tree providers
image: registry.k8s.io/cloud-controller-manager:v1.8.0
command:
– /usr/local/bin/cloud-controller-manager
– –cloud-provider=azure

这段代码告诉 Kubernetes 基于镜像–registry.k8s.io/cloud-controller-manager:v1.8.0 运行一个容器,该镜像提供云控制器管理器二进制文件。它还告诉 Kubernetes 使用 Azure 云提供商接口。企业可以将此选项更改为任何受支持的接口。

 

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

翻译

邹铮
邹铮

相关推荐

  • 云端NoSQL数据库类型对比

    全球可扩展在线服务主要用于社交网络、流媒体内容、零售、支付系统和其他业务用途,该服务的出现极大地改变企业中的应 […]

  • 10个最常见的云漏洞

    如果企业认为云计算将自动保护其工作负载和数据免受攻击、盗窃和其他威胁行为,那他们就大错特错了。即使在云端,漏洞 […]

  • 缓解多云治理挑战的5个最佳做法

    部署多云模型会给云团队带来更多的复杂性和管理挑战。这些挑战影响着企业环境的方方面面,包括设计、部署、配置、运营 […]

  • 云团队需要的6个IT软技能

    软技能对云团队来说至关重要,但很难学习。一个糟糕的团队成员可以打倒整个团队和项目。此外,缺乏软技能可能会导致错 […]