讓Container服務可以運行的Pod
Pod可以說是運行容器服務的最基本單位了,它也是延用自Docker的名詞。基本上Pod也是我們所說的容器,一個Pod就是一個容器,每一個Pod都是運行在Node底下,一個Node則可以建立運行多個Pod。
但是別把容器跟容器服務/容器應用搞混了,一個Pod是一個容器,而每個Pod內部可以運行一到多個容器服務或容器應用,這些容器服務或應用就是我們程式開發出來可運行的App,在這邊,每一個容器服務或應用就是一個Container,一個Pod內可以運行多個Container,指的是這個Pod底下可以起一到多個容器服務,但一般我們說的容器是指Pod而言。
真正的服務(Service)是由Pod提供的
現在,要了解的是,每一個運行在Cluster上的企業應用,其實都是由最底層的Pod所Export出來的微服務交互所形成的,每個Pod都可以是一個微服務(Service),而有些Service是由多個Pod共同運作而成的。
所以一個pod可以是一個對外提供服務的Service;也可以多個pod形成一個service對外提供服務;但Pod也可以僅僅只是一個pod,因為它可能不被任何外部服務所使用。
反過來說,一個Service是由一個Pod或多個Pod所形成的,這些Pod所形成的Service必須對外Export到Node的Port上面,這樣外界調用Service時,當Node上與Service關聯的Port被使用,Service自然會被調用。
以上大概就是Kubernetes的容器結構,由下而上是由Pod到Cluster,結構層次雖然不算少,但各層用途不難理解,而Pod則是運行Service的關鍵,只是任何需對外提供使用的Service都必須Export出來對映到特定NameSpace下的Node port才能對外提供服務。
2019年12月7日星期六
留言列表