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

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

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

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

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

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


当前回答

要获取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

其他回答

如上所述,“——export”是获取与kubeernetes对象对应的清单的一个选项 但是"——export"被认为是有bug的,有人建议弃用它 目前更好的选择是执行"-o yaml"或"-o json"并删除不必要的字段 主要的区别是“——export”被期望删除集群特定的设置(例如k8s服务的集群服务IP)。但在这方面,它被发现是不一致的

如果您有读访问权限,我们可以通过命令行从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

所有的服务

kubectl get service --all-namespaces -o yaml  > all-service.yaml

所有部署

kubectl get deploy --all-namespaces -o yaml  > all-deployment.yaml

可以通过该命令获取资源的yaml文件 kubectl -n <命名空间> get <资源类型> <资源名称> -o yaml . > . kubectl -n <命名空间> get <资源类型> <资源名称> 为了把秘密带到你的舱里,

使用这样的方法

env
- valueFrom
    secretKeyRef:
      name: secret_name
      key: key_name

or

envFrom
- secretRef:
    name: secret_name

 

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

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

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

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