【问题标题】:kubectl instead of yaml files in production?kubectl 而不是生产中的 yaml 文件?
【发布时间】:2021-07-25 01:52:43
【问题描述】:

我正在尝试找到在生产中使用 kubernetes 的最简单方法。 YAML 模板对我来说似乎是一种开销。例如。我想要的只是公开简单的后端服务。我可以用 kubectl 和 2 个精益命令来做到这一点:

kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080

但是在生产中使用它可以吗?我想使用基础设施即代码方法。

有没有办法避免直接使用 Kubernetes 模板文件并仍然遵循最佳实践?例如。从 docker-compose 文件或类似文件生成 Yaml 文件?

kubectl 在生产环境中的预期用途是什么?只是

kubectl apply -f <folder> 

虽然在&lt;folder&gt; 中维护模板文件是开发人员的工作?有没有自己编写 kubernetes 模板的 kubectl 声明式管理?例如。一些文件包含生成模板所需的最少信息。

真的很想用Kubernetes,请教最简单的方法!

【问题讨论】:

  • 还可以查看flux operator,它可以将集群状态与 git 存储库中的配置相匹配。有了这个,您只需将生产更改提交到存储库。

标签: kubernetes kubectl


【解决方案1】:

我在这里引用原始问题:

kubectl 创建部署 hello-server --image=gcr.io/google-samples/hello-app:1.0 kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080

但是在生产中使用它可以吗?我想使用基础设施即代码方法。

您的第一种方法是列出必须按特定顺序执行的命令。另外,所有这些命令都不是幂等的,所以你不能多次运行这些命令。

也来自原始问题:

有没有办法避免直接使用 Kubernetes 模板文件并仍然遵循最佳实践?例如。从 docker-compose 文件或类似文件生成 Yaml 文件?

kubectl 在生产环境中的预期用途是什么?只是

kubectl apply -f &lt;folder&gt;

第二种方式是声明式的,你只描述你想要的,命令是幂等的,所以可以运行多次没有问题。您想要的状态写在文本文件中,因此任何更改都可以通过版本控制系统进行管理,例如Git 和该过程可以通过 CI/CD 管道中的验证来完成。

对于生产环境,最好使用 git 之类的版本控制系统来处理集群所包含的内容。这样可以轻松恢复或重新创建您的系统。

【讨论】:

  • 谢谢乔纳斯!我已经更新了我的问题,你能看一下吗?
  • 您为什么删除了大部分问题?我的回答是针对你的第一个问题。现在问题大不相同了。
  • 是的,我做到了。你能回答这个吗?很抱歉给您带来不便
  • 我已通过我对问题的更改回复并选择您的答案作为最佳答案。谢谢!我创建了一个单独的问题stackoverflow.com/q/67356177/4685486你能检查一下吗?
猜你喜欢
  • 1970-01-01
  • 2019-06-18
  • 2016-09-30
  • 2018-08-19
  • 2021-12-14
  • 1970-01-01
  • 2021-08-20
  • 2017-01-26
  • 1970-01-01
相关资源
最近更新 更多