因此,为了添加 max_conns(或入口 configmap 不支持的任何其他参数),需要做的是更改模板。
像这样更改模板 /etc/nginx/template/nginx.tmpl :
upstream {{ $upstream.Name }} {
# Load balance algorithm; empty for round robin, which is the default
{{ if ne $cfg.LoadBalanceAlgorithm "round_robin" }}
{{ $cfg.LoadBalanceAlgorithm }};
{{ end }}
{{ if $upstream.UpstreamHashBy }}
hash {{ $upstream.UpstreamHashBy }} consistent;
{{ end }}
{{ if (gt $cfg.UpstreamKeepaliveConnections 0) }}
keepalive {{ $cfg.UpstreamKeepaliveConnections }};
{{ end }}
{{ range $server := $upstream.Endpoints }}server {{ $server.Address | formatIP }}:{{ $server.Port }} max_fails={{ $server.MaxFails }} fail_timeout={{ $server.FailTimeout }} max_conns=1;
{{ end }}
}
(您可以从 pod nginx-ingress-controller 获取完整文件,只需在 pod 上运行 bash 并对其进行 cat 处理)就可以了。现在使用本地 nginx.tmpl 创建一个 configmap:
kubectl create configmap nginx-template --from-file=nginx.tmpl=/localpath/nginx.tmpl
然后使用此 yaml 将卷安装到部署中:
volumeMounts:
- mountPath: /etc/nginx/template
name: nginx-template-volume
readOnly: true
volumes:
- name: nginx-template-volume
configMap:
name: nginx-template
items:
- key: nginx.tmpl
path: nginx.tmpl
- 我需要手动重新启动我的 NGINX 入口,但我编辑了 ReplicationController,因为我没有部署(我猜是因为我在 minikube 上)