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

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

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

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

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

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


当前回答

使用此命令获取您的服务的yaml格式

Kubectl get service servicename -n <namespace> -o yaml . sh

你也可以把它放在某个文件里

Kubectl get service servicename -n <namespace> -o yaml > service.yaml

其他回答

使用此命令获取您的服务的yaml格式

Kubectl get service servicename -n <namespace> -o yaml . sh

你也可以把它放在某个文件里

Kubectl get service servicename -n <namespace> -o yaml > service.yaml

我们可以使用下面的命令获取已部署资源的yaml。

kubectl get <resource name> -o yaml

                OR
kubectl get <resource name> <name of pod> -o yaml

例子:-

  kubectl get deploy Nginx -o yaml

以上命令将为您提供yaml输出。

如果您想将输出存储到任何文件中,可以使用以下命令。

kubectl get pod nginx -o yaml > Nginx-pod.yaml

上面的命令会将输出重定向到Nginx-pod。Yaml在您的当前目录。

获取部署(服务、pod、secret等)的yaml:

kubectl get deploy deploymentname -o yaml

关于秘密的第二个问题,这来自k8s的文档。更多信息请参见https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets。

Create a secret or use an existing one. Multiple pods can reference the same secret. Modify your Pod definition to add a volume under spec.volumes[]. Name the volume anything, and have a spec.volumes[].secret.secretName field equal to the name of the secret object. Add a spec.containers[].volumeMounts[] to each container that needs the secret. Specify spec.containers[].volumeMounts[].readOnly = true and spec.containers[].volumeMounts[].mountPath to an unused directory name where you would like the secrets to appear. Modify your image and/or command line so that the program looks for files in that directory. Each key in the secret data map becomes the filename under mountPath.

我用过这个,它工作得很好。

kubectl -n <namespace> get <resource type> <resource Name> -o yaml 

使用上面的命令,Kubernetes中定义的任何资源都可以以YAML格式导出。