簡體   English   中英

使用Helm安裝時如何配置nginx?

[英]How to configure nginx when using Helm to install?

根據這篇文章,在 Kubernetes 集群中使用 https 和 Azure AD 身份驗證在 Nginx 后面運行 .NET Core 2.x 應用程序時,需要設置一些 nginx 屬性:

通過 IdentityServer4 認證后,NGINX 背后的 .Net Core 返回 502 Bad Gateway

答案概述了如何為常規 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 時如何設置上述屬性?

我發現最簡單的解決方案是在 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: /
...

可以使用 ConfigMap 自定義 nginx 配置。
這是一個例子
添加 ConfigMap 后,如果 nginx 未更新,請使用 Helm 更新您的 nginx 圖表:
helm upgrade [RELEASE] [CHART]
heml upgrade my-release stable/nginx-ingress
如果您不知道 [RELEASE],請使用以下命令:
helm list

完全同意@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.檢查將添加到新配置映射中的內容

helm   template . | less

4.安裝圖

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

請記住:

  1. 您可以使用注釋更改參數而不是 ConfigMap。

  2. 不幸的是,並非所有參數都可以通過上述方法在 nginx-ingress 中更改。

  3. 有關更多信息,請閱讀nginx-ingress 自定義頁面,您可以在其中找到可以更改的所有值。 例如,在您的情況下,我無法更新proxy_busy_buffers_sizelarge_client_header_buffers參數。

希望這對你有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM