Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Kubernetes(GKE)上处理Nginx的配置?_Nginx_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

如何在Kubernetes(GKE)上处理Nginx的配置?

如何在Kubernetes(GKE)上处理Nginx的配置?,nginx,kubernetes,google-kubernetes-engine,Nginx,Kubernetes,Google Kubernetes Engine,由于限制(在我的情况下,我需要50多条路由,这在Google容器引擎中不受支持),我正在考虑使用Nginx作为其他后端服务的反向代理。我想做的基本上与入口资源提供的相同,例如路由路径“/x”到服务x和“/y”到服务y。我想为HA运行多个Nginx实例,可能是在一个。我的问题主要涉及配置,我有两个选项: 使用nginx作为基本映像创建自定义Docker映像,然后复制 我们的nginx配置将显示在此图像中。这将使它变得非常有趣 易于在Kubernetes上运行此基于nginx的映像。但是当这个 它需

由于限制(在我的情况下,我需要50多条路由,这在Google容器引擎中不受支持),我正在考虑使用Nginx作为其他后端服务的反向代理。我想做的基本上与入口资源提供的相同,例如路由路径“/x”到服务x和“/y”到服务y。我想为HA运行多个Nginx实例,可能是在一个。我的问题主要涉及配置,我有两个选项:

  • 使用nginx作为基本映像创建自定义Docker映像,然后复制 我们的nginx配置将显示在此图像中。这将使它变得非常有趣 易于在Kubernetes上运行此基于nginx的映像。但是当这个 它需要重建、发布和存储一个新的 每次配置更改时自定义nginx映像。我们已经 为此设置管道,这样就不会有大问题 在操作上
  • 使用普通的nginx docker映像,创建一个GCE持久磁盘(我们在Google容器引擎上运行),该磁盘在所有nginx pod之间以只读模式共享。我看到这种方法的问题是如何以一种简单的方式将配置更新复制到磁盘上
  • 有更好的选择吗?我已经看过配置映射和/或机密(这将解决配置更新问题),但我认为它们不能包含任意数据,例如nginx配置文件

  • 包含文本文件的ConfigMaps应该没有问题。查看
    --from file
    选项:

    我不确定ConfigMap中的二进制文件。我可以添加JPEG,但尝试读取对象会导致错误,因此这可能不是预期的(需要额外的base64编码或类似编码)

    $ kubectl create configmap test --from-file=foo1=/tmp/scudcloud_U0GQ27N0M.jpg
    configmap "test" created
    $ kubectl get configmap test -o yaml
    error: error converting JSON to YAML: %!(EXTRA *errors.errorString=yaml: control characters are not allowed)