Kubenetes裡pod和service繫結的實現方式

i042416發表於2018-10-06

我之前的文章  如何在Kubernetes裡建立一個Nginx service 介紹瞭如何建立一個Kubernetes pod和service,使用的方法是命令kubectl run。

本文介紹另一種方式,通過這種方式來學習Kubernetes裡pod和對應的service是如何繫結的。

首先使用下面的命令列建立一個名稱為jerry-nginx-1982的deployment:

kubectl create deployment jerry-nginx-1982 --image=nginx

Kubenetes裡pod和service繫結的實現方式

然後使用命令列kubectl get deployment 得到建立好的deployment:

然後建立一個同名的service,型別為nodeport。

kubectl create service nodeport jerry-nginx-1982 --tcp 80:80

建立完成後,使用命令列kubectl get svc得到名稱為jerry-nginx-1982對外暴露的埠號:31954:

Kubenetes裡pod和service繫結的實現方式

然後就能通過這個埠號訪問nginx server了:

Kubenetes裡pod和service繫結的實現方式

那麼這兩個同名的pod和service是如何關聯的呢?

首先開啟kubernetes dashboard,找到之前建立的pod:

Kubenetes裡pod和service繫結的實現方式

其明細為:jerry-nginx-1982-67cb658cb8-9hl99

Kubenetes裡pod和service繫結的實現方式

再開啟同名service:

Kubenetes裡pod和service繫結的實現方式

再開啟這個service裡的pod,發現就是我們前面找到的jerry-nginx-1982-67cb658cb8-9hl99,說明pod和service是通過名稱關聯的。

Kubenetes裡pod和service繫結的實現方式

我們可以做一個negative測試,直接建立一個名為test的service,但不給它預先建立名為test的pod:

kubectl create service nodeport test --tcp 80:80

Kubenetes裡pod和service繫結的實現方式

service建立成功後,開啟這個service,發現裡面沒有分配任何pod:

Kubenetes裡pod和service繫結的實現方式

這個結果和我們預測的一致。

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2215481/,如需轉載,請註明出處,否則將追究法律責任。

相關文章