你应该学习 Kubernetes 吗?

x33g5p2x  于2022-02-15 转载在 Kubernetes  
字(3.0k)|赞(0)|评价(0)|浏览(241)

在过去几年中,随着公司转向容器和云原生部署方法,Kubernetes 的采用率激增。该平台已成为在生产环境中运行容器的领先编排解决方案。这意味着现在整个行业都需要熟练使用和管理 Kubernetes 集群的人。

在本文中,我们将看看您是否应该根据您当前的角色和未来目标来学习 Kubernetes。如果您的任务不是管理集群,那么最终决定取决于您想要获得的技能组合以及您可能进入的领域。

什么是 Kubernetes?

首先,了解 Kubernetes 是什么是有帮助的。该技术是一种用于在分布式环境中运行容器的编排器。它采用使用 Docker 等工具构建的容器映像,并在多个物理主机上启动它们的多个实例。这导致具有内置冗余的可扩展部署。

Kubernetes 还提供了用于网络、持久存储、监控和日志记录的解决方案,可让您配置环境并密切关注其状态。Kubernetes 集群实际上是一个用于定义、创建和维护工作负载的一体化平台。以声明性 YAML 文件表示的资源清单指定您的基础设施应该是什么样子;当文件应用到您的集群时,Kubernetes 会进行必要的更改以转换到声明的状态。

系统的范围意味着存在显着的固有复杂性。Kubernetes 以难以学习、让新手感到困惑以及对于更简单的用例难以操作而闻名。但是,通过最初的学习曲线,您将处于云原生应用程序部署的最前沿,并让您更好地了解如何为生产构建系统。

面向开发人员的 Kubernetes

Kubernetes 越来越受开发人员欢迎,因为它允许您在开发环境中复制生产基础设施。您可以使用设备上的本地集群测试应用程序,然后使用相同的资源清单将它们部署到生产环境。
作为开发人员学习 Kubernetes 还可以让您了解在合并代码后如何部署和管理您的软件。这可以更容易地实现性能、可靠性和安全性的优化。将代码交给专门的团队投入生产往往会使您与工作分离,从而导致改进机会从差距中消失。

另一个好处是提高了对运营和安全团队如何检测和响应事件的认识。当您在相同的基础架构上工作时,您将更加了解在应用程序出现故障时要使用的正确流程和技术。这种意识可以帮助您预测未来的问题并在应用程序级别添加缓解措施。

了解 Kubernetes 可以让您更全面地了解整个软件生命周期。特别是在大型组织中,开发通常被视为编写、审查和合并代码,然后出现 CI 管道并“部署”它。对于不了解云操作和容器编排知识的开发人员而言,此例程可能显得不透明。花时间了解 Kubernetes 的作用以及其他团队如何从中获得价值,可以让您更了解代码的操作环境。它还可以为改进提供一条途径,使之回溯到开发阶段。

面向运营经理的 Kubernetes

如果您已经在运营部门工作,学习 Kubernetes 将为您提供有关云原生部署领先工具的广受欢迎的知识。

从习惯于物理硬件和虚拟机的系统管理员的角度来看,Kubernetes 可能令人生畏。编写 YAML 文件、发出终端命令并等待编排器达到您想要的状态,这些看起来就像是开发人员要处理的“代码”任务。
一旦您通过了最初的学习曲线,Kubernetes 可以通过自动配置和扩展资源来显着简化您的日常工作流程。通过恢复到早期版本的 YAML 清单,可以快速回滚更改,从而大大简化了使用其他技术可能会耗费大量时间的任务。

Kubernetes 可以使您的部署更能适应变化。该技术与云无关,并抽象了各个供应商之间的差异。以从 Google Cloud 迁移到 AWS 为例:如果您使用普通 VM 运行应用程序,则需要制定一个相当复杂的迁移策略来在 AWS 上重新创建您的环境;使用 Kubernetes,您只需将清单应用到在您的 AWS 账户中创建的新集群。

使用 Kubernetes 还有助于降低团队之间的障碍。您可能已经让开发人员使用他们自己的本地集群作为他们日常工作流程的一部分。在组织级别学习和使用 Kubernetes 可以让您在工程师所在的地方与他们会面,促进共享见解、更多协作和简化开发流程。花时间去理解它将使您领先于同行,并且可以使您的部署更安全、更高效且维护开销更少。

面向安全专家的 Kubernetes

作为安全从业者,了解与您的软件及其环境相关的风险是您的工作。当部署在 Kubernetes 中运行时,了解平台及其特性将指导您对您的安全状况进行更明智的评估。

Kubernetes 安全性本身就是一个主题。有许多内置功能可让您强制实施访问控制限制和容器级安全策略。这些应该用于创建一个强化的环境,从而减少 Dev 和 Ops 团队的错误空间。

如果您的团队或组织尚未使用 Kubernetes,则无需学习 Kubernetes。但是,对它的特性、攻击面和可用的强化措施有过的了解可以帮助您为未来做好准备。如果在生产中使用集群,则应首先对其进行适当的保护;开发人员可能没有深入的 Kubernetes 安全专业知识来做出正确的选择,因此您的输入对于避免问题至关重要。
了解正在使用的工具以及未来可能采用的工具非常重要。许多组织现在会将 Kubernetes 包括在后者列表中,如果不是前者的话。

其他注意事项
“学习 Kubernetes”时的一个关键考虑因素应该是它与您的近期目标保持一致。如果您是想要更好地了解整个部署管道并可能在本地运行集群的开发人员,那么尝试一下可能是有意义的。相反,如果您是使用基于其他技术的既定工作流程的发布经理,您可能会从时间投资中看到较少的短期价值。

您还应该为 Kubernetes 的范围和规模做好准备。学习这一切将是一项艰巨的任务;正如我们所见,并非所有领域都与每个学科同等相关。作为起点,开发人员可能会学习基本的Kubernetes 对象、它们如何组合在一起以及它们是如何创建的,而那些担任操作角色的人可能会更加重视监控和扩展能力。

因此,缩小您的目标并专注于您希望通过 Kubernetes 实现的目标是一个好主意。没有单一的学习路径,因为您需要根据软件堆栈的构成使用不同的组件。当然,如果你听到很多关于 Kubernetes 的消息,你会觉得这听起来很有趣,并且你渴望扩展你的技能,如果你愿意投入时间,这也是一个很好的理由。无论您从哪里开始,您都将熟悉一种越来越多地塑造云部署外观的工具。

概括

开发人员、运营经理和安全从业者都应该考虑将 Kubernetes 添加到他们的工具包中。学习 Kubernetes 将向您介绍在云中配置、运行和维护生产工作负载的最佳实践方法。它通过提供一个每个人都可以查看和协作的共享界面来鼓励 Dev、Sec 和 Ops 学科的统一。

这并不是说 Kubernetes 是你必须学习的东西。如果您还没有使用容器,或者您正在使用不同的编排器进行部署,那么您不会从您的学习时间中看到太多好处。如果您已经在使用 Docker、CI/CD 系统和负载平衡服务器等相邻技术,那么获得 Kubernetes 经验是最值得的。

与许多其他云原生技术一样,Kubernetes 正在快速发展,定期更新添加了弃用和删除。这意味着如果您不积极使用它,您的知识可能很快就会过时。在这种情况下,深入了解 Kubernetes 架构及其解决的问题可能比编写和应用可能会更改的 YAML 文件的实际经验更有益。

当您决定是时候学习时,Kubernetes文档通常是最好的起点。您可以使用MicroK8s等单包分发创建自己的集群,也可以使用托管云服务来获得更简单的体验。一旦您的应用程序被打包为容器,它就可以在任何 Kubernetes 集群中运行,让您在未来可以在云环境之间自由切换。

相关文章