在采用K8S之前您必须了解的5件事情

简介: 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 作者简介 Christopher Tozzi,自2008年来以自由职业者的身份对Linux、虚拟化、容器、数据存储及其相关主题进行报道。

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


作者简介 | Christopher Tozzi,自2008年来以自由职业者的身份对Linux、虚拟化、容器、数据存储及其相关主题进行报道。

时至今日,Kubernetes已然成为风靡一时的容器编排调度工具,许多IT分析师均提出了企业应当在何时采用Kubernetes的深刻建议。然而,和所有其他的软件平台一样,Kubernetes并非是一个适用于所有人的灵丹妙药。我更倾向于认为人们在有些时候过分夸大了Kubernetes的作用,以至于他们产生了一种错觉:他们无法离开Kubernetes,而实际上,Kubernetes比他们真正的需求要复杂得多。

1

为了分析人们真正的需求与Kubernetes的匹配程度,我分析了企业在采用Kubernetes编排之前必须考虑的5个事情。

Kubernetes是什么?

如果您关注容器,您可能会知道Kubernetes是一个用于容器编排的开源工具,它可以自动执行诸如启动容器、停止容器以及在同一个容器的不同实例之间的负载均衡等重要任务。

简而言之,Kubernetes的主要目的是最大限度地减少工程师必须手动执行的管理工作量,并通过简化容器操作,帮助企业大规模运行复杂的容器化应用程序。

决定是否采用Kubernetes的关键要素

基于Kubernetes的设立初衷,如果您喜欢自动化,讨厌手动执行重复性的任务,那么Kubernetes无疑是您的极佳选择。

这是您决定是否采用Kubernetes的重要前提,但是,您不能仅根据这一“前提”就决定是否采用Kubernetes。在采用Kubernetes之前,您还需要考虑并权衡其他重要的因素。

1、Kubernetes的基础设施规模

您的基础设施规模是其中一个决定Kubernetes是否能够很好地为您所用的关键要素。

Kubernetes的设计初衷是协调分布在真正庞大的环境中的容器,这往往意味着企业应当拥有数十台主机服务器。根据过往的实施经验,如果基础架构中的服务器少于50个,那么您可能没有足够的资源来利用Kubernetes的全部优势。

这并不是指Kubernetes无法在较小规模的基础设施上运行。实际上,如果您愿意,您可以在单个主机上运行Kubernetes。然而,由于Kubernetes其中的一个研发目的是:通过在数量庞大的集群中分布容器化应用程序提供高可用性,因此,如果您只有少量服务器,则无法享受到Kubernetes的某些价值。

除此之外,考虑到设置和维护Kubernetes的复杂性,如果您的基础设施规模较小,无法完全实现Kubernetes的高可用性承诺,那么或许您不应投入过多时间和精力在Kubernetes上。

对于较小的基础架构,您可以使用较为简单的容器编排工具,或者使用如AWS ECS等具有内置编排的基于云的容器服务。

2、Kubernetes操作系统环境

Kubernetes主要是一种Linux技术。尽管Kubernetes可以用于管理托管Windows服务器上的容器化应用程序,这些应用程序作为Kubernetes服务器集群内的所谓工作节点运行。但托管Kubernetes核心服务的主要服务器或者说主节点必须是Linux。

因此,如果您的商店以Windows为中心,那么Kubernetes并非您的最佳选择。但是您可以选择Rancher轻松将Kubernetes的优势引入Windows,并且极大程度降低使用的复杂性。

3、安装和设置Kubernetes

在决定采用Kubernetes之前,您还需要评估您可以在此项目上投入的工作时间。

普通的开放源代码版本的Kubernetes缺少内置的应用程序,也并未提供一种可以适用于所有默认配置的安装方式。在集群正常运行之前,您需要投入大量的时间从头开始编写及调整配置文件。因此,安装和配置Kubernetes的过程或许是一个令人生畏的过程,您需要投入大量的时间和精力。

部分Kubernetes发行版提供了交互式安装程序脚本,可以帮助您自动执行大部分设置过程。如果您选择Rancher等Kubernetes发行版,则有望在一两天内轻松完成配置及安装。

第三种选择是使用诸如Google Kubernetes Engine等云供应商解决方案,将Kubernetes作为托管服务在云上运行。在这种情况下,您可以自行选择安装及设置。但值得注意的一点是,在确定如何配置Kubernetes环境时,您的选择可能会受到限制。

您必须意识到最为关键的一点:不要低估配置Kubernetes的难度。在您真的要全身心投入Kubernetes之前,请确保您所付出的努力是值得的。另一方面,如果您无法确定为企业在生产集群上安装和部署Kubernetes的难度,您可以尝试使用K3s等轻量级Kubernetes发行版来进行测试,预估后续需要付出多少努力来进行Kubernetes的配置和设置。

4、Kubernetes和声明式配置管理

Kubernetes采用了所谓的声明式配置管理方法,这就意味着,您需要自行编写配置文件来设置Kubernetes应用程序应当如何运行,而Kubernetes将自动指出如何使应用程序符合规范。

声明式配置管理与命令式配置管理相反,在命令式配置管理中,您可以自行配置应用程序的每个组件,并让其按照您所想要的方式运行。

声明式配置是Kubernetes在许多用户实例中如此强大和可伸缩的其中一个原因。您可以设置一次配置,并且根据需要多次应用它。

但是,如果您的配置需求不断变化,或者在工作负载或环境中的不同部分之间变化,那么您应当如何处理呢?在这种情况下,声明式配置管理将成为一个障碍,您将发现自己需要不断地调整先前认为是“一劳永逸”的配置文件。

因此,在您选择采用Kubernetes之前,您需要考虑应用程序的配置需求。只有当您所需要的配置相对通用且静态时,Kubernetes才是一个不错的选项。

5、Kubernetes和多云

Rancher等部分Kubernetes发行版的主要功能之一,是单个Kubernetes部署可以编排多个集群,无论集群位于在不同的公有云还是私有云上。这一功能使Kubernetes成为协助控制多云架构复杂性的优秀工具。

在跨多云部署容器化应用程序,并且Kubernetes的设置和配置工作很合理时,多云上的Kubernetes是十分有意义的。

在这一因素中,您需要留意的是,在考虑是否以及何时采用Kubernetes时,应考虑您当前的多云战略以及多云扩展计划。

结 语

Kubernetes是一个非常棒的工具,在正确设置的情况下,它可以产生巨大的价值。但是,它并没有达到杀手级应用程序的状态,因为它无法在所有用户实例中交付价值。在您被巨大的宣传攻势攻陷,并确定您无法离开Kubernetes之前,请清醒地对自己的需求进行评估,明确Kubernetes是否能在真正意义上帮助您更加有效、更加可靠地运行应用程序。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-06-24
本文作者:hristopher Tozz
本文来自:“dockone”,了解相关信息可以关注“dockone”

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
存储 监控 安全
ELK 日志分析系统概述及部署(上)
ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求
ELK 日志分析系统概述及部署(上)
|
负载均衡 Dubbo 应用服务中间件
Docker Overlay网络的一些总结
在早期的docker版本中,是不支持跨主机通信网络驱动的,也就是说如果容器部署在不同的节点上面,只能通过暴露端口到宿主机上,再通过宿主机之间进行通信。随着docker swarm集群的推广,docker也有了自家的跨主机通信网络驱动,名叫overlay,overlay网络模型是swarm集群容器间通信的载体,将服务加入到同一个网段上的Overlay网络上,服务与服务之间就能够通信。
777 0
Docker Overlay网络的一些总结
|
Linux 数据库 网络协议
Linux环境下安装和配置Informix数据库(多次试错后总结)
本文主要讲解在Centos环境下,Informix数据库的安装和配置方法
2263 0
Linux环境下安装和配置Informix数据库(多次试错后总结)
|
Web App开发 弹性计算 负载均衡
阿里云acp考试时间、内容?阿里ACP认证考试有什么经验?
阿里acp认证考试有什么经验?众所周知,阿里云针对不同云产品类别、用户行业、用户成长阶段,精心打造不同的认证考试。阿里云认证分为四级ACF、ACP、ACA、ACM。拿到阿里云证书即使以后从业相关行业都可以拿到高新、以及相关行业的专业资格
1194 0
阿里云acp考试时间、内容?阿里ACP认证考试有什么经验?
|
6月前
|
Kubernetes 监控 API
【K8S系列】深入解析滚动升级
【K8S系列】深入解析滚动升级
327 0
|
10月前
|
云安全 供应链 Kubernetes
KCD技术分享:以SBOM为基础的云原生应用安全治理
悬镜安全COO董毅应在中国大连举办的Kubernetes Community Days(KCD)技术沙龙主办方的邀请,发表了题为“以SBOM为基础的云原生应用安全治理”的演讲。让我们一起来看看他说了什么吧~
119 0
|
存储 Kubernetes 负载均衡
K8S面试题
K8S面试题
805 0
|
存储 编解码 Kubernetes
K8S原理剖析:工作负载原理剖析和实践
K8S原理剖析:工作负载原理剖析和实践
331 0
K8S原理剖析:工作负载原理剖析和实践
|
边缘计算 运维 Kubernetes
讲座回顾丨基于 OpenYurt 和 EdgeX 的云边端协同新可能
为帮助参赛选手更好地了解并运用相关技术,本次大赛将在 7 月至 9 月持续开展 3 轮技术培训,涵盖初、中、高不同层级,帮助开发者系统学习智能边缘系统知识。我们邀请到来自英特尔、VMware、阿里云等多家机构的技术专家进行分享。
讲座回顾丨基于 OpenYurt 和 EdgeX 的云边端协同新可能
|
监控 测试技术 容器
干货!《云上业务稳定性保障实践白皮书》免费下载!
本书通过多位资深阿里云客户技术服务经理在大型项目中积累的业务稳定性保障经验以及集团内多年沉淀形成的稳定性建设体系,希望可以给读者提供一套可落地的方法论和多种云上业务稳定性保障的关键技术手段。
259 0
干货!《云上业务稳定性保障实践白皮书》免费下载!