Pod是Kubernetes抽象出來表示一組應用容器(比如Docker、rkt),還有這些容器共享的資源。這些資源包括:
- 共享存儲,比如Volumes
- 網絡,比如獨立的集群IP地址
- 如何去運行每個容器的信息,比如容器鏡像版本、要使用的端口
Pod塑造出一個應用專用的"邏輯主機",它能包含不同的應用容器(緊密耦合的)。舉例來說:一個Pod可以包含Node.js應用和另外一個產生Node.js webserver需要數據的應用。Pod的容器共享IP地址和端口空間,可以互相協作和調用,它們在同一個Node的上的共享上下文。
Pod是Kubernetes平台上的原子單位。當我們在Kubernetes上創建一個Deployment時,它將創建附帶容器的Pods。每個Pod與被調度的Node綁定直到被刪除。萬一Node故障了,一個新Pod會被調度到其它可用的Node上。
Nodes

Pod總是運行在Node之上。Node是Kubernetes中的一個工作機器,通常是一個虛擬機或者物理機。每個Node被Master管理。一個節點能有多個pod,同時Kubernetes master在集群之上自動調度pod。Master的自動調度考慮到每個Node上的可用資源。
每個Kubernetes Node至少運行:
- Kubelet,一個負責Kubernetes Master和Node之間通訊的進程;它管理着運行在機器上Pods和Containers
- 容器運行時(比如Docker,rkt),負責從registry拉取容器鏡像,取出容器,運行應用。
kubectl排查故障
通過kubectl可以獲取已部署應用的信息以及它們的環境。大多數常規操作可以通過以下kubectl命令來完成:
- kubectl get - 列出resources
- kubectl describe - 顯示resource的詳細信息
- kubectl logs - 打印pod中container的日志
- kubectl exec - 對pod的container執行一個命令
在應用部署之后,你可以通過這些命令去查看它們的狀態、它們運行在哪里以及它們的配置。
注:參考https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-intro/翻譯,部分內容有刪減及修改。
作者:卡卡rot
鏈接:https://www.jianshu.com/p/c2cbe3b84813
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。