在 kubernetes 中使用 magento 1 清漆管理套接字超时
Varnish admin socket timeout with magento 1 in kubernetes
大纲:
我们正在尝试使用 nexcess turpentine 插件将 varnish-4.1.11 连接到 kubernetes 中的 magento 1,但每次都返回相同的错误:
Error determining Varnish version: Varnish admin socket timeout
Failed to load configurator
应用程序堆栈:
我们有一个 kubernetes 集群 运行使用以下容器连接一个 magento 1 堆栈:
- php-fpm:7.2/nginx:最新
- mysql:5.7
- redis:最新
- nfs-provisioner:最新
- nginx:latest(作为 varnish 指向的代理)
- 清漆:4.1.11
kubernetes 信息:
- 网络:cilium:v16.3
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:07:57Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
清漆配置:
NFILES=131072
MEMLOCK=82000
NPROCS="unlimited"
RELOAD_VCL=1
VARNISH_VCL_CONF=/var/www/html/site/var/default.vcl
VARNISH_LISTEN_PORT=6081
VARNISH_ADMIN_LISTEN_PORT=6082
VARNISH_SECRET_FILE=/etc/varnish/secret
VARNISH_MIN_THREADS=5
VARNISH_MAX_THREADS=50
VARNISH_THREAD_TIMEOUT=120
VARNISH_STORAGE="malloc,512M"
VARNISH_TTL=120
DAEMON_OPTS="-F -a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-f ${VARNISH_VCL_CONF} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-t ${VARNISH_TTL} \
-S ${VARNISH_SECRET_FILE} \
-s ${VARNISH_STORAGE}" \
-p esi_syntax=0x2 \
-p cli_buffer=16384
目前我们已经尝试过的:
- 降级到 varnish-3.0.7
- 将 magento 直接指向 varnish 的 IP
- 运行 PHP
中的通用 varnish 连接脚本
备注:
- 从 nginx/fpm pod ping 清漆 pod 工作正常
- 从 nginx/fpm pod 卷曲到清漆端口也可以正常工作
- 当 运行 从清漆容器本身内部时,上面提到的通用连接脚本成功运行,这很可能表明存在网络问题。
- 运行 docker-compose 中的本地堆栈工作正常,这也表明存在网络问题。
我明白这是一个非常小众的问题,但希望其他人对可能出现的问题有一些了解。
如果其他人遇到此问题或类似问题,那是因为我们现有的 linkerd 服务网格无法正确传递流量。
虽然不是理想的解决方案,但为相关 pods 禁用 linkerd 解决了问题。
大纲:
我们正在尝试使用 nexcess turpentine 插件将 varnish-4.1.11 连接到 kubernetes 中的 magento 1,但每次都返回相同的错误:
Error determining Varnish version: Varnish admin socket timeout
Failed to load configurator
应用程序堆栈:
我们有一个 kubernetes 集群 运行使用以下容器连接一个 magento 1 堆栈:
- php-fpm:7.2/nginx:最新
- mysql:5.7
- redis:最新
- nfs-provisioner:最新
- nginx:latest(作为 varnish 指向的代理)
- 清漆:4.1.11
kubernetes 信息:
- 网络:cilium:v16.3
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.5", GitCommit:"20c265fef0741dd71a66480e35bd69f18351daea", GitTreeState:"clean", BuildDate:"2019-10-15T19:07:57Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
清漆配置:
NFILES=131072
MEMLOCK=82000
NPROCS="unlimited"
RELOAD_VCL=1
VARNISH_VCL_CONF=/var/www/html/site/var/default.vcl
VARNISH_LISTEN_PORT=6081
VARNISH_ADMIN_LISTEN_PORT=6082
VARNISH_SECRET_FILE=/etc/varnish/secret
VARNISH_MIN_THREADS=5
VARNISH_MAX_THREADS=50
VARNISH_THREAD_TIMEOUT=120
VARNISH_STORAGE="malloc,512M"
VARNISH_TTL=120
DAEMON_OPTS="-F -a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-f ${VARNISH_VCL_CONF} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-t ${VARNISH_TTL} \
-S ${VARNISH_SECRET_FILE} \
-s ${VARNISH_STORAGE}" \
-p esi_syntax=0x2 \
-p cli_buffer=16384
目前我们已经尝试过的:
- 降级到 varnish-3.0.7
- 将 magento 直接指向 varnish 的 IP
- 运行 PHP 中的通用 varnish 连接脚本
备注:
- 从 nginx/fpm pod ping 清漆 pod 工作正常
- 从 nginx/fpm pod 卷曲到清漆端口也可以正常工作
- 当 运行 从清漆容器本身内部时,上面提到的通用连接脚本成功运行,这很可能表明存在网络问题。
- 运行 docker-compose 中的本地堆栈工作正常,这也表明存在网络问题。
我明白这是一个非常小众的问题,但希望其他人对可能出现的问题有一些了解。
如果其他人遇到此问题或类似问题,那是因为我们现有的 linkerd 服务网格无法正确传递流量。
虽然不是理想的解决方案,但为相关 pods 禁用 linkerd 解决了问题。