nginx-ingress-controller部署配置詳解
引言
- 開源
Nginx Ingress Controller
(k8s 官網(wǎng)推薦)、Nginx Incorporaton (nginx inc,nginx官網(wǎng)) 和 Nginx Incorporaton Plus - 當(dāng)多個ingress對象資源配置同一個主機時,就會發(fā)生主機沖突。
Ingress Controller
支持兩種處理主機沖突的選項:
- Choosing the Winner
If multiple resources contend for the same host, the Ingress Controller will pick the winner based on the creationTimestamp of the resources: the oldest resource will win. In case there are more than one oldest resources (their creationTimestamp is the same), the Ingress Controller will choose the resource with the lexicographically smallest uid.
- Merging Configuration for the Same Host
It is possible to merge configuration for multiple Ingress resources for the same host. One common use case for this approach is distributing resources across multiple namespaces.
- 所以最好一個域名,對應(yīng)一個ingress對象
# describe ingress 報錯 Warning Rejected 17m (x2 over 6d23h) nginx-ingress-controller All hosts are taken by other resources Warning Rejected 17m (x2 over 3d17h) nginx-ingress-controller All hosts are taken by other resources
一. 部署
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.2.1/deploy/static/provider/cloud/deploy.yaml # 選擇版本 https://github.com/kubernetes/ingress-nginx/blob/controller-v1.4.0/deploy/static/provider/cloud/deploy.yaml # 修改yaml中的image,改為自己的 # 可用國內(nèi)源: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.2.1 registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.8.1 registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v20230407
二. 配置
1. 跨域
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: front-web namespace: web annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS" nginx.ingress.kubernetes.io/cors-allow-headers: "Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control" nginx.ingress.kubernetes.io/cors-expose-headers: "*, X-CustomResponseHeader" nginx.ingress.kubernetes.io/cors-max-age: 600
2. 白名單
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-myapp namespace: default annotations: kubernetes.io/ingress.class: "nginx" # 白名單 nginx.ingress.kubernetes.io/whitelist-source-range: 120.176.65.13,120.79.18.35
# 設(shè)置從代理服務(wù)器讀取響應(yīng)的超時時間(以秒為單位,默認(rèn)值60) nginx.ingress.kubernetes.io/proxy-read-timeout: "300" # 強制重定向到 HTTPS(即使 Ingress 未啟用 TLS) nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
3. 強制https
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress annotations: nginx.ingress.kubernetes.io/rewrite-target: / nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/preserve-trailing-slash: "true" spec: rules: - http: paths: - path: /testpath backend: serviceName: test servicePort: 80
4. 跳轉(zhuǎn)
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress namespace: uf annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1 spec: ingressClassName: nginx-ingress rules: - host: dev-gf.uf.net.cn http: paths: - backend: service: name: uf-epi-html port: number: 80 path: /epi/(.*) pathType: ImplementationSpecific
以上就是nginx-ingress-controller部署配置詳解的詳細(xì)內(nèi)容,更多關(guān)于nginx ingress controller部署配置的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Nginx中IF語句實現(xiàn)數(shù)學(xué)比較功能
這篇文章主要介紹了Nginx中IF語句實現(xiàn)數(shù)學(xué)比較功能,即在Nginx中用if判斷數(shù)字大小,類似編程語言中的邏輯比較,需要的朋友可以參考下2015-02-02在Nginx服務(wù)器上安裝配置博客程序Typecho的教程
這篇文章主要介紹了在Nginx服務(wù)器上安裝配置博客程序Typecho的教程,Typecho是一個開源的PHP博客程序,比WordPress更加輕量,需要的朋友可以參考下2015-12-12詳解nginx 的 default_server 定義及匹配規(guī)則
這篇文章主要介紹了詳解nginx 的 default_server 定義及匹配規(guī)則,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08