我试图将我的应用程序部署到运行在谷歌容器中的Kubernetes 引擎。

该应用程序可以在https://github.com/Industrial/docker-znc上找到。

Dockerfile内置于谷歌容器注册表上的映像中。

我已经通过+按钮在Kubernetes中部署了应用程序。我没有YAML 对于这个。

我已经在Kubernetes中插入了一个Secret,用于应用程序所需的PEM文件。

如何获得由创建的部署、服务和Pod的YAML Kubernetes通过填写表格? 我如何把秘密进入我的豆荚使用?


当前回答

要获得所有yaml文件部署的备份(不是特定的部署):

kubectl get deployments -n <namespace> -o yaml > deployments.yaml

对于获得所有yaml文件服务备份(不是特定部署):

kubectl get services -n <namespace> -o yaml > services.yaml

享受它。

其他回答

从kubernetes下载yaml的语法

kubectl get [resource type] -n [namespace] [resource Name] -o yaml > [New file name]

从运行的pod创建yaml文件:

kubectl得到po -n nginx nginxdeploymentt55cfc7dcf -5s7j8 -o yaml > podDetail.yaml

从运行的pod中创建副本yaml文件:

kubectl get rs -n nginx -o yaml > latestReplicaSet.yaml

从运行的pod创建部署yaml文件:

kubectl get deploy -n nginx -o yaml > latestdeployment .yaml

也可以使用view-last-applied命令。

kubectl apply view-last-applied services --all > services.yaml

它将返回用于创建服务的所有清单。此外,您还可以通过services/resource-name标签指定某个k8资源。

现在——export已弃用,要以'原始'格式从资源中获得输出(刚刚清理了,没有任何关于当前对象状态的信息(在这种情况下不必要的元数据)),您可以使用yq v4.x执行以下操作:

kubectl get <resource> -n <namespace> <resource-name> -o yaml \
  | yq eval 'del(.metadata.resourceVersion, .metadata.uid, .metadata.annotations, .metadata.creationTimestamp, .metadata.selfLink, .metadata.managedFields)' -

如果您有读访问权限,我们可以通过命令行从Kubernetes集群中获取与任何类型相关的内容。

kubectl get <kind> <kindname> -n <namespace> -o <yaml or json>

例如,如果希望从名称空间导出部署,请执行以下命令-

kubectl get deploy mydeploy -n mynamespace -o yaml > mydeploy.yaml

kubectl get deploy mydeploy -n mynamespace -o json > mydeploy.json

要获取kubernetes上当前运行部署的YAML,可以运行这个命令:

kubectl get deployment <deployment_name> -o yaml

要生成YAML用于部署,可以运行命令式命令。

kubectl create deployment <deployment_name>--image=<image_name> -o yaml

要生成并导出部署,可以运行imperative命令。

 kubectl create deployment <deployment_name>--image=<image_name> --dry-run=client -o yaml > example.yaml