91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何輕松調試K8S服務

發布時間:2021-10-12 13:47:52 來源:億速云 閱讀:364 作者:柒染 欄目:云計算

如何輕松調試K8S服務,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

在Kubernetes中,服務是一個核心概念。這里將介紹如何調試K8S服務,這些服務是由多個Pod組成的工作負載的抽象接口(主機+端口)。

在我們深入探索debug方法之前,我們先簡單回顧一下網絡,這是Kubernetes服務的基礎。

  • 在一個pod中的容器共享相同的網絡空間和IP。

  • 所有的pod都能通過IP彼此通信。

  • 每個節點都能看到所有的Pod,反之亦然。

  • Pod可以看到所有的服務。

那么,在實踐中這些意味著什么呢?

如何輕松調試K8S服務

在圖中:

  • 位于Pod1中的容器B可以直接作為localhost尋址容器A

  • 容器B可以通過其IP直接尋址Pod2(kubectl get pod -o wide)。我們知道當pod2出現故障時著不是一個可靠的通信渠道,并且一個新的pod可以出現在其位置中。但是我們無法追逐不斷變化的目標。

  • 接下來,容器B可以通過Service x訪問pod 2和pod 3,后者將它們的IP與負載均衡捆綁在一起;因此,在K8S上支持基于微服務的應用程序起著至關重要的作用

盡管對Kubernetes的內部網絡結構的檢查不在本文的討論范圍內,但我稍后會發布一些參考資料以供大家進一步研究。

對于當下,我還是鼓勵你花費一點時間在實踐中經歷和理解Kubernetes中的網絡。例如,你可以啟動一個Kubernetes測試pod并且嘗試從該pod中訪問其他pod、節點和服務。此處顯示的命令將在Pod內彈出一個Linux shell。

kubectl run -it networktest --image=alpine bin/ash --restart=Never --rm

現在你在Kubernetes網絡空間內并且你可以隨意使用wegtpingnslookup之類的命令進行實驗。例如,測試你的Kubernetes集群中先前列出的網絡要求,nslookup <servicename>, ping <PodIP>

現在讓我們回到我們的話題,troubleshooting Kubernetes服務,這實際上是一種網絡結構。

Step1:檢查服務是否存在

kubectl get svc

如果服務不存在,應該是服務創建出現了故障,因此要去檢查你的服務定義。

Step2:測試你的服務

請記住,一個內部的Kubernetes ClusterIP服務是無法在集群外部訪問的。因此,有兩種方法可以對其進行測試。方法一,你可以啟動一個測試Pod,通過SSH進入該pod,然后嘗試像這樣訪問你的服務:

kubectl run -it testpod --image=alpine bin/ash --restart=Never --rm

在本文中我們啟動一個alpine Docker鏡像作為pod來從其內部測試服務:

#works for http services
wget <servicename>:<httpport>

#Confirm there is a DNS entry for the service!
nslookup <servicename>

或者,你可以轉發到本地計算機并在本地進行測試。

kubectl port-forward <service_name> 8000:8080

現在,你可以通過localhost:8000訪問服務。

Step3:檢查服務是否target相關Pod

Kubernetes服務會根據標簽selector將入站流量路由到其中一個pod,流量通過其IP路由到目標Pod。所以,請檢查服務是否綁定到那些pod。

kubectl describe service <service-name> | grep Endpoints

執行上述命令之后,你應該看到與列出的工作負載相關的所有Pod的IP。如果沒有看到,請執行Step4。

Step4:檢查Pod標簽

確保在Kubernetes服務中的selector與pod的標簽相匹配。

kubectl get pods --show-labels
kubectl describe svc <service_name>

從下面的截圖的中可以看到,pod的標簽在右邊。四個pod被標記為app=tinywebsitetier=frontend,這些標簽與下面“described”的服務selector相匹配。

在這四個匹配的Pod中,只有三個正在運行,其IP在突出顯示的行中被列為服務的端點(endpoint)。你還可以在IP列中看到相同的IP。

如何輕松調試K8S服務

Step5:確認服務端口與pod相匹配

最后,確保在你的pod中的代碼能夠監聽到你為服務指定的targetPort(例如,你在上方截圖中看到的port8001)!

這十分簡單,為了讓你更進一步深入了解和研究Kubernetes的網絡世界,歡迎你閱讀以下文章。

  • 在Kubernetes中部署一個應用程序

  • Debug服務

  • Kubernetes網絡

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

k8s
AI

大足县| 阿图什市| 水富县| 巧家县| 新蔡县| 沈丘县| 克什克腾旗| 宁晋县| 博罗县| 廊坊市| 吉安市| 陆丰市| 昭通市| 阳山县| 高台县| 临江市| 井冈山市| 北辰区| 镇赉县| 牡丹江市| 吴堡县| 夏河县| 商南县| 大兴区| 永靖县| 霍州市| 友谊县| 阿图什市| 梧州市| 铜陵市| 武强县| 西畴县| 蚌埠市| 阿克陶县| 武鸣县| 青阳县| 读书| 平阳县| 汽车| 永修县| 郴州市|