使用Helm安装时如何配置nginx?

时间:2019-01-11 14:04:26

标签: .net nginx asp.net-core kubernetes kubernetes-helm

根据本文,在Kubernetes群集中的Nginx后面使用https和Azure AD身份验证运行.NET Core 2.x应用程序时,需要设置一些nginx属性:

.Net Core behind NGINX returns 502 Bad Gateway after authentication by IdentityServer4

答案概述了常规Nginx安装的方法,但是我想在使用Helm的Kubernetes集群中安装Nginx时这样做。

这些是需要设置的Nginx属性:

nginx.conf:
    http{
    ...
    proxy_buffer_size   128k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;
    large_client_header_buffers 4 16k;
    ...
    }


default.conf:
location /{
    ...
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    ...
}

我用于在Kubernetes集群中安装Nginx的命令是:

helm install stable/nginx-ingress --namespace kube-system

在Kubernetes集群中使用Helm安装Nginx时,如何设置上述属性?

3 个答案:

答案 0 :(得分:0)

可以使用ConfigMap自定义nginx配置。
This is an example
如果未更新nginx,则在添加ConfigMap之后,请使用Helm更新您的nginx图表:
helm upgrade [RELEASE] [CHART]
heml upgrade my-release stable/nginx-ingress
如果您不知道[RELEASE],请使用以下命令:
helm list

答案 1 :(得分:0)

完全同意@Mozafar Gholami的观点,您可以在部署nginx时使用ConfigMap更改参数或更新当前配置。 要在安装之前更新参数,建议您下一步:

1。将图表提取到本地计算机并解压缩:

helm fetch stable/nginx-ingress

tar -xzf nginx-ingress-1.1.4.tgz
  1. 在values.yml中编辑controller.config部分

适合您的示例:

controller:
  name: controller
  image:
    repository: quay.io/kubernetes-ingress-controller/nginx-ingress-controller
    tag: "0.21.0"
    pullPolicy: IfNotPresent
    # www-data -> uid 33
    runAsUser: 33

  config:
    proxy-buffer-size: "128k"
    proxy-buffers: "4 256k"

3。检查将要添加到新的configmap中的

helm   template . | less

4。安装图表

helm install --name nginx-ingress --namespace kube-system ./nginx-ingress

请记住:

  1. 您可以使用注释来代替ConfigMap。

  2. 不幸的是,上述方法无法在nginx-ingress中更改所有参数。

  3. 有关更多信息,请阅读nginx-ingress customization页面,您可以在其中找到可以更改的所有值。例如,在您的情况下,我无法更新proxy_busy_buffers_sizelarge_client_header_buffers参数。

希望这对您有所帮助。

答案 2 :(得分:0)

我发现最简单的解决方案是在Nginx入口上使用注释,如下所示:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-buffer-size: "16k"
    nginx.ingress.kubernetes.io/rewrite-target: /
...