Kubernetes 如何正确定义部署规范文件

Kubernetes 如何正确定义部署规范文件,kubernetes,kubernetes-deployment,Kubernetes,Kubernetes Deployment,我必须创建部署规范文件,该文件将: 启动带有标签的nginx图像的3副本 部署名称star\u部署 将此规范文件的副本保存到部署_spec.yaml或json。完成后,我需要清理(删除)在此任务期间生成的任何新Kubernetes对象。基于这个任务,我不知道如何解决这个任务。我应该创建部署,然后使用命令 kubectl get deployment star_deploy -o yaml > deployment_spec.yaml kubectl create deploymen

我必须创建部署规范文件,该文件将:

  • 启动带有标签的nginx图像的3副本
  • 部署名称star\u部署
将此规范文件的副本保存到部署_spec.yamljson。完成后,我需要清理(删除)在此任务期间生成的任何新Kubernetes对象。基于这个任务,我不知道如何解决这个任务。我应该创建部署,然后使用命令

kubectl get deployment star_deploy -o yaml > deployment_spec.yaml 
kubectl create deployment star_deploy --image=nginx  --dry-run -o yaml > deployment_spec.yaml 
或者在创建过程中,使用命令

kubectl get deployment star_deploy -o yaml > deployment_spec.yaml 
kubectl create deployment star_deploy --image=nginx  --dry-run -o yaml > deployment_spec.yaml 

您认为最好的方法是什么?

我建议使用
--dry run
选项来创建一个基础yaml文件,并对其进行编辑以进行必要的更改,然后使用
kubectl create-f deployment.yaml
来实际创建资源

任务完成后,您可以使用
kubectl delete-f deployment.yaml


这遵循的是声明性方法,它使定义部署(或任何资源)和通过CI/CD或GitOps管理其生命周期变得更容易。

干运行总是好的,因为它只提供必要的输出,没有任何垃圾值,如修订号,CreationTimesMP等,这将为您提供用于部署的清洁生产级yaml文件。稍后您可以使用它来创建守护程序等

kubectl create deployment star_deploy --image=nginx  --dry-run=client -o yaml > deployment_spec.yaml 
注意:始终以客户机身份运行

生成yaml后,使用以下命令应用此yaml以创建部署

kubectl apply -f deployment_spec.yaml
为了扩展该部署的POD,您甚至不需要编辑yaml文件

kubectl scale deployment star_deploy --replicas=3
要删除已创建的部署,可以使用

kubectl delete deployment star_deploy

我理解但不应该在所有这些之后运行命令kubectl delete deployment star\u deploy?@O.Man删除部署
kubectl delete deployment star\u deploy
我更喜欢声明式方法..这是
kubectl delete-f deployment.yaml
vs
kubectl delete deploy star\u deploy的命令式方法伙计们,我看到了。谢谢你的帮助。