【发布时间】:2019-12-28 09:24:47
【问题描述】:
如何找到用于部署任何 kubernetes 资源的 yaml 文件。
我检查了“kubectl describe”,它没有列出相同的,有没有知道的。
用例:
我想更新 yaml 并重新部署,一种选择,我猜是从正在运行的资源生成 yaml,更新并重新部署。
有什么建议吗?
【问题讨论】:
-
试试
kubectl edit。
标签: kubernetes yaml kubectl
如何找到用于部署任何 kubernetes 资源的 yaml 文件。
我检查了“kubectl describe”,它没有列出相同的,有没有知道的。
用例:
我想更新 yaml 并重新部署,一种选择,我猜是从正在运行的资源生成 yaml,更新并重新部署。
有什么建议吗?
【问题讨论】:
kubectl edit。
标签: kubernetes yaml kubectl
为您的 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
希望这会有所帮助。
【讨论】:
您可以使用以下命令获取用于创建部署的 yaml 文件的内容:kubectl apply view-last-applied <resource_type> <resource_name>
在您的情况下,它将类似于:kubectl apply view-last-applied deployment <deployment_name>
【讨论】:
我认为您可以从两个选项中进行选择。
选项 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]
您将看到当前部署 YAML,其中包含描述当前部署状态的 status: 部分。如果你不喜欢 vi,你可以用 nano 代替
$ KUBE_EDITOR="nano" kubectl edit [deployment-name]
如果您想从当前部署创建 YAML,我建议您使用带有 --export 标志的 kubectl edit。它将删除不需要的信息(例如之前评论中的status:)。
$ kubectl get deploy [your-deployment] -oyaml --export >> newDeployment.yaml
希望它会有所帮助。
【讨论】: