问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

为多个环境部署具有自动 DNS 管理的 Kubernetes 集群

创作时间:
作者:
@小白创作中心

为多个环境部署具有自动 DNS 管理的 Kubernetes 集群

引用
1
来源
1.
https://docs.oracle.com/zh-cn/solutions/deploy-oke-automatic-dns/index.html

在云原生时代,Kubernetes已成为容器编排的事实标准。然而,随着多环境部署的复杂性增加,DNS管理也变得越来越重要。本文将介绍如何使用Oracle Cloud Infrastructure (OCI) 的Kubernetes Engine (OKE) 和DNS服务来部署具有自动DNS管理的Kubernetes集群,实现开发、测试和生产环境的统一管理。

如果没有自动化解决方案,为内部和外部环境(例如开发、测试和生产)管理云DNS策略会变得复杂且耗时。理想情况下,您的用户和客户都应该能够导航到域,并且您的DNS解决方案应直接指向正确环境的IP地址。这种理想的情况是用户友好的,可以防止人为错误。

Kubernetes ExternalDNS提供了自动化DNS解决方案的功能,可帮助用户轻松导航到所需的域,包括高级功能,例如全局负载平衡、自动故障转移、基于DNS的流量管理以及内置的安全功能,例如域名系统安全扩展 (Domain Name System Security Extensions,DNSSEC),可帮助防止篡改和欺骗攻击。

此参考架构使用单个kubernetes集群部署以及Oracle Cloud InfrastructureDNS Zones和Kubernetes ExternalDNS来配置专为多个环境设计的DNS解决方案。

体系结构

此架构使用部署在OCI DNS区域中的OCI Kubernetes Engine集群来存储通过负载平衡器公开服务的“A记录”。在此架构中,OCI Kubernetes Engine(OKE)集群具有三个worker节点和三个不同的名称空间来进行部署隔离。将此体系结构用于使用单个群集而不是多个群集的多环境OKE部署。

多租户 -oke-dns-architecture.png 的说明

多租户 -oke-dns-architecture.zip

每个环境(开发、测试和生产)都有自己的一组kubernetes组件,例如命名空间、pod和服务。Kubernetes ExternalDNS允许为外部公开的kubernetes服务自动创建和管理DNS记录。这样,外部客户端可以更轻松地访问集群中的服务。Kubernetes组件路由到Kubernetes ExternalDNS,然后创建指向OCI中每个服务负载平衡器的“记录”。

kubernetes-external-dns.png 的说明

kubernetes- 外部 -dns.zip

该体系结构具有以下组件:

  • 区域
    Oracle Cloud Infrastructure区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

  • 可用性域
    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共享电源或冷却设备等基础设施,也不共享内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 容错域
    容错域是可用性域内的一组硬件和基础设施。每个可用性域都有三个容错域,它们具有独立的电源和硬件。在多个容错域之间分配资源时,应用可以承受容错域内的物理服务器故障、系统维护和电源故障。

  • 虚拟云网络 (VCN) 和子网
    VCN 是一个可定制的软件定义网络,您可以在Oracle Cloud Infrastructure区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 负载平衡器
    Oracle Cloud Infrastructure Load Balancing服务提供从单个入口点到后端多个服务器的自动流量分配。

  • 安全列表
    对于每个子网,可以创建安全规则来指定必须允许进出子网的通信的源、目标和类型。

  • OCI Kubernetes 引擎
    Oracle Cloud Infrastructure Kubernetes Engine(Kubernetes Engine或OKE)是一项完全托管、可扩展的高可用性服务,可用于将容器化应用部署到云中。您可以指定应用所需的计算资源,Kubernetes Engine在现有租户的Oracle Cloud Infrastructure上预配这些资源。OKE使用 Kubernetes 跨主机集群自动部署、扩展和管理容器化应用。

  • DNS
    Oracle Cloud Infrastructure域名系统 (Domain Name System,DNS) 服务是一个高度可扩展的全局任播域名系统 (DNS) 网络,可提供增强的 DNS 性能、可恢复性和可扩展性,以便最终用户随时随地尽快连接到客户应用。

  • 公共/专用 DNS 区域
    Oracle Cloud InfrastructureDNS 服务支持您管理区域。区域是 DNS 名称空间的一部分。授权开始记录 (Start of Authority,SOA) 定义区域。除非另有说明,否则区域在树中包含其自身下的所有标签。

推荐

使用以下建议作为起点。您的要求可能与此处描述的体系结构不同。

  • 虚拟云网络 (VCN)
    创建 VCN 时,请根据您计划附加到 VCN 中子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。

设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可以用作安全边界的同一子网。

  • 负载平衡器带宽
    创建负载平衡器时,您可以选择提供固定带宽的预定义配置,也可以指定定制(灵活)配置,在其中设置带宽范围并允许服务根据流量模式自动扩展带宽。通过任一方法,您都可以在创建负载平衡器后随时更改配置。

注意事项

在单个OCI Kubernetes Engine集群中部署多个环境时,请考虑以下事项。

  • 安全
    考虑使用 Kubernetes 网络策略来隔离名称空间连接,并依靠基于角色的访问控制来控制对名称空间管理的访问。

部署

Oracle Cloud Infrastructure 文档中的配置 ExternalDNS 以使用 Oracle Cloud Infrastructure DNS中提供了将 Kubernetes ExternalDNS 配置为使用Oracle Cloud InfrastructureDNS 的说明。

浏览更多

详细了解如何部署具有自动 DNS 管理的OCI Kubernetes Engine集群。

查看以下附加资源:

确认

作者:

  • Guido Alejandro Ferreyra

更改日志

此日志列出了重大更改:
2024 年 9 月 30 日 增强了架构和注意事项中的内容。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号