k8s之Service類型詳解

1.ClusterIP 類型

2.NodePort 類型

3.LoadBalancer 類型

4.ExternalName 類型

類型為 ExternalName 的 Service 將 Service 映射到 DNS 名稱,而不是典型的選擇算符, 例如 my-service 或者 cassandra。你可以使用 spec.externalName 參數指定這些服務。

例如,以下 Service 定義將 prod 名字空間中的 my-service 服務映射到 my.database.example.com:

apiVersion: v1
kind: Service
metadata:name: my-servicenamespace: prod
spec:type: ExternalNameexternalName: my.database.example.com

說明:
type: ExternalName 的服務接受 IPv4 地址字符串,但將該字符串視為由數字組成的 DNS 名稱, 而不是 IP 地址(然而,互聯網不允許在 DNS 中使用此類名稱)。 類似于 IPv4 地址的外部名稱無法
被 DNS 服務器解析。
如果你想要將服務直接映射到某特定 IP 地址,請考慮使用無頭服務

當查找主機 my-service.prod.svc.cluster.local 時,集群 DNS 服務返回 CNAME 記錄, 其值為 my.database.example.com。訪問 my-service 的方式與訪問其他 Service 的方式相同, 主要區別在于重定向發生在 DNS 級別,而不是通過代理或轉發來完成。 如果后來你決定將數據庫移到集群中,則可以啟動其 Pod,添加適當的選擇算符或端點并更改 Service 的 type

注意:
針對 ExternalName 服務使用一些常見的協議,包括 HTTP 和 HTTPS,可能會有問題。 如果你使用 ExternalName 服務,那么集群內客戶端使用的主機名與 ExternalName 引用的名稱不同。

對于使用主機名的協議,這一差異可能會導致錯誤或意外響應。 HTTP 請求將具有源服務器無法識別的 Host: 標頭; TLS 服務器將無法提供與客戶端連接的主機名匹配的證書。

實戰場景1:

假設你在集群外有一個數據庫服務,地址為db.external.com,端口是3306(MySQL的默認端口)。你希望在集群內部用一個類似mysql.default.svc.cluster.local 的域名來訪問它。

kubectl apply -f << EOF
apiVersion: v1
kind: Service
metadata: name: mysqlnamespace: default
spec:type: ExternalNameexternalName: db.external.com
EOF

一旦創建完成,在集群內的Pod可以通過DNS名稱mysql.default.svc.cluster.local或者mysql來訪問

kubectl run test-pod --rm -it --image=busybox -- /bin/sh

然后訪問:

nslookup mysql
telnet mysql 3306

應該可以看到DNS解析指向db.external.com

實戰場景2:

假如你有一個應用程序AppA部署在命名空間aa中,服務名為servicea。
現在計劃將AppA遷移到新的命名空間bb中,但是你希望在遷移的過程中,其他應用仍然能通過原有的
servicea訪問AppA,以避免服務中斷。
在aa命名空間中創建一個ExternalName的Service,將流量指向新的B命名空間的servicea
步驟:
1.在bb命名空間部署AppA和對應的servicea服務。
2.在aa命令空間創建ExternalName的Service。

kubectl apply -f << EOF
apiVersion: v1
kind: Service
metadata: name: serviceanamespace: aa
spec:type: ExternalNameexternalName: servicea.bb.svc.cluster.local
EOF

總結:

1.端口信息不可配置:ExternalName 類型的服務本身不會定義端口,所以需要你在Pod中直接訪問目標主機的端口。
2.僅支持TCP流量:因為它本質是DNS CNAME映射,所以主要適用TCP協議。
3.安全性: 你仍需要自己處理認證、證書等安全問題。

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

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

相關文章

find指令中使用正則表達式

linux查找命令能結合正則表達式嗎 find命令要使用正則表達式需要結合-regex參數 另&#xff0c;-type參數可以指定查找類型(f為文件&#xff0c;d為文件夾) rootlocalhost:~/regular_expression# ls -alh 總計 8.0K drwxr-xr-x. 5 root root 66 4月 8日 16:26 . dr-xr-…

《穿透表象,洞察分布式軟總線“無形”之奧秘》

分布式系統已成為眾多領域的關鍵支撐技術&#xff0c;而分布式軟總線作為實現設備高效互聯的核心技術&#xff0c;正逐漸走入大眾視野。它常被描述為一條“無形”的總線&#xff0c;這一獨特屬性不僅是理解其技術內涵的關鍵&#xff0c;更是把握其在未來智能世界中重要作用的切…

Ubuntu虛擬機連不上網

橋接 虛擬機Ubuntu系統必須能連接到外網&#xff0c;不然不能更新軟件安裝包 配置虛擬機網絡&#xff08;關機或者掛起狀態&#xff09; 第一步1.重啟虛擬機網絡編輯器&#xff08;還原配置&#xff09; 第二步2.重啟虛擬機網絡適配器&#xff08;移除再添加&#xff09; 啟…

rom定制系列------紅米9A批量線刷原生安卓14雙版 miui系統解鎖可登陸線刷固件

紅米9A。聯發科Helio G25芯片。該處理器支持64位運算?&#xff0c;但此機miui系統運行環境是32位的&#xff0c;這意味著盡管處理器本身支持64位計算&#xff0c;但miui系統限制在32位環境下運行?。官方miui系統穩定版最終為12.5.21安卓11的版本。 原生安卓14批量線刷功能固…

Matlab 分數階PID控制永磁同步電機

1、內容簡介 Matlab 203-分數階PID控制永磁同步電機 可以交流、咨詢、答疑 2、內容說明 略 3、仿真分析 略 4、參考論文 略

Flink的 RecordWriter 數據通道 詳解

本文從基礎原理到代碼層面逐步解釋 Flink 的RecordWriter 數據通道&#xff0c;盡量讓初學者也能理解。 1. 什么是 RecordWriter&#xff1f; 通俗理解 RecordWriter 是 Flink 中負責將數據從一個任務&#xff08;Task&#xff09;發送到下游任務的組件。想象一下&#xff0c;…

Dubbo、HTTP、RMI之間的區別

Dubbo、HTTP、RMI之間的區別如下&#xff1a; 表格 復制 特性DubboHTTPRMI通信機制基于Netty的NIO異步通信&#xff0c;采用長連接&#xff0c;支持多種序列化方式基于標準的HTTP協議&#xff0c;無狀態&#xff0c;每次請求獨立基于Java原生的RMI機制&#xff0c;支持Java對…

wkhtmltopdf生成圖片的實踐教程,包含完整的環境配置、參數解析及多語言調用示例

歡迎來到濤濤聊AI&#xff0c;最近在研究HTML生成卡片的功能&#xff0c;一起學習下吧。 一、工具特性與安裝 wkhtmltoimage是基于WebKit引擎的開源命令行工具&#xff0c;可將HTML網頁轉換為JPG/PNG等圖片格式&#xff0c;支持CSS渲染、JavaScript執行和響應式布局。安裝方式…

【在Node.js項目中引入TypeScript:提高開發效率及框架選型指南】

一、TypeScript在Node.js中的核心價值 1.1 靜態類型檢測 // 錯誤示例&#xff1a;TypeScript會報錯 function add(a: number, b: string) {return a b }1.2 工具鏈增強 # 安裝必要依賴 npm install --save-dev typescript types/node ts-node tsconfig.json1.3 代碼維護性提…

化工企業數字化轉型:從數據貫通到生態重構的實踐路徑

一、戰略定位&#xff1a;破解行業核心痛點 化工行業面臨生產安全風險高&#xff08;全國危化品企業事故率年增5%&#xff09;、能耗與排放壓力大&#xff08;占工業總能耗12%&#xff09;、供應鏈協同低效&#xff08;庫存周轉率低于制造業均值30%&#xff09;三大挑戰。《石…

C#網絡編程(Socket編程)

文章目錄 0、寫在前面的話1、Socket 介紹1.1 Socket是什么1.2 Socket在網絡中的位置 2、C# 中的Socket參數2.1 超時控制參數2.2 緩沖區參數2.3 UDP專用參數 3、C# 中的Socket API3.1 Socket&#xff08;構造函數&#xff09;3.1.1 SocketType3.1.2 ProtocolType3.1.3 AddressFa…

Docker部署ES集群

引言&#xff1a; Elasticsearch&#xff08;ES&#xff09;作為分布式搜索引擎&#xff0c;其核心價值在于通過集群部署實現高可用性和數據冗余。 本實驗對比兩種典型部署方案&#xff1a; 原生Linux部署&#xff1a;直接安裝ES服務&#xff0c;適用于生產環境&#xff0c;資…

老硬件也能運行的Win11 IoT LTSC (OEM)物聯網版

#記錄工作 Windows 11 IoT Enterprise LTSC 2024 屬于物聯網相關的版本。 Windows 11 IoT Enterprise 是為物聯網設備和場景設計的操作系統版本。它通常針對特定的工業控制、智能設備等物聯網應用進行了優化和定制&#xff0c;以滿足這些領域對穩定性、安全性和長期支持的需求…

【教程】xrdp修改遠程桌面環境為xfce4

轉載請注明出處&#xff1a;小鋒學長生活大爆炸[xfxuezhagn.cn] 如果本文幫助到了你&#xff0c;歡迎[點贊、收藏、關注]哦~ 目錄 xfce4 vs GNOME對比 配置教程 1. 安裝 xfce4 桌面環境 2. 安裝 xrdp 3. 配置 xrdp 使用 xfce4 4. 重啟 xrdp 服務 5. 配置防火墻&#xff…

【數據結構 · 初階】- 順序表

目錄 一、線性表 二、順序表 1.實現動態順序表 SeqList.h SeqList.c Test.c 問題 經驗&#xff1a;free 出問題&#xff0c;2種可能性 解決問題 &#xff08;2&#xff09;尾刪 &#xff08;3&#xff09;頭插&#xff0c;頭刪 &#xff08;4&#xff09;在 pos 位…

windows主機中構建適用于K8S Operator開發環境

基于win 10 打造K8S應用開發環境&#xff08;wsl & kind&#xff09; 一、wsl子系統安裝 1.1 確認windows系統版本 cmd/powershell 或者win r 運行winver 操作系統要> 19044 1.2 開啟wsl功能 控制面板 -> 程序 -> 啟用或關閉Windows功能 開啟適用于Linu…

計算機視覺色彩空間全解析:RGB、HSV與Lab的實戰對比

計算機視覺色彩空間全解析&#xff1a;RGB、HSV與Lab的實戰對比 一、前言二、RGB 色彩空間?2.1 RGB 色彩空間原理?2.1.1 基本概念?2.1.2 顏色混合機制? 2.2 RGB 在計算機視覺中的應用?2.2.1 圖像讀取與顯示?2.2.2 顏色識別?2.2.3 RGB 色彩空間的局限性? 三、HSV 色彩空…

PyTorch多GPU訓練實戰:從零實現到ResNet-18模型

本文將介紹如何在PyTorch中實現多GPU訓練&#xff0c;涵蓋從零開始的手動實現和基于ResNet-18的簡潔實現。代碼完整可直接運行。 1. 環境準備與庫導入 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l from torchvisio…

micro介紹

micro介紹 Micro 的首要特點是易于安裝&#xff08;它只是一個靜態的二進制文件&#xff0c;沒有任何依賴關系&#xff09;和易于使用Micro 支持完整的插件系統。插件是用 Lua 編寫的&#xff0c;插件管理器可自動為你下載和安裝插件。使用簡單的 json 格式配置選項&#xff0…

Linux內核分頁——線性地址結構

每個進程通過一個指針&#xff08;即進程的mm_struct→pgd&#xff09;指向其專屬的頁全局目錄&#xff08;PGD&#xff09;&#xff0c;該目錄本身存儲在一個物理頁框中。這個頁框包含一個類型為pgd_t的數組&#xff0c;該類型是與架構相關的數據結構&#xff0c;定義在<as…