close

Container服務可以運行的Pod

  Pod可以說是運行容器服務的最基本單位了,它也是延用自Docker的名詞。基本上Pod也是我們所說的容器,一個Pod就是一個容器,每一個Pod都是運行在Node底下,一個Node則可以建立運行多個Pod

 

  但是別把容器跟容器服務/容器應用搞混了,一個Pod是一個容器,而每個Pod內部可以運行一到多個容器服務或容器應用,這些容器服務或應用就是我們程式開發出來可運行的App,在這邊,每一個容器服務或應用就是一個Container,一個Pod內可以運行多個Container,指的是這個Pod底下可以起一到多個容器服務,但一般我們說的容器是指Pod而言。 

真正的服務(Service)是由Pod提供的 

  現在,要了解的是,每一個運行在Cluster上的企業應用,其實都是由最底層的PodExport出來的微服務交互所形成的,每個Pod都可以是一個微服務(Service),而有些Service是由多個Pod共同運作而成的。

  所以一個pod可以是一個對外提供服務的Service;也可以多個pod形成一個service對外提供服務;但Pod也可以僅僅只是一個pod,因為它可能不被任何外部服務所使用。

   反過來說,一個Service是由一個Pod或多個Pod所形成的,這些Pod所形成的Service必須對外ExportNodePort上面,這樣外界調用Service時,當Node上與Service關聯的Port被使用,Service自然會被調用。

  以上大概就是Kubernetes的容器結構,由下而上是由PodCluster,結構層次雖然不算少,但各層用途不難理解,而Pod則是運行Service的關鍵,只是任何需對外提供使用的Service都必須Export出來對映到特定NameSpace下的Node port才能對外提供服務。

2019127日星期六

arrow
arrow

    jackterrylau 發表在 痞客邦 留言(0) 人氣()