【发布时间】:2020-04-09 20:23:16
【问题描述】:
大纲:
我们正在尝试使用 nexcess turpentine 插件将 varnish-4.1.11 连接到 kubernetes 中的 magento 1,但每次都返回相同的错误:
Error determining Varnish version: Varnish admin socket timeout
Failed to load configurator
应用堆栈:
我们有一个运行 magento 1 堆栈的 kubernetes 集群,其中包含以下容器:
- php-fpm:7.2/nginx:latest
- 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 中运行通用清漆连接脚本
注意事项:
- 从 nginx/fpm pod ping 清漆 pod 工作正常
- 从 nginx/fpm pod 卷曲到清漆端口也可以正常工作
- 上面提到的通用连接脚本在从 varnish 容器内部运行时可以成功运行,这很可能表明存在网络问题。
- 在 docker-compose 中本地运行堆栈工作正常,这也表明存在网络问题。
我很欣赏这是一个非常小众的问题,但希望其他人对可能出现的问题有所了解。
【问题讨论】:
标签: php nginx magento kubernetes varnish