查找哪个yaml文件用于任何kubernetes资源?

时间:2019-08-23 03:59:31

标签: kubernetes yaml kubectl

如何查找哪个yaml文件用于部署任何kubernetes资源。

我检查了“ kubectl describe”,它没有列出相同的名称,反正还有。

用例:

我想更新yaml和重新部署,我猜是从运行资源,更新和重新部署中生成yaml。

有什么建议吗?

3 个答案:

答案 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

希望这会有所帮助。