如何查找哪个yaml文件用于部署任何kubernetes资源。
我检查了“ kubectl describe”,它没有列出相同的名称,反正还有。
用例:
我想更新yaml和重新部署,我猜是从运行资源,更新和重新部署中生成yaml。
有什么建议吗?
答案 0 :(得分:4)
要为您的k8s应用程序部署获取Yaml。
使用this
kubectl get deploy my-deployment -o yaml --export
OR
kubectl get pod my-pod -o yaml --export
OR
kubectl get svc my-svc -o yaml --export
编辑也很简单。
kubectl get deploy my-deployment -o yaml --export > my-deployment.yml
<Edit the my-deployment.yml file and kubectl apply -f my-deployment.yml>
OR
kubectl edit deployment my-deployment
希望这会有所帮助。
答案 1 :(得分:0)
您可以使用以下命令来获取用于创建部署的yaml文件的内容:
kubectl apply view-last-applied <resource_type> <resource_name>
您的情况将类似于:
kubectl apply view-last-applied deployment <deployment_name>
答案 2 :(得分:-1)
我认为您可以从两个选项中进行选择。
选项1:
您可以grep
所有YAML查找特定的注释或标签。
$ grep "app: nginx-test" *.yaml
或
$ grep -e "prometheus.io/scheme: http" *.yaml
找到合适的文件后,您可以对其进行编辑(vi,nano等)并应用。
$ kubectl apply -f [yaml-name]
选项2:
知道部署名称后,就可以对其进行编辑。
$ kubectl edit deployment [deployment-name]
您将看到带有status:
部分的当前部署YAML,其中描述了部署的当前状态。如果您不喜欢vi,可以改用nano
$ KUBE_EDITOR="nano" kubectl edit [deployment-name]
如果要从当前部署中创建YAML,我建议您使用带有--export
标志的kubectl edit。它将删除不需要的信息(例如先前评论中的status:
)。
$ kubectl get deploy [your-deployment] -oyaml --export >> newDeployment.yaml
希望这会有所帮助。