【问题标题】:No YAML Files in K8s DeploymentK8s 部署中没有 YAML 文件
【发布时间】:2020-07-30 21:51:09
【问题描述】:
TLDR:我对 K8s 的了解是,您需要大量的 yaml 文件,但是,我刚刚将一个应用程序部署到了一个包含 0 个 yaml 文件的 K8s 集群,并且成功了。这是为什么?当应用没有任何 yaml 文件设置时,谷歌云或 K8s 是否有默认值?
更长:
- 我有一个 dockerized spring 应用程序,我将它部署到我通过 UI 创建的谷歌云集群。
- 那里有 0 个 yaml 文件,所以我预计 kubectl deploy 会失败,但是,它成功了,我的无状态应用程序在那里运行。
- 这是如何工作的?
【问题讨论】:
标签:
kubernetes
google-kubernetes-engine
【解决方案1】:
好吧,gcp 在后台为您创建。我假设您将 docker 映像或 CI 推送到集群,然后从那里您只需单击几下,对吗?您可以在 openshift 环境中执行相同的操作。但在后台生成 yaml 文件。如果您在 UI 上编辑 pod,您将看到该 yaml 文件。
如上所述,@Volodymyr Bilyachat 说您可以通过象征性方式或使用声明性方式(yaml)创建部署。我建议始终使用声明方式。
你可以看到你从 UI 创建的部署 yaml 文件
kubectl get deployment <deployment_name> -o yaml
kubectl get deployment <deployment_name> -o yaml > name.yaml #This will output your yaml file into name.yaml file
【解决方案2】:
您可以使用简单的命令运行您的容器/pod。
kubectl run podname --image=name
正如你所说的 0 个 yaml 文件。但是这些文件的主要思想是将它们推送到源代码管理并使用 CI/CD 通过不同的环境运行测试它们。
yaml 文件的其他好处是您可以共享配置,其他人无需编写任何内容即可创建基础架构。以下是如何使用一个命令运行 elasticsearch 的示例
kubectl apply -f https://download.elastic.co/downloads/eck/1.2.0/all-in-one.yaml