如何通过自动化Kubernetes集群管理容器

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

许多开发者已经求助于Docker容器来实现云端和本地的新应用迭代时的一致性,而且很多应用都要依赖多个Docker容器的编排。而围绕着容器集的启动以及为了让它们能够协作而连带的相关设置和配置又引发了一系列新的挑战。

为了弥补这一差距,软件产业一直在向容器管理系统Kubernetes靠拢,它承担了生态体系的职能,实现对容器集的自动化部署。在旧金山举行的KubeCon会议上,专家们讨论了其中一些基于Kubernetes的集群自动化部署的最佳实践和工具。

Univa工程总监Cameron Brunner说创建Kubernetes有很多很好的工具,但对一致的集群自动化部署却没有好的路径。“我们喜欢把硬件当作家畜来看待,” Brunner说:“这个我们在app上面一直都是这么听说的。但把你的硬件当作宠物会导致令人不快的内部管理问题。”

Univa内部大约有5个集群在跑Kubernetes,每一个都包括多个节点。有一条可靠的工具链有助于快速生成符合一致性的Kubernetes集群,快到能够在数分钟内开发和启动。

Brunner说组织需要应对一下问题才能生成一个一致可靠的Kubernetes集群:

  1. 从什么样的基础操作系统开始?
  2. 该操作系统是怎么部署和配置的?
  3. Kubernetes打算怎样安装和配置?

幸运的是,环境中有许多工具支持这一过程,Brunner说。像Atomic和CoreOS这样的不变操作系统已经变得相当稳定。预引导执行环境(PXE boot)未来启动技术可以简化部署。Cloud-Init是一个很好的启动时配置工具。

建立一致性

Brunner建议要一直通过网络启动你的硬件。这可以在机器出问题或需要升级时快速进行服务开通的再次准备。PXE启动有助于简化这一过程。理想情况下,好的做法是有一个工具去动态生成PXE,而这个东西不是跟PXE一起的。

安装不变的操作系统也是一个好的做法。这可以在数据中心做出一致的软件集和一致的环境。Brunner说:“这降低了总体的管理复杂性,理解集群中发生的事情更容易。”

在本地托管容器镜像也是好想法。Brunner建议要有一个本地库。另一个好做法是用Cloud-Init管理配置。这样把所有东西放在一个地方会更简单,同时还能有一个不变的OS。这可以用Systemd来集成,完成证书登记、密钥提取等辅助操作,从而建立一条系统启动操作的流水化的工作流。

AWS自动化Kubernetes

旧金山的程序员Jimmy Cuadra说,在AWS上面以一致的方式部署Kubernetes集群是个挑战。他说,“操作生产集群这个东西我不敢信任,哪怕我尊重Kubernetes团队的艰苦工作。对于我们这些需要管理自己集群的人来说,我们需要更健壮的东西。”

Cuadra说,对于在托管应用上面运行来说,Google Container Engine是个好的选择。但在AWS上面进行集群的自动化部署需要更健壮的办法。该问题部分在于与集群的声明式配置工具相关的大多数信息已经过时或包含有失效链接。Cuadra希望能够利用声明式配置文件,在Git上登记生成集群。

Cuadra建议用Hashicorp的Terraform。它允许组织使用声明式配置语言去买搜狐资源以及云基础设施的状态,从而匹配Git库里面的东西。

控制配置复杂性

部署Kubernetes集群方面有很多服务开通问题,这些不是Terraform容易解决的。需要有特别的配置设置来描述容器间相互对话的不同。还要有其他的设置来指定如何对Kubernetes API进行鉴权,给团队不同的人提供分布式访问证书。保持多个Kubernetes实现的状态的工作流也需要管理。

为了填补这一差距,Cuadra开发了一个名为KAWS的开源工具,它可以更容易地指定基础设施为代码,且内置一个域名系统。它还生成Kubernetes访问证书,并可以安全地把它分发出去。KAWS是用Rust编程语言开发的。

自动化Kubernetes部署的过程从KAWS库(基本上就是一个创建状态的Git库)的创建开始。它还包括了一个密钥导出命令,可以管理团队成员的公钥。这样就可以无需暴露各人私钥的情况下管理用户访问了。Cuadra说此类自动化办法使得在10分钟内筹划和部署一个新的Kubernetes集群成为可能。


本文作者:佚名

来源:51CTO

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器化技术融合实践
【5月更文挑战第6天】随着企业IT架构的复杂化以及快速迭代的市场需求,传统的运维模式已难以满足高效率和高质量的交付标准。本文将探讨如何通过结合DevOps理念和容器化技术来构建一个高效的自动化运维体系,旨在实现持续集成、持续部署和自动化管理,提升系统的可靠性、可维护性和敏捷性。
|
6天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同实践
【5月更文挑战第2天】随着云计算和微服务架构的兴起,自动化运维成为保障系统稳定性与效率的关键。本文将深入探讨如何利用Ansible作为配置管理工具,结合Kubernetes容器编排能力,共同打造一个高效、可靠的自动化运维体系。通过剖析二者的整合策略及具体操作步骤,为读者提供一套提升运维效率、降低人为错误的实用解决方案。
|
7天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
8天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
8天前
|
弹性计算 Shell 数据安全/隐私保护
自动化构建和部署Docker容器
【4月更文挑战第30天】
11 0
|
8天前
|
存储 运维 Kubernetes
构建高效自动化运维体系:Ansible与Kubernetes的协同策略
【4月更文挑战第29天】 在当今快速迭代的软件开发环境中,自动化运维成为了确保部署效率和稳定性的关键。本文深入探讨了如何通过Ansible和Kubernetes的集成来实现高效的自动化配置管理与容器编排。文章首先介绍了Ansible与Kubernetes各自的特点及优势,随后详细阐述了它们在自动化运维中的互补作用,并提供了一个实用的集成方案。通过案例分析,验证了该策略在提高部署速度、降低人为错误以及增强系统可靠性方面的有效性。最后,讨论了实施过程中可能遇到的挑战和解决思路。
|
8天前
|
运维 Kubernetes 安全
构建高效自动化运维体系:Ansible与Kubernetes的协同实践
【4月更文挑战第29天】 在当今快速迭代的软件发布周期中,自动化已成为维护大规模服务部署的关键。本文聚焦于将Ansible和Kubernetes结合使用,构建一个灵活、可扩展的自动化运维体系。通过分析两者的技术特性及互补优势,我们将探讨如何优化配置管理流程,实现持续集成和持续部署(CI/CD),并确保系统的稳定性与安全性。此研究不仅为读者提供一套行之有效的运维解决方案,同时也为未来运维技术的发展提供了参考方向。
|
8天前
|
运维 Kubernetes 监控
构建高效自动化运维体系:Ansible与Kubernetes的完美结合
【4月更文挑战第29天】 在当今快速迭代的IT环境中,自动化已成为提高运维效率、减少人为错误的关键。本文将探讨如何通过Ansible和Kubernetes的结合来构建一个高效的自动化运维体系。文章首先分析了Ansible作为配置管理工具的优势,然后讨论了Kubernetes在容器编排领域的领导地位,最后详细阐述了如何将两者融合以实现更灵活、可扩展的自动化策略。
|
12天前
|
运维 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【4月更文挑战第26天】 在动态且不断增长的云计算环境中,维护高性能的 Kubernetes 集群是一个挑战。本文将探讨一系列实用的策略和工具,旨在帮助运维专家监控、分析和优化 Kubernetes 集群的性能。我们将讨论资源分配的最佳实践,包括 CPU 和内存管理,以及集群规模调整的策略。此外,文中还将介绍延迟和吞吐量的重要性,并提供日志和监控工具的使用技巧,以实现持续改进的目标。
|
4天前
|
运维 监控 Kubernetes
Kubernetes 集群的监控与维护策略
【5月更文挑战第4天】 在当今微服务架构盛行的时代,容器化技术已成为软件开发和部署的标准实践。Kubernetes 作为一个开源的容器编排平台,因其强大的功能和灵活性而广受欢迎。然而,随着 Kubernetes 集群规模的扩大,集群的监控和维护变得日益复杂。本文将探讨 Kubernetes 集群监控的重要性,分析常见的监控工具,并提出一套有效的集群维护策略,以帮助运维人员确保集群的健康运行和高可用性。
36 10

相关产品

  • 容器服务Kubernetes版