我的网站百度找不到了,石家庄网站定制模板建站,seo厂商,医院网站管理办法本文探讨了如何将DigitalOcean Kubernetes (DOKS)应用于生产环境#xff0c;并提供实现生产准备#xff08;production readiness#xff09;的指导。 规划您的基础架构 Kubernetes 基础架构的规划至关重要#xff0c;因为它为稳定且可扩展的应用部署平台奠定了基础。通过适…
本文探讨了如何将DigitalOcean Kubernetes (DOKS)应用于生产环境并提供实现生产准备production readiness的指导。 规划您的基础架构 Kubernetes 基础架构的规划至关重要因为它为稳定且可扩展的应用部署平台奠定了基础。通过适当的规划您可以避免性能问题、安全漏洞和其他可能影响应用程序可用性的问题。 合适的地区 选择合适的地区对应用程序的性能和体验有重大影响并确保符合当地法规。在部署工作负载之前企业必须考虑一些基本因素例如与最终用户的距离、监管要求、网络延迟、多个数据中心的位置以及改进的冗余和崩坏恢复能力。 例如我们新推出的最先进的 SYD1 数据中心具有以下优势 专用的互联网边缘和骨干网络可以直接接入亚洲、北美和欧洲减少对公共互联网的依赖。SYD1 的网络吞吐量/容量高达 400 Gbps并通过当今最低的延迟链路与加利福尼亚州和新加坡相连。这使其成为在 DigitalOcean Kubernetes 上运行网络密集型工作负载的理想场所。 想要了解更多详情请参阅《如何为您的企业选择数据中心位置》指南其中提供了可以帮助你做出决定的建议。 联网策略 VPC虚拟私有云是 DigitalOcean 资源的逻辑隔离。通过将资源隔离到公共互联网无法到达的网络中VPC 网络可以更好地保护执行环境、租户和应用程序的安全。 在 DigitalOcean Kubernetes 中VPC 为你的 Kubernetes 集群创建了一个私有网络你还可以轻松地在同一个 VPC 中配置其他 DigitalOcean 资源如托管数据库集群。这有助于保护 Kubernetes 工作负载免受未经授权的访问。例如你可以在同一 VPC 中创建一个或多个 DOKS 集群以建立安全的 Kubernetes 工作负载及其集群间通信。 一个重要的建议是仔细规划 VPC 架构考虑特定使用案例的安全和连接需求。你还需要通过在 VPC 网络内创建租户来提高网络隔离度。 更多信息请查阅 《如何规划自定义 VPC 网络》《VPC 网络最佳实践》 Kubernetes 基础架构设计 集群架构 一个常见的要求是Kubernetes 集群既能扩展以适应不断增加的工作负载又能在出现故障如数据中心中断、机器故障、网络分区时保持容错能力和可用性。因此在设计集群架构控制平面和节点平面之前必须考虑这些因素。幸运的是作为 Kubernetes 托管服务提供商我们为用户分担了建立高弹性、高可用性控制平面的所有负担用户只需将更多精力放在节点平面架构设计上。 DigitalOcean HA 控制平面架构 集群控制平面 虽然集群只需一个控制平面节点就能完全正常运行但在集群升级或底层基础设施中断期间Kubernetes API 可能无法使用从而导致服务停机。 我们强烈建议为生产工作负载启用 DigitalOcean 的高可用性HA控制平面。 如需进一步了解请查阅《Kubernetes 高可用性控制平面如何最大限度地延长正常运行时间并提供可靠性》其中讨论了为生产工作负载提供 HA 控制平面的重要性。 节点平面架构 在确定集群中节点的规格例如 CPU、内存和存储资源之后考虑到预期的工作负载、可扩展性要求以及特定的硬件或软件依赖性。你可能无法在第一次就做到完美这可能需要几个周期才能达到理想状态。DigitalOcean Kubernetes 还提供集群自动调节器Cluster Autoscaler, CA可根据集群调度 pod 的能力自动添加或删除节点从而调整 Kubernetes 集群的规模。 当您需要在 Kubernetes 集群中写入和访问持久化数据时您可以创建并访问 DigitalOcean 块存储 。这时需要创建一个 PersistentVolumeClaimPVC作为部署的一部分。DigitalOcean 块存储 向 pod 提供一次读写RWO块存储。对于多次读写RWM块存储或基于文件的存储可以考虑使用 OpenEBS NFS Provisioner这是我们 Kubernetes Marketplace 中的一键式应用程序。 有关选择合适节点配置的更多见解请查阅 《选择正确的 Kubernetes 计划》《工作节点大小》 使用 GitOps 实现平台自动化 基础架构自动化有多种方法但现代最佳实践是围绕 GitOps 演进而来的。GitOps 使用 Git 仓库作为唯一的真相源。与团队使用应用程序源代码的方式类似采用 GitOps 的运维团队也将配置文件作为代码基础架构即代码存储在 Git 仓库中。 基础架构即代码 基础架构即代码IaC应成为你管理云基础设施的策略使你能够利用 GitOps 实现自动化。首先必须使用代码定义云基础设施的理想状态。这将定义各种基础设施组件和配置例如 Kubernetes 节点组、存储账户、网络等。 我们不会在此深入探讨 IaC 的重要性但如果你感兴趣可以查看《基础架构即代码解释》。 基础架构即代码工具 Terraform、Pulumi 和 Crossplane 等基础设施即代码IaC工具使企业能够使用代码管理和配置基础设施。这些工具能自动部署和管理资源减少人工操作确保不同环境的一致性。 以下是 DigitalOcean 官方支持的 IaC 软件包 Terraform DigitalOceanPulumi DigitalOceanCrossplane DigtialOcean 如果你是初学者需要进一步了解 Terraform 等 IaC 工具我们建议你按照本系列教程进行操作。 合并请求MR GitOps 使用合并请求MR或拉取请求PR作为所有基础设施更新的变更机制。在 MR 或 PR 中团队可以通过审核和评论进行协作并进行正式批准。合并提交到主或主干分支作为审计日志或审计跟踪。 CI/CD GitOps 利用带有持续集成和持续交付CI/CD功能的 Git 工作流程自动更新基础设施。合并新代码时CI/CD 管道会在环境中实施变更。任何配置漂移如手动更改或错误都会被 GitOps 自动化覆盖从而使环境趋同于 Git 中定义的理想状态。 以下是 GitOps 最佳实践指南的一些示例 《设置 CI/CD 实践教程》《使用 Terraform 和 Flux CD 的 GitOps》 安全与测试 在未来几周我们将推出一篇专门介绍 Kubernetes 安全最佳实践的文章。 我们建议使用 aquasecurity/kube-bench 通过运行 CIS Kubernetes Benchmark 中记录的检查来确保 Kubernetes 已安全部署。可以将 aquasecurity/kube-bench 工具纳入 CI 工作流程也可以单独运行不推荐。此外你还可以使用 kitchen-terraform 和 terratest 等测试框架来验证使用 Terraform 配置的基础架构。 DigitalOcean Kubernetes IaC 示例 我们整理了一些示例供你测试并从中汲取灵感。如果你发现错误或希望改进现有示例请随时在 GitHub 上提出问题。我们一直在不断改进我们的内容。 K8s-bootstrapper 是一个可扩展的框架用于建立由 Terraform 和 ArgoCD 驱动的可投入生产的 DigitalOcean Kubernetes 集群。在 DOKS 上运行生产工作负载的真实案例在本项目中我们将指导你在 DigitalOcean Kubernetes 上安装 Mastodon。你将亲身体验 GitOps 和生产准备的所有现代最佳实践并与我们的托管 DBaaS 和兼容 S3 的云对象存储 Spaces无缝集成。 最后的思考 为 Kubernetes 建立生产级云基础设施需要周密的规划和设计。规划基础设施与建设基础设施同样重要。第一次可能会出错但可以改进并随着需求的增长而不断发展。花时间与工程师和架构师讨论网络基础架构。不要重新建造架构将繁重的工作留给托管的 Kubernetes 服务如 DigitalOcean Kubernetes它具有内置的弹性和高可用性。IaC 应该是管理云基础设施的唯一策略。采用 GitOps 等现代最佳实践实现平台自动化如本指南所述。从我们为你整理的真实案例中汲取灵感。强调安全性更多内容请参见下一篇博客。 最后如果你希望了解更多关于 DigitalOcean Kubernetes 的产品信息可以访问 DigitalOcean 中国区独家战略合作伙伴卓普云官网卓普云会为中国区的用户提供商务合作、技术支持等服务。