针对初学者的 Linux Xargs 命令的 12 个实用示例
2024年3月17日在 Linux 中使用 fsck 命令检查和修复文件系统错误
2024年3月17日kubectl apply
两者kubectl create
是在 Kubernetes 集群环境中创建资源的两种不同方法。
它们都从文件或STDIN创建资源。
kubectl apply 和 create:创建资源的两种方法
现在让我们详细了解一下 kubectl apply 和 create 在实现时有何不同。
kubectl create:命令式管理
kubectl create
就是我们所说的命令式管理。通过这种方法,您可以告诉 Kubernetes API 您想要创建、替换或删除什么。
简而言之,create
创建一个全新的对象(以前不存在或已删除)。
kubectl apply:声明式管理
kubectl apply
是声明性管理方法的一部分,其中您可能已应用于活动对象(即通过scale
)的更改将被“维护”,即使您apply
对该对象进行了其他更改。
简而言之,apply
- 通过定义我们需要的内容来对现有对象进行增量更改。
通过示例了解 kubectl create 和 apply 之间的区别
我将使用下面的 YAML 文件创建 Kubernetes pod。
让我们使用命令式方式创建 Pod,即使用kubectl create
命令:
列出 pod 状态以及标签:
现在,我将编辑 YAML 文件并向其添加额外的标签(演示:applyVscreate)。
现在让我们再次使用命令式方法来应用更改。
它抛出一个错误并表示资源已经存在。
现在让我们使用声明性方法(即命令)执行相同的操作kubectl apply
。
所以,这次资源配置完成了。验证所做的更改。
您可以看到新标签已应用到 Pod。
相信现在您应该对这两种方式有了一个清晰的认识。
Kubectl 创建还是应用?使用哪一个?
这取决于您想要如何使用这些概念或方法的用例。这不在于哪个是好哪个是坏。
如果您想对 k8s 对象进行版本控制,那么最好使用声明式方式(kubectl apply),这有助于确定 k8s 对象中数据的准确性。
如果您只想创建一些用于故障排除、学习或交互式实验目的的资源,请使用命令式方法(kubectl create)。
还困惑吗?请发表评论,我会尽力回答您的疑问。