哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文透析Nginx-ingress 控制器如何實(shí)現(xiàn)的

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

掃碼添加小助手

加入工程師交流群

主機(jī)nginx

一般nginx做主機(jī)反向代理(網(wǎng)關(guān))有以下配置

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;

}

}

復(fù)制代碼

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

pod nginx-ingress

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

1、Pod

nginx-ingress pod有兩個(gè)功能,controller和nginx:

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

nginx:正常的反向代理

復(fù)制代碼

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

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

復(fù)制代碼

其中一段

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

復(fù)制代碼

我們看到

- name: http

containerPort: 80

- name: https

containerPort: 443

復(fù)制代碼

默認(rèn)對外監(jiān)聽了兩個(gè)端口80和443,也就是說,有這兩個(gè)端口對外就可以web服務(wù)了。

2、ingress 資源

ingress 資源通過yaml進(jìn)行管理的,比如以下:

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

name: order

spec:

rules:

- host: order.example.com

http:

paths: /

backend:

serviceName: order

servicePort: 80

復(fù)制代碼

以上我們定義了一個(gè)單一規(guī)則的ingress,該pod(nginx-ingress)接收到外部所有的請求,將被發(fā)送到內(nèi)部order服務(wù)的80端口上。接下來我們看pod(nginx-ingress)如何把ingress資源轉(zhuǎn)化為該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; # 對應(yīng)ingress 資源 name: order

}

}

復(fù)制代碼

當(dāng)然ingress如果包含https,那么會轉(zhuǎn)化nginx對應(yīng)的443端口及證書的配置文件內(nèi)容,這里就不寫了。

那么,單一個(gè)規(guī)則的ingress資源代理多個(gè)服務(wù)(比如order服務(wù),product服務(wù))或者多個(gè)ingress資源文件如何轉(zhuǎn)化為nginx配置?猜測,其實(shí)就是轉(zhuǎn)化成了多個(gè)

upstream order{

server order:80;

}

復(fù)制代碼

當(dāng)然,被轉(zhuǎn)化的nginx配置文件要比這些復(fù)雜的多,據(jù)說還是用lua腳本寫的,靈活如openresty。

3、nginx-ingress對外提供服務(wù)

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

create一個(gè)service,該service暴漏nodePort

forward 映射

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

4、nginx-ingress工作流程

我們可以看到,因?yàn)閚ginx-ingress這個(gè)pod做了所有service的代理,在高并發(fā)情況下將承受巨大壓力,我們可以增加多個(gè)pod實(shí)例。

來源:掘金 - dakesolo

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 主機(jī)
    +關(guān)注

    關(guān)注

    0

    文章

    1062

    瀏覽量

    36849
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4976

    瀏覽量

    74379
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    194

    瀏覽量

    13210

原文標(biāo)題:Nginx-ingress 控制器到底怎樣實(shí)現(xiàn)的,這篇文章教你看明白了

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Nginx的限流機(jī)制深度解析

    很多運(yùn)維工程師對 Nginx 的認(rèn)知停留在"反向代理"和"負(fù)載均衡",但實(shí)際上 Nginx 在安全防護(hù)方面也相當(dāng)強(qiáng)大——限流可以防止 CC 攻擊和 API 濫用,黑白名單可以精準(zhǔn)控制訪問來源,基礎(chǔ)安全配置可以防護(hù)常見的 Web
    的頭像 發(fā)表于 04-10 16:40 ?669次閱讀

    Kubernetes Ingress Controller對比解析

    Kubernetes集群對外提供服務(wù)時(shí),Ingress是標(biāo)準(zhǔn)的服務(wù)暴露方式。Ingress資源定義了HTTP/HTTPS路由規(guī)則,而Ingress Controller則是這些規(guī)則的實(shí)現(xiàn)
    的頭像 發(fā)表于 04-09 10:09 ?225次閱讀

    Nginx中Master與Worker進(jìn)程的工作機(jī)制

    Nginx是現(xiàn)代互聯(lián)網(wǎng)架構(gòu)中最常用的Web服務(wù)和反向代理軟件。很多運(yùn)維工程師使用Nginx多年,卻對其核心架構(gòu)知半解,配置優(yōu)化時(shí)只會機(jī)械地調(diào)整幾個(gè)參數(shù)。本文從
    的頭像 發(fā)表于 04-08 14:21 ?113次閱讀

    Ingress Nginx性能調(diào)優(yōu)配置方案

    Ingress Nginx 是 Kubernetes 集群中最主流的流量入口組件,承擔(dān)著集群內(nèi)所有 HTTP/HTTPS 流量的路由和轉(zhuǎn)發(fā)。默認(rèn)配置能應(yīng)付開發(fā)測試環(huán)境,但到生產(chǎn)環(huán)境扛高并發(fā),各種
    的頭像 發(fā)表于 02-24 11:50 ?297次閱讀

    APD腹膜透析機(jī)中需要哪些傳感?(二)

    APD腹膜透析機(jī)作為腎病患者的重要治療設(shè)備,其核心功能是實(shí)現(xiàn)透析液的精準(zhǔn)灌注與引流。在這個(gè)過程中,管路壓力的實(shí)時(shí)監(jiān)測直接關(guān)系到治療安全與效果。傳統(tǒng)的壓力監(jiān)測方案往往存在精度有限、長期穩(wěn)定性不足、體積
    的頭像 發(fā)表于 10-13 12:04 ?507次閱讀
    APD腹膜<b class='flag-5'>透析</b>機(jī)中需要哪些傳感<b class='flag-5'>器</b>?(二)

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

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

    Nginx和Apache的差異

    Nginx個(gè) 輕量級/高性能 的反向代理Web服務(wù),用于 HTTP、HTTPS、SMTP、POP3 和IMAP 協(xié)議。
    的頭像 發(fā)表于 07-09 09:45 ?784次閱讀

    詳解Nginx負(fù)載均衡

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

    多軸運(yùn)動(dòng)控制器JMC-F2-A6中手冊

    電子發(fā)燒友網(wǎng)站提供《多軸運(yùn)動(dòng)控制器JMC-F2-A6中手冊.pdf》資料免費(fèi)下載
    發(fā)表于 06-23 15:14 ?2次下載

    Nginx配置終極指南

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

    車載整機(jī)控制器 工程機(jī)械主機(jī)控制器#碩博電子#國產(chǎn)控制器

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

    Ingress網(wǎng)關(guān)高并發(fā)請求的解決方案

    當(dāng) Ingress 網(wǎng)關(guān)面臨高并發(fā)請求(如 QPS 超過 10萬+)時(shí),可能導(dǎo)致服務(wù)崩潰、響應(yīng)延遲激增或資源耗盡。
    的頭像 發(fā)表于 05-14 11:52 ?1007次閱讀

    Nginx緩存配置詳解

    Nginx個(gè)功能強(qiáng)大的 Web 服務(wù)和反向代理服務(wù),它可以用于實(shí)現(xiàn)靜態(tài)內(nèi)容的緩存,緩存可以分為客戶端緩存和服務(wù)端緩存。
    的頭像 發(fā)表于 05-07 14:03 ?1381次閱讀
    <b class='flag-5'>Nginx</b>緩存配置詳解

    工程機(jī)械控制器廠家 控制器國產(chǎn)替代 #國產(chǎn)控制器#控制器廠家#控制器品牌

    控制器
    長沙碩博電子科技股份有限公司
    發(fā)布于 :2025年04月29日 14:15:05
    南投县| 江山市| 孟连| 井冈山市| 富宁县| 宁强县| 吉隆县| 久治县| 疏勒县| 延安市| 叙永县| 安溪县| 榆树市| 西宁市| 荣昌县| 济阳县| 尚义县| 谢通门县| 九龙县| 崇仁县| 平定县| 正安县| 兴国县| 南涧| 蓝山县| 本溪市| 北海市| 盘锦市| 博野县| 罗山县| 玉门市| 金华市| 武胜县| 普兰店市| 崇礼县| 布拖县| 灵石县| 西充县| 昌平区| 台前县| 萨迦县|