您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何查看Pods和節點,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創建部署時,Kubernetes創建了一個Pod來托管應用程序實例。 Pod是一個Kubernetes抽象概念,它表示一個或多個應用程序容器的組合(如Docker或rkt),以及這些容器的一些共享資源。 這些資源包括:
共享存儲,如卷
網絡,作為唯一的集群IP地址
關于如何運行每個容器的信息,例如容器鏡像版本或要使用的特定端口
Pod為特定于應用程序的“邏輯主機”建模,可以包含相對緊密耦合的不同應用程序容器。 例如,Pod可能既包括帶有Nodejs應用程序的容器, 也包括由Nodejs web服務器發布的提供數據的容器。 Pod中的容器共享一個IP地址和端口空間,它們總是位于同一個節點上,并在同一個上下文中運行。
Pods在Kubernetes 平臺上是原子單位。 當我們在Kubernetes上創建部署時,該部署將創建包含容器的Pods(而不是直接創建容器)。 每個Pod被綁定到調試執行它的節點上,并一直保持到終止(根據重啟策略)或刪除。 在節點失敗的情況下,相同的pod會在集群中的其他可用節點上被調度。
Pod總是在節點上運行。 節點是Kubernetes中的工作機器,根據集群的不同,它可以是虛擬機器,也可以是物理機器。 每個節點都由主節點管理。 一個節點可以有多個pod, Kubernetes master自動處理集群中節點之間的pod調度。 主節點的自動調度考慮到每個節點上的可用資源。
每個Kubernetes節點都至少運行的服務:
Kubelet, 負責Kubernetes Master 和 Node 之間通信的進程; 它管理在機器上運行的pod和容器。
容器運行時(如Docker、rkt)負責從registry中提取容器鏡像、解壓縮容器并運行應用程序。
Kubectl 命令工具可以獲取關于已部署應用程序及其環境的信息。 最常見的操作可以使用以下kubectl命令完成:
kubectl get -- 列資源
kubectl describe -- 顯示有關資源的詳細信息
kubectl logs -- 從一個pod的容器打印日志
kubectl exec -- 在pod中的容器上執行命令
您可以使用這些命令查看應用程序的部署時間、當前狀態、運行位置和配置。
練習環境: https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-interactive/
檢查應用程序配置
我們將使用kubectl get命令并查找現有的Pods: kubectl get pods
會看到如圖的結果:
接下來,為了查看Pod中的容器以及用于構建這些容器的圖像,我們運行describe pods命令: kubectl describe pods
會看到如圖的結果:
在終端顯示app
Pods是在一個隔離的私有網絡中運行的——因此我們需要代理訪問它們,以便調試和與它們交互。為此,我們將使用kubectl proxy命令在第二個終端窗口中運行代理: kubectl proxy
現在,我們將再次獲得Pod名稱,并通過代理直接查詢該Pod。獲取Pod名稱并將其存儲在POD_NAME環境變量中: export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}');echo "Name of the Pod: $POD_NAME"
要查看應用程序的輸出,請運行curl請求: curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/
查看容器日志
應用程序通常發送到STDOUT的任何內容都會成為Pod中容器的日志。我們可以使用kubectl logs命令檢索這些日志: kubectl logs $POD_NAME
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何查看Pods和節點”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。