国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文透析Nginx-ingress 控制器如何實現的

Linux愛好者 ? 來源:掘金 ? 作者: dakesolo ? 2021-09-01 14:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

主機nginx

一般nginx做主機反向代理(網關)有以下配置

upstream order{

server 192.168.1.10:5001;

server 192.168.1.11:5001;

}

server {

listen 80;

server_name order.example.com;

access_log /var/log/nginx/order.example.com-access.log;

error_log /var/log/nginx/order.example.com-error.log;

location / {

proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_pass http://order;

}

}

復制代碼

其中192.168.1.10:5001,192.168.1.10:5001我們把他們稱為Endpoint,就是所謂的具體的服務,比如order訂單服務。

pod nginx-ingress

nginx-ingress也是一種代理,是一個pod,外部的數據統一經過(必經)這個pod,然后通過該pod內部的nginx方向代理到各各服務(Endpoint)。nginx-ingress是ingress控制器插件的一種,這些插件有很多,比如istio-ingressgateway。

1、Pod

nginx-ingress pod有兩個功能,controller和nginx:

controller:和kubernetes api通訊實時更新nginx配置(就是ingress yaml資源了)

nginx:正常的反向代理

復制代碼

與主機nginx的區別是,該pod nginx-ingress是運行在pod里。主機在定義反向代理配置文件時,需要監聽一個對外開放的端口,比如上邊的80端口。那么pod中的nginx端口是如何配置的呢?我們在github上找到了nginx-ingress的deployment.yaml

https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

復制代碼

其中一段

apiVersion: apps/v1

kind: Deployment

metadata:

name: nginx-ingress-controller

namespace: ingress-nginx

labels:

app.kubernetes.io/name: ingress-nginx

app.kubernetes.io/part-of: ingress-nginx

spec:

replicas: 1

selector:

matchLabels:

app.kubernetes.io/name: ingress-nginx

app.kubernetes.io/part-of: ingress-nginx

template:

metadata:

labels:

app.kubernetes.io/name: ingress-nginx

app.kubernetes.io/part-of: ingress-nginx

annotations:

prometheus.io/port: “10254”

prometheus.io/scrape: “true”

spec:

# wait up to five minutes for the drain of connections

terminationGracePeriodSeconds: 300

serviceAccountName: nginx-ingress-serviceaccount

containers

- name: nginx-ingress-controller

image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.26.1

。。。

。。。

。。。

ports:

- name: http

containerPort: 80

- name: https

containerPort: 443

復制代碼

我們看到

- name: http

containerPort: 80

- name: https

containerPort: 443

復制代碼

默認對外監聽了兩個端口80和443,也就是說,有這兩個端口對外就可以web服務了。

2、ingress 資源

ingress 資源通過yaml進行管理的,比如以下:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: order

spec:

rules:

- host: order.example.com

http:

paths: /

backend:

serviceName: order

servicePort: 80

復制代碼

以上我們定義了一個單一規則的ingress,該pod(nginx-ingress)接收到外部所有的請求,將被發送到內部order服務的80端口上。接下來我們看pod(nginx-ingress)如何把ingress資源轉化為該pod中的nginx反向代理配置文件

upstream order{

server order:80;

}

server {

listen 80;

server_name order.example.com;

。。。

。。。

location / {

proxy_pass_header Server;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Scheme $scheme;

proxy_pass http://order; # 對應ingress 資源 name: order

}

}

復制代碼

當然ingress如果包含https,那么會轉化nginx對應的443端口及證書的配置文件內容,這里就不寫了。

那么,單一個規則的ingress資源代理多個服務(比如order服務,product服務)或者多個ingress資源文件如何轉化為nginx配置?猜測,其實就是轉化成了多個

upstream order{

server order:80;

}

復制代碼

當然,被轉化的nginx配置文件要比這些復雜的多,據說還是用lua腳本寫的,靈活如openresty。

3、nginx-ingress對外提供服務

一般來講,pod直接對外提供服務就只有兩種方式:

create一個service,該service暴漏nodePort

forward 映射

我們一般采用第一種。nginx-ingress也是一個pod,所以,為了能使外部通過該pod代理訪問,還需要nginx-ingress對外提供一個nodePort的service。這個service這里也不再寫了。

4、nginx-ingress工作流程

我們可以看到,因為nginx-ingress這個pod做了所有service的代理,在高并發情況下將承受巨大壓力,我們可以增加多個pod實例。

來源:掘金 - dakesolo

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 主機
    +關注

    關注

    0

    文章

    1053

    瀏覽量

    36741
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73956
  • nginx
    +關注

    關注

    0

    文章

    186

    瀏覽量

    13110

原文標題:Nginx-ingress 控制器到底怎樣實現的,這篇文章教你看明白了

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Ingress Nginx性能調優配置方案

    Ingress Nginx 是 Kubernetes 集群中最主流的流量入口組件,承擔著集群內所有 HTTP/HTTPS 流量的路由和轉發。默認配置能應付開發測試環境,但到生產環境扛高并發,各種
    的頭像 發表于 02-24 11:50 ?122次閱讀

    APD腹膜透析機中需要哪些傳感?(

    水分。腹膜透析機中的壓力測量屬于非直接接觸式測量。壓力傳感并不直接接觸患者的腹腔或透析液,而是通過監測與透析液管路連通的空氣柱的壓力來間接反映腹腔內壓力。壓力傳
    的頭像 發表于 10-11 12:01 ?455次閱讀
    APD腹膜<b class='flag-5'>透析</b>機中需要哪些傳感<b class='flag-5'>器</b>?(<b class='flag-5'>一</b>)

    Nginx和Apache的差異

    Nginx個 輕量級/高性能 的反向代理Web服務,用于 HTTP、HTTPS、SMTP、POP3 和IMAP 協議。
    的頭像 發表于 07-09 09:45 ?679次閱讀

    詳解Nginx負載均衡

    Nginx作為負載均衡器,通過將請求分發到多個后端服務,以提高性能、可靠性和擴展性。支持多種負載均衡算法,如輪詢、最小連接數、IP哈希等,可以根據需求選擇適合的算法。
    的頭像 發表于 06-25 14:51 ?1080次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>Nginx</b>負載均衡

    多軸運動控制器JMC-F2-A6中手冊

    電子發燒友網站提供《多軸運動控制器JMC-F2-A6中手冊.pdf》資料免費下載
    發表于 06-23 15:14 ?2次下載

    Nginx配置終極指南

    Nginx 是開源、高性能、高可靠的 Web 和反向代理服務,而且支持熱部署,幾乎可以做到 7 * 24 小時不間斷運行,即使運行幾個月也不需要重新啟動,還能在不間斷服務的情況下對軟件版本進行熱
    的頭像 發表于 06-18 15:56 ?1026次閱讀
    <b class='flag-5'>Nginx</b>配置終極指南

    車載整機控制器 工程機械主機控制器#碩博電子#國產控制器

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年05月26日 09:09:02

    Ingress網關高并發請求的解決方案

    Ingress 網關面臨高并發請求(如 QPS 超過 10萬+)時,可能導致服務崩潰、響應延遲激增或資源耗盡。
    的頭像 發表于 05-14 11:52 ?826次閱讀

    Nginx緩存配置詳解

    Nginx個功能強大的 Web 服務和反向代理服務,它可以用于實現靜態內容的緩存,緩存可以分為客戶端緩存和服務端緩存。
    的頭像 發表于 05-07 14:03 ?1246次閱讀
    <b class='flag-5'>Nginx</b>緩存配置詳解

    工程機械控制器廠家 控制器國產替代 #國產控制器#控制器廠家#控制器品牌

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年04月29日 14:15:05

    讀懂IO控制器:靈活高效的工業信號采集與控制利器

    什么是IO控制器? IO控制器(輸入輸出控制器)是現代工業自動化系統中的關鍵設備,它如同工業現場的"神經末梢",負責采集各種傳感信號(輸入),并根據
    的頭像 發表于 03-31 16:39 ?1280次閱讀

    認識ARM微控制器及瑞薩RA系列MCU

    俗稱單片機,如果有學過微機原理就會很熟悉這個概念了。而ARM微控制器,顧名思義,就是基于ARM的微控制器,或者說搭載了ARM處理內核的微控制器
    的頭像 發表于 03-24 09:17 ?2650次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>認識ARM微<b class='flag-5'>控制器</b>及瑞薩RA系列MCU

    工程機械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型

    控制器
    長沙碩博電子科技股份有限公司
    發布于 :2025年03月14日 10:54:24

    I3C控制器角色轉移如何實現

    I3C 控制器角色轉移如何實現
    發表于 03-14 10:08