日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Ingress-nginx自定義配置文件

 

k8s集群默認(rèn)安裝的ingress-Nginx直接投入測(cè)試或生產(chǎn)使用,其不合適的配置參數(shù)可能會(huì)導(dǎo)致一些訪問(wèn)報(bào)錯(cuò)。
例如:

  • “413 Request Entity Too Large”
  • “503 Service Unavailable”

此時(shí)我們就需要調(diào)整ingress-nginx的配置參數(shù)來(lái)解決問(wèn)題,有以下三種方式:

  • ConfigMap
    使用ConfigMap設(shè)置Nginx的全局配置文件
  • Annotations
    使用Annotations設(shè)置特定Server的配置文件,如:某個(gè)hello.test.cn
  • Custom Template
    使用模板設(shè)置更多的特定Server的配置文件

在此只介紹下比較常見的ConfigMap、Annotations兩種方式。

需求

在此主要以解決以下兩個(gè)問(wèn)題為例:

  1. “413 Request Entity Too Large”
    此問(wèn)題為上傳文件過(guò)大導(dǎo)致,nginx默認(rèn)限制為1M,可以通過(guò)調(diào)整client_max_body_size參數(shù)解決。
  2. upstream超時(shí)
    upstream超市可能會(huì)導(dǎo)致502、503、504等問(wèn)題,nginx默認(rèn)超時(shí)時(shí)間為60s,可以通過(guò)設(shè)置proxy_read_timeout、proxy_connect_timeout、proxy_send_timeout參數(shù)解決。

ConfigMap

1. 默認(rèn)配置

默認(rèn)ingress-nginx的ConfigMap有以下三種并且數(shù)據(jù)都為空

# 默認(rèn)的三種ConfigMap
# kubectl get cm -n ingress-nginx
NAME                              DATA   AGEingress-controller-leader-nginx   0      10d
nginx-configuration               0      10d
tcp-services                      0      10d
udp-services                      0      10d
# ConfigMap定義# vim mandatory# 截取ConfigMap部分---kind: ConfigMapapiVersion: v1metadata:  name: nginx-configuration  namespace: ingress-nginx
  labels:    App.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx---kind: ConfigMapapiVersion: v1metadata:  name: tcp-services  namespace: ingress-nginx
  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx---kind: ConfigMapapiVersion: v1metadata:  name: udp-services  namespace: ingress-nginx
  labels:    app.kubernetes.io/name: ingress-nginx    app.kubernetes.io/part-of: ingress-nginx

其中:

  • 三種ConfigMap都沒有Data設(shè)置,因此數(shù)據(jù)定義都為空;
  • nginx-ingress-controller分別引用nginx-configuration、 tcp-services、 udp-services三個(gè)ConfigMap。
  1. 具體設(shè)置
    調(diào)整參數(shù)我們需要選擇對(duì)應(yīng)的ConfigMap,經(jīng)過(guò)測(cè)試需要選擇nginx-configuration。
# vim global_configmap.yaml
# ingress-nginx 全局配置文件apiVersion: v1kind: ConfigMapmetadata:  name: nginx-configuration  namespace: ingress-nginx  labels:    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
data:  proxy-connect-timeout: "300"
  proxy-read-timeout: "300"
  proxy-send-timeout: "300"
  proxy-body-size: "200m"
# 應(yīng)用后,nginx會(huì)自動(dòng)reload生效kubectl apply -f global_configmap.yaml# 檢查配置文件kubectl exec -it nginx-ingress-controller-gmzq6 -n ingress-nginx -- cat /etc/nginx/nginx.conf

注意:

  • 使用nginx-configuration,而不是tcp-services和udp-services。
  • 經(jīng)測(cè)試,按照官網(wǎng)"https://kubernetes.github.io/ingress-nginx/examples/customization/custom-configuration/"設(shè)置,ConfigMap使用ingress-nginx-controller是不生效的,因?yàn)闆]有ingress-nginx-controller這個(gè)ConfigMap,需要使用nginx-configuration。
$ cat configmap.yaml
apiVersion: v1data:  proxy-connect-timeout: "10"
  proxy-read-timeout: "120"
  proxy-send-timeout: "120"
kind: ConfigMapmetadata:  name: ingress-nginx-controller
  • 在此我將全局配置文件單獨(dú)列出,也可以將其合并到mandatory.yaml中。

 

Annotations

ConfigMap適用于全局配置,但是有時(shí)我們只需要針對(duì)某個(gè)特定的站點(diǎn)設(shè)置,此時(shí)就需要用到Annotations。
例如:要對(duì)hello.test.cn 這個(gè)站設(shè)置client_max_body_size解決上傳文件太大問(wèn)題。

# vim hellworld.yaml
# 單獨(dú)設(shè)置IngressapiVersion: extensions/v1beta1kind: Ingressmetadata:  name: helloworld  namespace: test  annotations:    nginx.ingress.kubernetes.io/proxy-body-size: 300m
spec:  rules:    - host: hello.test.cn      http:        paths:          - path: /
            backend:              serviceName: helloworld              servicePort: 8080
# 應(yīng)用# kubectl apply -f helloworld.yaml# 驗(yàn)證# kubectl exec -it nginx-ingress-controller-gmzq6 -n ingress-nginx -- cat /etc/ng
client_max_body_size                    300m;

此時(shí)client_max_body_size只針對(duì)hello.test.cn 這個(gè)server生效,其他server仍然使用的是全局配置文件。

 

總結(jié)

在ingress-nginx的配置文件/etc/nginx/nginx.conf中指定了Global filters、TCP services、UDP services區(qū)域,應(yīng)該分別對(duì)應(yīng)三個(gè)ConfigMap。
熟悉了ingress-nginx的自定義配置后,我們就可以靈活修改配置參數(shù)了。

分享到:
標(biāo)簽:Ingress nginx
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定