kubernetes 通过k8s配置Map进行动态特使配置

fumotvh3  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(2)|浏览(216)

我尝试在kubernetes集群中配置envoy,方法如下:https://www.envoyproxy.io/docs/envoy/latest/start/quick-start/configuration-dynamic-filesystem
我的静态特使配置:

node:
      cluster: test-cluster
      id: test-id

    dynamic_resources:
      cds_config:
        path: /var/lib/envoy/cds.yaml
      lds_config:
        path: /var/lib/envoy/lds.yaml

    admin:
      access_log_path: "/dev/null"
      address:
        socket_address:
          address: 0.0.0.0
          port_value: 19000

configmap中的动态配置会挂载到,并包含档案。
我使用configmap将配置文件(cds.yamllds.yaml)挂载到envoy pod(/var/lib/envoy/),但不幸的是,当我更改configmap中的配置时,envoy配置没有更改。挂载的配置文件按预期更新。
我可以从日志中看到envoy监视配置文件:

[2021-03-01 17:50:21.063][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:47] added watch for directory: '/var/lib/envoy' file: 'cds.yaml' fd: 1
[2021-03-01 17:50:21.063][1][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:140] maybe finish initialize state: 1
[2021-03-01 17:50:21.063][1][debug][upstream] [source/common/upstream/cluster_manager_impl.cc:149] maybe finish initialize primary init clusters empty: true
[2021-03-01 17:50:21.063][1][info][config] [source/server/configuration_impl.cc:95] loading 0 listener(s)
[2021-03-01 17:50:21.063][1][info][config] [source/server/configuration_impl.cc:107] loading stats configuration
[2021-03-01 17:50:21.063][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:47] added watch for directory: '/var/lib/envoy' file: 'lds.yaml' fd: 1

并且一旦我更新了配置Map,我还可以获得一些更改的日志:

[2021-03-01 17:51:50.881][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:72] notification: fd: 1 mask: 80 file: ..data
[2021-03-01 17:51:50.881][1][debug][file] [source/common/filesystem/inotify/watcher_impl.cc:72] notification: fd: 1 mask: 80 file: ..data

但Envoy不重新加载配置。
Kubernetes似乎通过更改目录来更新配置文件,Envoy无法识别配置文件已更改。
有没有简单的方法来解决这个问题?我不想在我的测试中运行xDS服务器,但是热配置重新加载对我的测试来说是很好的😇
谢谢你!

vfh0ocws

vfh0ocws1#

我认为你的问题的答案是Envoy用来重新加载它的xDS配置的文件系统事件不是由configmap卷触发的。更多的解释请参见交叉实用程序的自述文件。

dzhpxtsq

dzhpxtsq2#

现在可以通过在path_config_source中使用watched_directory来解决此问题。

相关问题