中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Kubernetes的三種IP地址類型

發布時間:2021-11-06 15:08:43 來源:億速云 閱讀:198 作者:柒染 欄目:建站服務器

本篇文章給大家分享的是有關如何理解Kubernetes的三種IP地址類型,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

很多Kubernetes的初學者對Kubernetes里面三種不同的IP地址和工作機制理解得不是很清楚。

我們通過一個最簡單的例子來學習。

用如下命令行創建一個基于nginx的deployment:

kubectl run nginx --image=nginx:maxline

用kubectl get deploy查看成功生成的名為nginx的deployment:

如何理解Kubernetes的三種IP地址類型

此時這個deployment里的nginx pod還無法對外界提供服務。

我們創建一個service讓外界能夠消費。使用命令行創建這樣的一個service:

kubectl expose deployment nginx --type=LoadBalancer --port=80 --target-port=80

type的類型選擇為LoadBalancer, --port指定的是80端口,意思是這個service對外界暴露出來的服務端口是80,--target-port=80,這個端口是pod內部的nginx docker容器提供服務的工作端口,默認為80。這里實際上建立了向外界開發的80端口同nginx容器內部端口的一個映射關系。

如何理解Kubernetes的三種IP地址類型

執行完畢后,我們調用下面的命令行,看到了創建的service的Cluster IP和External IP。

如何理解Kubernetes的三種IP地址類型

其中external IP很好理解,這個service通過external IP加上我們前面介紹的被映射到80端口向外界提供服務:

瀏覽器里輸入External IP http://35.241.173.27:80, 能成功訪問nginx服務器的index.html:

如何理解Kubernetes的三種IP地址類型

而我們通過Service的Cluster IP是無法訪問這個Service提供的功能的。

我們知道Kubernetes里的所有pod都可以彼此通信,而不需要通過網絡地址轉換(Network Address Translation-NAT),所有的節點也可以與所有的pod通信。而Service的Cluster IP,是一個內部的IP地址,專門用于同Cluster內部的節點或者pod通信。同外界通信,還是通過External IP進行。

NodePort

再試試NodePort。

kubectl expose deployment nginx --type=NodePort --port=80 --target-port=80

注意看下圖的PORT欄下面顯示的類型為NodePort的端口:31375

這個端口號是Kubernetes expose命令自動生成的,范圍在30000到32767之間。如果需要修改,可以編輯api server的配置文件:/etc/kubernetes/apiserver:

如何理解Kubernetes的三種IP地址類型

如何理解Kubernetes的三種IP地址類型

有了這個端口號,我們隨便使用一個node的IP地址,后面拼接上:31375即是外部可以消費的完整地址。

使用命令行kubectl get nodes -o wide, 在結果里選擇任意節點的External-IP,后面加上:31375:

如何理解Kubernetes的三種IP地址類型

測試:

http://146.148.23.183:31375/

測試通過。

如何理解Kubernetes的三種IP地址類型

Pod的端口轉發功能

值得一提的是,有時我們出于測試的目的,需要一種簡單的辦法查看一個pod是否能正常提供服務。如果每次通過kubectl的方式創建service就太麻煩了。

這里介紹一種簡單的辦法:pod的端口轉發功能(port forward)。

比如我們想測試下圖get pods返回的第一個pod的功能,名稱為nginx-6f754dd4b9-74jdn:

如何理解Kubernetes的三種IP地址類型

執行命令行 kubectl port-forward pod/nginx-6f754dd4b9-74jdn 8080:80

看到提示信息Forwarding from 127.0.0.1:8080 -> 80, 意思是把當前主機的8080端口映射到nginx pod的80工作端口:

如何理解Kubernetes的三種IP地址類型

最后,就能夠通過localhost:8080直接訪問nginx pod提供的服務了:

如何理解Kubernetes的三種IP地址類型

以上就是如何理解Kubernetes的三種IP地址類型,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

徐汇区| 汶川县| 宕昌县| 乌兰察布市| 昌图县| 宜宾县| 通化县| 日喀则市| 潍坊市| 雷山县| 连城县| 墨江| 卢湾区| 荔波县| 拉孜县| 辽宁省| 舟山市| 光山县| 东安县| 蓝山县| 义马市| 祁门县| 金山区| 东乌珠穆沁旗| 乐业县| 沂南县| 龙井市| 横峰县| 霍林郭勒市| 东城区| 新龙县| 龙门县| 伽师县| 新余市| 察隅县| 商都县| 岑巩县| 图木舒克市| 忻城县| 岗巴县| 桃园市|