Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为kubernetes集群中的单个或一组资源检索yaml中当前配置文件的最安全和最佳方法_Kubernetes_Kubectl_Kubernetes Pod_Amazon Eks - Fatal编程技术网

为kubernetes集群中的单个或一组资源检索yaml中当前配置文件的最安全和最佳方法

为kubernetes集群中的单个或一组资源检索yaml中当前配置文件的最安全和最佳方法,kubernetes,kubectl,kubernetes-pod,amazon-eks,Kubernetes,Kubectl,Kubernetes Pod,Amazon Eks,不久前,我在EKS(Amazon elastic kubernetes service cluster)中应用了一个文件xyz.yml,从本地机器部署了一个statefulset pod。此文件在GitHub中进行了版本控制。但是,此后很少有人使用kubectl将此文件手动应用到kubernetes群集,因此我现在在GitHub中的源文件可能与群集不同步。 有没有一种安全而简单的方法可以使用kubectl直接从集群中检索yaml中的这个文件,这样我就可以从现在开始在GitHub源代码中使用它了。

不久前,我在EKS(Amazon elastic kubernetes service cluster)中应用了一个文件xyz.yml,从本地机器部署了一个statefulset pod。此文件在GitHub中进行了版本控制。但是,此后很少有人使用kubectl将此文件手动应用到kubernetes群集,因此我现在在GitHub中的源文件可能与群集不同步。 有没有一种安全而简单的方法可以使用kubectl直接从集群中检索yaml中的这个文件,这样我就可以从现在开始在GitHub源代码中使用它了。我不想在GitHub源代码中进行更改,然后将其应用于集群,因为文件可能不同步。 如果我能从kubernetes集群直接检索YAML中的文件,这将真正帮助解决问题。我试过干跑或kubectl diff,但似乎没有帮助。 我是kubernetes的新手,因此不想直接在集群上试验命令。 这里的任何帮助都将不胜感激

干杯

Ashley

您可以尝试编辑:

kubectl -n <namespace name> edit [deployment, pod, svc] <name>
kubectl-n编辑[部署、吊舱、svc]
您可以尝试编辑:

kubectl -n <namespace name> edit [deployment, pod, svc] <name>
kubectl-n编辑[部署、吊舱、svc]

您可以通过以下方式获取单个资源的当前YAML:

kubectl get <resource> -o yaml
kubectl get-o yaml
但是您不能一次获得使用此文件创建的所有资源,因为Kubernetes没有跟踪提供资源定义的清单文件


因此,您需要检查哪些资源是由您的文件创建的,并如上所述单独获取它们。或者,如果此文件中的所有资源都有通用标签,那么您可以通过这些标签更轻松地获取它们。

您可以通过以下方式获取单个资源的当前YAML:

kubectl get <resource> -o yaml
kubectl get-o yaml
但是您不能一次获得使用此文件创建的所有资源,因为Kubernetes没有跟踪提供资源定义的清单文件


因此,您需要检查哪些资源是由您的文件创建的,并如上所述单独获取它们。或者,如果此文件中的所有资源都有共同的标签,也许您可以通过这些标签更容易地获得它们。

这是否回答了您的问题?不幸的是,这给出了pod(或任何资源)的摘要描述,但没有给出在部署它时应用的yaml中的确切配置文件。
get-o yaml
应该可以让您非常接近它。这是否回答了您的问题?不幸的是,这给出了pod(或任何资源)的摘要描述,但没有给出部署它时应用的yaml中的确切配置文件。
get-o yaml
应该可以让您非常接近它。假设我的pod是xyz,我应该使用kubectl-n我的名称空间编辑pod xyz?因为我不必编辑那里的任何内容,所以我可以简单地退出,或者会导致任何问题吗?它的工作原理与vi类似。您只需复制内容并退出(不会引入任何更改)。看起来我的文件是一个单独的文件,可能已经在pod、服务、,等等。有没有一种方法可以让我使用源代码中的文件来做一个干运行或一个不做任何更改的虚拟应用,看看我是否应用了它集群中会发生什么?谢谢herbertgoto。假设我的pod是xyz,我应该使用kubectl-n我的名称空间编辑pod xyz?因为我不必编辑那里的任何内容,所以我可以简单地退出,或者会导致任何问题吗?它的工作原理与vi类似。您只需复制内容并退出(不会引入任何更改)。看起来我的文件是一个单独的文件,可能已经在pod、服务、,等等,有没有一种方法可以让我使用源代码中的文件来做一个干运行或一个虚拟应用而不做任何更改,看看我是否应用了它集群中会发生什么?