K8S集群-基于Ingress資源實現域名訪問

目錄

一、準備

1、在master節點部署ingress的資源清單文件

2、在node節點部署ingress-1.11.tar鏡像(根據部署環境選擇版本)

二、基于NodePort模式驗證

1、在master節點進入ingress的資源清單文件

2、修改deploy.yaml文件

3、生成deploy.yaml資源

4、在node節點中將ingress鏡像導入

5、現在修改NodPort

6、寫一個nginx資源清單

7、設置http代理,創建ingress-http.yaml

8、創建ingress-http.yaml資源

9、查看pod運行節點和端口號

10、在訪問主機的hosts文件中添加pod運行節點的ip和域名

11、通過域名訪問

三、基于LoadBalancer模式驗證

1、在master節點部署metallb負載均衡器

2、進入metallb配置文件

3、創建一個IP地址池

4、關聯IP地址池

5、加載metallb資源清單

6、加載IP池

7、加載地址池關聯規則

8、創建nginx資源清單

9、向http域名解析文件中添加新域名

10、更新域名解析文件

11、加載nginx資源清單

12、修改?LoadBalancer

13、訪問


一、準備

1、在master節點部署ingress的資源清單文件

2、在node節點部署ingress-1.11.tar鏡像(根據部署環境選擇版本)

二、基于NodePort模式驗證

1、在master節點進入ingress的資源清單文件

cd /ingress/ingress-nginx-controller-v1.11.3/deploy/static/provider/cloud

2、修改deploy.yaml文件

  • type修改為NodePort(可以在文件中直接修改,也可以啟動后修改)

  • 刪除文件內所有版本后的哈希算法

3、生成deploy.yaml資源

kubect create -fdeploy.yaml

會生成新的資源清單ingress-nginx

4、在node節點中將ingress鏡像導入

docker? load -i?ingress-1.11.tar?

5、現在修改NodPort

kubectl -n ingress-nginx edit svc ingress-nginx-controller?

6、寫一個nginx資源清單

apiVersion: apps/v1
kind: Deployment
metadata:
? labels:
? ? app: nginx-deploy
? name: nginx-deploy
spec:
? replicas: 3
? selector:
? ? matchLabels:
? ? ? app: nginx-deploy
? template:
? ? metadata:
? ? ? labels:
? ? ? ? app: nginx-deploy
? ? spec:
? ? ? containers:
? ? ? - image: nginx:latest
? ? ? ? imagePullPolicy: IfNotPresent
? ? ? ? name: nginx
? ? ? ? ports:
? ? ? ? - containerPort: 80
---

apiVersion: v1
kind: Service
metadata:
? labels:
? ? app: nginx-deploy
? name: nginx-svc
spec:
? ports:
? - port: 80
? ? protocol: TCP
? ? targetPort: 80
? selector:
? ? app: nginx-deploy
? type: ClusterIP

7、設置http代理,創建ingress-http.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
# 創建一個類型為Ingress的資源
metadata:
? name: nginx-ingress
# 這個資源的名字為 nginx-ingress
spec:
? ingressClassName: nginx
# 使用nginx
? rules:
? - host: nginx.jx.com
# 訪問此內容的域名
? ? http:
? ? ? paths:
? ? ? - backend:
? ? ? ? ? service:
? ? ? ? ? ? name: nginx-svc
# 對應nginx的服務名字,該規則的namespace必須與service的一致
? ? ? ? ? ? port:
? ? ? ? ? ? ? number: 80
# 訪問的端口
? ? ? ? path: / # 匹配規則
? ? ? ? pathType: Prefix # 匹配類型,這里為前綴

8、創建ingress-http.yaml資源

kubectl apply -f ingress-http.yaml

9、查看pod運行節點和端口號

node1節點

端口號31382

10、在訪問主機的hosts文件中添加pod運行節點的ip和域名

11、通過域名訪問

三、基于LoadBalancer模式驗證

1、在master節點部署metallb負載均衡器

2、進入metallb配置文件

cd?/metallb-0.14.8/config/manifests

3、創建一個IP地址池

cat >IPAddressPool.yaml<<EOF
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
? name: planip-pool
#這里與下面的L2Advertisement的ip池名稱需要一樣
? namespace: metallb-system
spec:
? addresses:
? - 192.168.158.135-192.168.158.150
#自定義ip段,不要與集群IP沖突
EOF

4、關聯IP地址池

cat >L2Advertisement.yaml<<EOF
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
? name: planip-pool
? namespace: metallb-system
spec:
? ipAddressPools:
? - planip-pool
#這里需要跟上面ip池的名稱保持一致
EOF

5、加載metallb資源清單

6、加載IP池

7、加載地址池關聯規則

8、創建nginx資源清單

apiVersion: apps/v1
kind: Deployment
metadata:
? labels:
? ? app: nginx-deploy1
? name: nginx-deploy1
spec:
? replicas: 3
? selector:
? ? matchLabels:
? ? ? app: nginx-deploy1
? template:
? ? metadata:
? ? ? labels:
? ? ? ? app: nginx-deploy1
? ? spec:
? ? ? containers:
? ? ? - image: nginx
? ? ? ? imagePullPolicy: IfNotPresent
? ? ? ? name: nginx1
? ? ? ? ports:
? ? ? ? - containerPort: 80
---

apiVersion: v1
kind: Service
metadata:
? labels:
? ? app: nginx-deploy1
? name: nginx-svc1
spec:
? ports:
? - port: 80
? ? protocol: TCP
? ? targetPort: 80
? selector:
? ? app: nginx-deploy1
? type: LoadBalancer

9、向http域名解析文件中添加新域名

10、更新域名解析文件

11、加載nginx資源清單

12、修改?LoadBalancer

kubectl -n ingress-nginx edit svc ingress-nginx-controller

13、集群外部主機訪問

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94410.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS 數據持久化

&#x1f4f1; iOS數據持久化 ? 核心概念 數據持久化是指將內存中的數據以特定格式保存到持久存儲介質&#xff08;如硬盤&#xff09;的過程&#xff0c;使得應用重啟后數據依然可用。在iOS中&#xff0c;由于沙盒機制的限制&#xff0c;應用只能訪問自己沙盒內的文件。 沙盒…

數據結構 -- 樹

一、樹的基本概念&#xff08;一&#xff09;定義樹是由 n&#xff08;n ≥ 0&#xff09; 個結點組成的有限集合&#xff0c;是一種非線性層次結構&#xff1a;當 n 0 時&#xff0c;稱為空樹&#xff1b;當 n > 0 時&#xff0c;存在唯一的根結點&#xff08;無前驅結點&…

單片機---------WIFI模塊

1.ESP-12F模組基礎知識ESP12-F模組&#xff08;安信可&#xff08;Ai-Thinker&#xff09;ESP8266系列模組&#xff09;是一款基于樂鑫&#xff08;Espressif&#xff09;公司ESP8266芯片的Wi-Fi無線通信模塊&#xff0c;廣泛應用于物聯網&#xff08;IoT&#xff09;領域。它體…

迅為RK3562開發板Android修改uboot logo

本文檔配套資料在網盤資料“iTOP-3562 開發板\02_【iTOP-RK3562 開發板】開發資料\07_Android 系統開發配套資料\05_Android 修改 uboot logo 配套資料”路徑下。1 準備 logo系統默認 uboot logo&#xff0c;如下圖所示&#xff1a;我們如果想要替換這個 logo,首先要制作一個新…

反催收APP開發思路:用Flutter打造證據鏈管理工具

針對非法催收問題&#xff0c;熊哥分享了一款反催收APP的開發思路&#xff0c;旨在幫助“誠而不幸”的負債人收集騷擾證據&#xff0c;通過Flutter實現跨平臺部署。本文整理其核心功能與技術方案&#xff0c;助力開發者快速上手&#xff01;一、核心功能&#xff1a;證據收集與…

市政道路井蓋缺失識別誤報率↓82%!陌訊多模態融合算法實戰優化與邊緣部署

原創聲明本文為原創技術解析文章&#xff0c;核心技術參數、架構設計及實戰數據引用自 “陌訊技術白皮書”&#xff0c;文中算法實現與優化方案均基于實測驗證&#xff0c;禁止未經授權轉載或篡改內容。一、行業痛點&#xff1a;市政井蓋識別的 “三大攔路虎”市政道路井蓋作為…

navicat及SQLyog的下載和安裝

navicat安裝和使用navicat下載和安裝navicat 下載navicat 的安裝SQLyog下載和安裝SQLyog 的下載SQLyog 的安裝連接到MySQL數據庫navicat下載和安裝 navicat 下載 navicat下載地址 這兩個都是滿足我們需求的&#xff0c;均可 這樣我們就得到了一個雙擊可執行的exe文件 navic…

在TencentOS3上部署OpenTenBase:從入門到實戰的完整指南

文章目錄前言初識OpenTenBase&#xff1a;不只是又一個分布式數據庫OpenTenBase的核心特性環境準備系統環境檢查安裝必要的依賴包用戶環境配置&#xff1a;安全第一創建專用用戶配置SSH免密登錄&#xff08;單機部署也需要&#xff09;源碼編譯&#xff1a;從零開始構建獲取源碼…

flink常見問題之超出文件描述符限制

引言Apache Flink 是一個強大且流行的流處理框架&#xff0c;它支持高吞吐量和低延遲的數據處理。在處理大規模數據流時&#xff0c;Flink 用戶可能會遇到各種性能瓶頸&#xff0c;其中之一就是文件描述符的限制。文件描述符是操作系統用來表示打開文件或其他輸入/輸出資源的一…

雅菲奧朗SRE知識墻分享(一):『SRE對智能運維領域所產生的深遠影響』

一、SRE推動了運維與開發的融合1、增強協作&#xff1a;SRE模式鼓勵運維與開發團隊之間的緊密合作&#xff0c;共享知識、資源和責任&#xff0c;共同解決系統穩定性和性能問題。2、共同目標&#xff1a;通過共同設定系統可靠性和性能目標&#xff0c;運維和開發團隊能夠協同工…

【JVM內存結構系列】一、入門:先搞懂整體框架,再學細節——避免從一開始就混淆概念

在Java開發中,你是否遇到過這些困惑:明明代碼沒寫錯,卻突然拋出OutOfMemoryError?調優GC參數時,不知道-Xms和-XX:MetaspaceSize分別影響哪塊內存?面試時被問“JVM內存結構和Java內存模型有啥區別”,只能含糊其辭? 其實,這些問題的根源都指向同一個核心——沒搞懂JVM的…

《Dual Prompt Personalized Federated Learning in Foundation Models》——論文閱讀

面向大規模預訓練模型&#xff08;ViT、BERT&#xff09;的千萬級設備場景&#xff0c;用“雙提示&#xff08;Dual Prompt&#xff09;”機制實現高效、可擴展的個性化聯邦學習&#xff08;PFL&#xff09;1.研究背景傳統聯邦學習在客戶端數據異構&#xff08;非獨立同分布&am…

深度剖析Lua Table的運作方式

前言&#xff1a;本篇基于Lua-5.3.6源碼并配合《Lua 解釋器構建&#xff1a;從虛擬機到編譯器》一書進行Table的運作解讀。一、Table數據結構typedef struct Table {CommonHeader;lu_byte flags; /* 1<<p means tagmethod(p) is not present */lu_byte lsizenode; /* l…

PETR/PETRv2

PE: position embedding 一、PETR算法動機回歸 1.1 DETR 輸入組成&#xff1a;包含2D位置編碼和Object Query 核心流程&#xff1a;通過Object Query直接索引2D特征圖&#xff0c;結合位置編碼迭代更新Query 特點&#xff1a;整體流程簡潔&#xff0c;每個Query代表一個潛在目標…

計算機大數據畢業設計推薦:基于Spark的氣候疾病傳播可視化分析系統【Hadoop、python、spark】

精彩專欄推薦訂閱&#xff1a;在下方主頁&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主頁&#xff1a;計算機畢設木哥&#x1f525; &#x1f496; 文章目錄 一、項目介紹二、…

英偉達顯卡GPU驅動的本質

我們來深入、詳細地探討一下英偉達&#xff08;NVIDIA&#xff09;GPU驅動程序的本質。 普通用戶眼中的驅動程序可能只是一個“讓顯卡工作的軟件”&#xff0c;但它的本質遠比這復雜和深刻。我們可以從幾個層面來理解它。 核心比喻&#xff1a;翻譯官、指揮官與優化大師 如果說…

算法 ---哈希表

一、哈希介紹 是什么 存儲數據的容器 什么用 快速查找某個元素 什么時候用哈希表 頻繁的查找某一個數的時候 怎么用哈希表 &#xff08;1&#xff09;容器&#xff08;哈希表&#xff09; &#xff08;2&#xff09;用數組模擬哈希表&#xff08;字符串的字符&#xf…

基于分布式環境的令牌桶與漏桶限流算法對比與實踐指南

基于分布式環境的令牌桶與漏桶限流算法對比與實踐指南 在高并發的分布式系統中&#xff0c;限流是保障服務可用性和穩定性的核心手段。本文聚焦于令牌桶算法與漏桶算法在分布式環境下的實現與優化&#xff0c;對多種解決方案進行橫向對比&#xff0c;分析各自的優缺點&#xff…

WPF MVVM入門系列教程(TabControl綁定到列表并單獨指定每一頁內容)

在以前的開發過程中&#xff0c;對于TabControl控件&#xff0c;我一般是習慣直接定義TabItem&#xff0c;在TabItem下布局&#xff0c;并進行綁定。 類似這樣 1 <TabControl ItemsSource"{Binding TabList}" SelectedIndex"0">2 <TabItem…

L2CAP 面向連接信道(CoC)在 BLE 中的應用:建立、流控與數據傳輸

在物聯網(IoT)蓬勃發展的今天,低功耗藍牙(BLE)技術因其高效節能、低成本等特性,成為短距離無線通信的首選方案。作為 BLE 協議棧的核心組件,邏輯鏈路控制與適配協議(L2CAP)的面向連接信道(CoC)承擔著數據傳輸的關鍵任務。本文將深入解析 L2CAP CoC 在 BLE 中的應用,…