Kubectl apply 语法、使用示例、最佳实践

icegoblin
发布于 2023-11-28 14:38
浏览
0收藏

Kubectl apply 语法、使用示例、最佳实践-鸿蒙开发者社区

什么是 kubectl?

任何使用过 ​​Kubernetes​​​ 的人都会欣赏其命令行工具​​kubectl​​​的强大功能。无论您是运行小型项目还是管理大型企业级集群,​​Kubectl​​​ 都是任何 ​​Kubernetes​​ 设置的重要组成部分。

​Kubectl ​​​允许您针对 ​​Kubernetes​​​ 集群运行命令。它是与 ​​Kubernetes​​​ 集群交互的主要方法,使开发人员和管理员能够有效地管理其资源。​​Kubectl​​​ 使用 ​​Kubernetes API​​​ 与集群交互,提供了用于与 ​​Kubernetes 资源​​交互和管理的多功能工具集。

使用 ​​kubectl​​​,您可以部署应用程序、检查和管理集群资源以及查看日志。对于任何与 ​​Kubernetes​​​ 交互的人来说,无论他们是开发人员、系统管理员还是 DevOps 专业人员,它都是不可或缺的工具。​​Kubectl ​​​的强大之处在于它的多功能性。它提供了多种创建、更新和管理 Kubernetes 资源的方法。一个核心命令是​​kubectl apply​​。

kubectl apply 的语法

该​​kubectl apply​​命令用于将配置更改应用于资源。语法很简单:最常见的用法是:

kubectl apply -f app.yaml

这里,该​​-f​​​标志表示资源配置在名为​​app.yaml​​的文件中提供。

该​​kubectl apply​​命令基于声明性配置工作。声明性配置是一种在文件中提供资源所需状态的方法,Kubernetes 会进行必要的更改来实现该状态。这与命令式相反,命令式命令是需要指定更改资源状态的每个步骤。

该​​kubectl apply​​命令还通过将先前应用的配置写入资源的注释来维护该记录。此信息用于计算下一次调用的差异,使其能够准确地知道要应用做哪些更改。

​kubectl apply ​​​的惊人之处在于,它可以用于在几乎任何环境中部署计算资源 - 本地或任何云中,无论 Kubernetes 集群在何处运行。这使得 Kubernetes 能够​​支持复杂的混合 IT​​场景。

Kubectl 应用:主要用例

创建资源

在 Kubernetes 中,您可以使用​​kubectl apply​​​来创建 Pod、服务和部署等资源。您只需在 ​​.yaml​​​ 或 ​​.json​​​ 文件中定义资源的配置,然后用于​​kubectl apply​​创建它。

更新资源

​kubectl apply​​​不仅用于创建资源,还用于更新资源。当您想要对资源进行更改时,您可以更新配置文件,然后使用​​kubectl apply​​. 最后,Kubernetes 将计算当前状态与所需状态之间的差异并应用必要的更改。

处理实时配置的更改

有时,您可能需要更改资源的实时配置。​​kubectl apply​​也允许您执行此操作。但是,请务必注意,这些更改将在您下次应用配置文件时被覆盖。因此,建议始终在配置文件中进行更改,然后应用它们。

使用“kubectl apply”的最佳实践

使用版本控制系统

使用时的最佳实践之一​​kubectl apply​​是利用版本控制系统(VCS)。VCS 允许您跟踪代码随时间的变化。如果您需要恢复到以前版本的代码,或者您在团队中工作并且需要合并来自不同开发人员的更改,这将非常有用。

使用 VCS 意味着​​kubectl apply​​​将所有 Kubernetes 配置文件存储在像 Git 这样的 VCS 中。这样,对配置所做的每项更改都会被跟踪,从而​​提供有关所做更改、更改时间以及更改者的清晰历史记录​​​。这种做法不仅提高了​​可追溯性​​​,而且还允许团队成员之间​​更好的协作​​。


此外,使用 VCS 允许您利用​​持续集成/持续部署 (CI/CD) 管道​​​。这些管道可以自动将 VCS 中的更改应用到 ​​Kubernetes​​ 集群,从而进一步简化您的部署流程。

清理未使用的资源

使用​​kubectl apply​​​清理未使用的资源非常重要。这对于​​管理云成本​​​非常重要。如果您从配置文件中删除资源然后使用​​kubectl apply​​​,Kubernetes 不会自动删除相应的资源。相反,您需要使用命令​​kubectl delete​​手动删除资源。

清理未使用的资源对于维护干净高效的系统非常重要。未使用的资源可能会消耗系统资源,并使您的配置更难以理解和管理。

整体管理资源

另一个最佳使用实践是​​将资源作为一个整体​​​而不是单独管理。这意味着将应用程序所需的所有资源视为一个单元。Kubernetes 允许您通过称为​​标签的功能​​来做到这一点。

标签是可以附加到 Kubernetes 对象的键值对。您可以使用标签将相关资源分组在一起。例如,与特定应用程序相关的所有资源都可以有一个标签,其中键为“app”,应用程序的名称作为值。

使用标签对资源进行分组后,您可以将​​kubectl apply​​​更改​​应用到具有特定标签​​的所有资源。这使您可以将与应用程序相关的所有资源作为一个单元进行管理,从而使您的工作更加高效。

了解合并策略

了解所使用的​​合并策略​​​至关重要。当您应用​​kubectl apply​​​更改时,Kubernetes 不会简单地覆盖现有配置。相反,它使用一种称为​​three-way merge patch​​的策略。

在​​three-way merge patch​​​,Kubernetes 会查看对象的​​当前状态​​​、正在应用的​​配置文件中的对象状态​​​以及​​应用时对象的最后状态​​。然后它合并这三个状态以确定对象的最终状态。

这意味着直接对对象所做的更改(例如,通过kubectl edit命令)将被保留,除非它们被配置文件中的更改覆盖。了解这种合并策略可以帮助您在使用时避免意外结果。

注意声明性命令和命令式命令

Kubernetes 命令大致可分为两类:​​声明式命令​​​和​​命令式命令​​。声明性命令指定系统所需的状态,然后 Kubernetes 找出如何实现该状态。另一方面,命令式命令指定要在系统上执行的操作。

kubectl apply是一个声明性命令。您提供一个配置文件来指定系统所需的状态,然后 Kubernetes 找出如何实现该状态。这种方法比命令式命令更灵活、更强大,但也可能更复杂。

对于掌握kubectl来说,需要了解声明性命令和命令式命令之间的区别以及何时使用它们。

结论

掌握kubectl对于任何使用 Kubernetes 的人来说都是至关重要的。通过遵循本指南中概述的最佳实践,您可以更有效地使用​​kubectl apply​​​。记住使用版本控制系统,整体管理资源,了解合并策略,了解声明性和命令性命令,并清理未使用的资源。
Happy Kube-controlling!


文章转载自公众号:DevOps云学堂

分类
已于2023-11-28 14:38:19修改
收藏
回复
举报
回复
    相关推荐