专栏首页YP小站Kubernetes 是否值得学习吗?

Kubernetes 是否值得学习吗?

概要

Original image by Myriam Zilles from Pixabay

您是否正在尝试应该怎样学习 Kubernetes ?如果是这样,你可能会有这样的问题 “ Kubernetes 会是下一件大事吗?” 或 “ Kubernetes 太繁琐了?” 或 “ Kubernetes 很难学习吗?”之类的问题。我的希望是消除任何混乱,并帮助您确定Kubernetes 是否适合您。

在本篇文章中,我们将探讨以下问题:

  • Kubernetes 有什么好处?
  • 学习 Kubernetes 有多难?
  • 对于小型项目来说,Kubernetes 是不是太重了?
  • 我必须掌握大部分 Kubernetes 的特性才能使用它吗?
  • Kubernetes 受欢迎程度是增加还是减少?
  • Kubernetes 有趣吗?

免责声明

Kubernetes 位于软件开发DevOps系统管理的交叉点。我是软件开发人员。因此无论好坏,我都通过开发者的眼光看待 Kubernetes。

我的目标是保持客观。因此,我将介绍优缺点,以便您确定 Kubernetes 是否适合您。

什么是 Kubernetes ?

简而言之,Kubernetes 可帮助您管理由一个或多个容器组成的应用程序。从本质上讲,它是一个工具箱,可帮助您构建由多个Docker容器组成的非常强大的应用程序。

Kubernetes 有什么好处?

  • 自愈:Kubernetes 自动重启崩溃的容器。它将崩溃或宕机节点上运行的容器重新调度。
  • 负载均衡:在 Kubernetes 中创建负载均衡器很简单。可以针对群集内部或群集外部的流量负载均衡到不同的 Pod。
  • 自动容器调度:Kubernetes 自动决定将容器部署到何处。当您在多个节点上运行许多容器时,这确实非常方便。
  • 水平缩放:当容器副本需要增加时,很容易按比例扩大它们的数量。也可以通过单个命令手动完成,也可以自动完成。
  • 滚动更新:您可以将旧容器换成新容器,而不会中断服务。也可以使用单个命令来完成。
  • 零停机降级:如果在某些容器中发现错误,可以恢复到这些容器的旧版本,而不会中断。(这使您有足够的时间来修改bug。)
  • Secret 数据管理:您可以在 Kubernetes 集群中存储敏感信息。如 API密钥数据库密码等。与将它们保存在版本控制下的源文件中相比,这是一个更安全的选择。
  • 抽象掉硬件:开发人员用容器都无需了解有关底层群集硬件的任何知识。这使得从一个云提供商迁移到另一云提供商变得容易。

学习 Kubernetes 有多难?

Image by congerdesign from Pixabay

有人抱怨 Kubernetes 很难学习。我认为这是有道理的,但并没有大家想象的那么难。让我概述下大家为什么觉得很难学。

  • 找到好的Kubernetes文档很难吗? - 在过去的几年中,官方文档已从可怕的变成了相当不错的。但是它仍然有些脱节并且比较分散。这使得确定学习各种概念的顺序有些困难。因此,我认为该文档最好作为参考,而不是循序渐进的指南。
  • Kubernetes复杂吗?- 我认为 Kubernetes 并不比当今使用的任何流行编程语言复杂。实际上,我认为 Kubernetes 更容易掌握。特别是如果您已经熟悉容器的话。
  • Kubernetes是否有许多先决条件? - 并不是的。但是您应该知道什么是Docker容器以及它们如何工作的基础知识。了解 YAML(这需要5到10分钟的学习时间)也很有帮助。并且您需要对 *nix 命令行有基本的了解。是的,即使是Windows用户,因为在开发/调试过程中,您可能会不时地转移到基于Linux的容器中。
  • 有很多概念要学习吗? - 有很多概念需要学习,但这是有原因的。凭借其众多功能,Kubernetes 能够解决许多不同类型的问题。但是,您可以绕开更高级的功能,直到您真正需要它们为止。许多问题只需要一小部分 Kubernetes 功能。使用您需要的内容,而忽略其余部分。

Kubernetes 是不是太重了?

尽管 Kubernetes 具有很多功能,但您不必全部学习它们。仅通过学习核心功能(如pods, services, controllers, volumes, secrets等),就可以学习很多东西。然后,当您真正需要时,您可以学习您所需要的功能。

我认为这种 “太重” 的名声实际上来源于团队 选择安装维护Kubernetes 的方式。您会看到,Kubernetes 在生产中并没有一个简单的安装过程。(请注意,创建开发集群并不难。)但是,如果您使用托管解决方案(例如 DigitalOcean Kubernetes 或 Google Kubernetes Engine),则 安装安全升级 都不需要你来维护。最重要的是,托管解决方案很便宜!

最后,请记住以下两个想法:

1、使用您需要的内容,而忽略其余部分。

2、每个大项目都是从小项目开始的!

Kubernetes 受欢迎程度是增加还是减少?

没有人愿意登上一艘正在下沉的船。也没有人愿意学习一种正在消失的技术。好消息是,Kubernetes 没有消失的危险。许多大公司(例如 Pinterest,Spotify和Squarespace)都依赖 Kubernetes。事实上,Kubernetes 已经变得非常流行,它已经成为事实上的标准容器编排系统。

Kubernetes 有趣吗?

By Ryan McGuire from Pixabay

我真的很喜欢和 Kubernetes 共事。但我一开始并没有这样的感觉。

几年前,当我第一次学习Kubernetes时,我并不喜欢它,原因有二:

  • 它的文档实在是太糟糕了
  • 你必须处理大量的配置文件

好消息是,Kubernetes 的维护人员已经极大地改进了文档。仅此一点,让 Kubernetes 的使用变得更加有趣。

也就是说,使用 Kubernetes 意味着您仍然必须使用许多配置文件。但是现在我真的很喜欢和他们一起工作。我将这种彻底的转变归功于三件事:

  • 1、首先,Kubernetes 所处的区域存在着有趣的问题。毕竟,它是一个用于解决容器化系统的基础结构级问题的工具箱。因此,您可以使用Kubernetes来处理分布式系统微服务系统可靠性网络安全性之类的事情。承认吧,蛮好玩的!
  • 2、其次,Kubernetes 是一个功能强大的系统,具有许多功能。俗话说,“权力越大,责任越大,乐趣越大”。这就是为什么我的人生目标是转世成一条电鳗。到目前为止,一切都很好。
  • 3、第三,Kubernetes 组件很有趣,就像乐高积木一样有趣。它们的灵活性可组合性使您能够解决各种问题。这有点类似于编程,因为在两种情况下,您都需要结合创造性独创性最佳实践来解决问题。有什么不喜欢的呢?

可以肯定的是,Kubernetes并不全是阳光和彩虹。因此,让我们来看看几个不足的地方。

  • 1、首先,Kubernetes 的配置文件在一开始读起来并不直观。简而言之,您的大脑需要时间来习惯于从不重要的片段中挑选出重要的片段。但是不用担心。这不是很难。如果我可以得到,您也可以。
  • 2、其次,您需要熟练地使用 Kubernetes 进行调试。(您不可能抛出一堆打印语句或运行某种不存在的Kubernetes调试器。)在您熟悉一些有用的kubectl命令之前,您可能会不时感到有些茫然。

总结

首先,DockerKubernetes 都是目前的潮流。容器和容器编排将继续席卷整个行业,这是有充分理由的。尽管容器解决了整个部署问题,但Kubernetes提供了一个强大而通用的系统来管理任何规模的容器集群。

也就是说,下面两种情况,Kubernetes 可能不是您的最佳选择。

  • 1、首先,如果(a)您尚未使用容器,(b)您没有计划使用它们,(c)您已经具有可以运行的部署和集群管理系统,那么就不要切换!听起来您的项目已经相当完善了。
  • 2、其次,您所在的团队是否决定安装和管理自己的容器编排系统?如果是这样,请考虑使用使用 Docker Swarm 之类的工具,它可能不具备 Kubernetes 的全部功能,但更易于安装。

原文链接:https://blog.true-kubernetes.com/is-kubernetes-worth-learning-part-1-the-big-picture/

本文分享自微信公众号 - YP小站(ypxiaozhan),作者:YP小站

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Kubernetes v1.17.0 正式发布

    欢迎大家关注交流,定期分享自动化运维、DevOps、Kubernetes、Service Mesh和Cloud Native

    YP小站
  • 白话 Kubernetes 基础概念

    微服务框架的流行,使得服务越来越精细化,服务也变的越来越多,对于发布和管理而言产生了巨大的挑战,而 Docker 的诞生,给与微服务的资源治理和控制提供了很好的...

    YP小站
  • Kubelet 证书自动续期

    当 Kubernetes 集群日志中出现 certificate has expired or is not yet valid 错误信息时,表明证书过期

    YP小站
  • Kubernetes的五大关键云技术

    Kubernetes采用率是开源软件历史上最快的吗?很可能。根据CNCF,Kubernetes现在是仅次于Linux的全球第二大开源项目。

    用户3382876
  • 2020年值得关注的5种Kubernetes趋势

    随着Kubernetes的采用率不断增长,IT领导者们在未来一年将期待什么呢?寻求采用更多的“Kubernetes原生”应用程序,重点关注安全性和更智能的资源消...

    静一
  • 浅谈K3OS:首个K8s操作系统,为边缘计算而生!

    4月24日,容器软件提供商Rancher Labs正式发布k3OS,这是业界首个专为Kubernetes而生的极轻量操作系统,资源消耗极低,操作极简,秒级启动,...

    边缘计算
  • 关于如何正确使用Kubernetes的5个技巧

    为了有效地使用云计算,您必须使用Kubernetes来协调您的工作负载。以下是正确执行此操作的5个提示。

    February
  • 针对各级开发人员的顶级Kubernetes教程和资源

    如果您是使用容器的开发人员,您和您的团队可能已经听说过Kubernetes。Kubernetes的核心是网络容器操作系统,但已经发展得更多。当然,Kuberne...

    February
  • Kubernetes扩展容器架构的7 个工具

    Kubernetes是最初由Google开发的容器编排工具,已成为敏捷和DevOps团队的重要资源。作为一个开源工具,Kubernetes本身正在成为一个生态系...

    February
  • 管理Kubernetes应该了解的7件事

    越来越多的团队开始在生产中使用Kubernetes来运行其容器化工作负载和应用程序。当零停机时间和安全性至关重要时,Kubernetes迅速成为在生产中运行大规...

    静一

扫码关注云+社区

领取腾讯云代金券