Kubernetes如今已成为包括谷歌、Shopify、Slack在内世界上一些规模最大的运营商所采用的关键技术。Kubernetes使企业能够以以前无法实现的方式利用云计算技术,并且也能够对大数据执行相同的操作。
要利用这种技术,重要的是要首先了解其可用的功能。以下将了解Kubernetes的一些更加高级的功能,以帮助人们从其配置中获取更多信息。
什么是Kubernetes?
Kubernetes是一个开源平台,它支持容器和容器化应用程序的自动化部署、扩展和管理。它可以在本地或云平台中使用。Kubernetes的常见用例包括采用混合云和多云、创建与供应商无关的无服务器平台,或者部署自我修复和扩展服务。
尽管Kubernetes并不是唯一可用的业务流程平台,但它是受到支持最多的平台。Docker Swarm和OpenShift都是备选方案。
人们需要知道的10个Kubernetes特性
在人们掌握了Kubernetes的基本知识之后,可能会想开始利用其高级功能和特性。
1. Sidecars
Sidecar使用户可以在Pod中运行其他容器以用作观察程序或代理。用户可以使用这个额外的容器来引导需要安装的数据,并将数据公开到容器中的其他容器。例如,Sidecar可用于处理主容器的日志记录或身份验证。当用户要允许Pod中的相关进程进行通信而无需修改主容器源代码时,Sidecar就会很有用。
2. Helm Charts
Helm Charts是Kubernetes的软件包管理器,可用于简化Kubernetes应用程序的安装和管理。它使用由软件包描述和包含Kubernetes清单文件的模板组成的图表。用户可以在Kubernetes中使用清单文件来创建、修改和删除资源。
Helm Charts使用户能够创建和共享可复制的Kubernetes应用程序版本。其中有许多预配置的图表及其相关性,因此Helm Charts可以使用户能够快速轻松地部署应用程序。
3. 自定义控制器
控制器是调节系统或资源状态的循环。使用自定义控制器,用户可以完成标准控制器未包含的任务。例如,可以动态地重新加载应用程序配置。自定义控制器可以与本机或自定义资源类型一起使用。
与工具链相比,使用这些控制器可以更轻松地管理部署。控制器是单段代码,而工具链则需要熟悉许多接口。
4. 自定义计划
Kubernetes附带了一个默认调度程序,用于将新创建的Pod分配给节点。如果此计划程序无法满足用户的需要,或者想运行多个计划程序,则可以创建一个自定义计划程序。例如,用户可以使用自定义计划来促进云爆发。云爆发是指将工作负载移至云中以满足更高性能或流量需求的情况。
如果用户希望将特殊Pod与其他Pod分开处理,则自定义调度程序会很有用。可以根据其偏好或要求设置调度程序。调度可以依赖严格的匹配列表或包含和排除列表。
5. Pod中断预算(PDB)
Pod中断预算(PDB)是一项功能,使用户可以限制自动停止集群中的Pod数量。它有助于确保在维护、自动缩减、升级等任务期间保持最少数量的Pod处于活动状态。
使用Pod中断预算(PDB),可以防止应用程序可用性或性能受到管理任务的影响。Pod中断预算(PDB)要牢记的一个重要限制是,在自动完成更改时,如果节点发生故障,它才起作用。
6. Go模块
Go模块是Go软件包的集合,可用于管理应用程序依赖项。依赖项是应用程序运行所依赖的代码、库或框架的一部分。Kubernetes支持v1.15版本的Go模块。
使用模块,用户可以使用同一依赖包的多个版本,也可以使用存储在不同环境中的依赖。用户可以使用模块来简化分布式团队之间的代码共享,并最大程度地减少依赖关系更改而带来的影响。
7. 污点和容忍
污染和容忍使用户可以将节点定向为“吸引”或“排斥”Pod。将污点分配给节点,并指定不接受或不容许分配污点的Pod。
容差分配给了容器,并向具有匹配污点的节点发出信号,表明可以接受容器。如果用户需要在特定硬件上部署应用程序,或者想要将一组节点专用于特定用户,则此功能很有用。
8. 集群联合
集群联合使用户可以将多个集群视为通过单个控制平台进行管理的单个逻辑集群。其联合使在不同位置或环境中运行的集群更易于管理。用户可以使用集群联合通过使工作负载在集群之间传递,从而使集群具有高可用性和弹性。
9. 健康检查
用户可以通过定义要由kubelet代理运行的探测,来检查Kubernetes中Pod或应用程序的运行状况。用户可以定义就绪性、活动性和启动探测,如下所示:
- 准备就绪—确定容器是否可以接收请求。如果失败,则从将流量定向到Pod的所有端点中删除Pod IP地址。
- 活动性—确定是否需要重新启动容器。失败意味着容器被终止并重新启动。
- 启动—确定容器中的应用程序是否已启动。在失败的情况下,容器将被终止并重新启动。
用户可以使用超时、重试次数、最小成功或失败阈值以及延迟的运行时间自定义探测。
10. Feature Gates
Feature Gates是Kubernetes中的一项功能,可用于在节点、集群或平台级别上打开或关闭功能。此功能使用户可以安全地测试功能,而不必担心关键组件或生产环境的风险。
用户可以使用Feature Gates来控制Alpha、beta或稳定功能。每个Feature Gates仅控制一个功能。Alpha功能默认为关闭,Beta和GA功能默认为打开。还有关门、功能描述和状态等。
结论
Kubernetes是用于协调容器部署的强大工具,但是使用它可能会面临挑战。要充分利用此工具,必须了解可用的功能。
如果此处介绍的任何功能似乎对用户的部署有用,则需要进一步研究。Kubernetes文档是最佳起点,通常可以提供配置指南或将定向到外部资源。