Kubernetes引入的設計模式,指的是在同一Pod中,除了承載主要業務邏輯的容器外,還運行一個稱爲sidecar的輔助容器,提供一些通用功能支持。
Sidecar模式
Sidecar模式我感覺完全可以概括下面我說的所有模式,
比如使用Sidebar容器處理日誌,可以讓應用不用關心日誌發送到哪裏,僅輸出到stdout就可以。容器的輸出會被同一Pod中的SideCar輔助容器截取,併發送到日誌聚合平臺如(ElasticSearch)。
這使得運行在Kubernetes中的微服務可以實現分佈式鏈路跟蹤(Distribute Tracing)等功能。
其實另外兩種模式Ambassador pattern,Adapter Pattern都差不多。也是在同一個Pod裏運行一個輔助容器。
Ambassador模式
這個輔助容器用於代理網絡流量,比如讀寫分離,分庫代理。主要容器可以使用localhost來訪問數據庫,AM輔助容器截取請求,將讀請求分發到從節點,而將寫請求發送到主節點。
總結
其實輔助容器可以做很多事情,只要主要容器不想做的事情,可以統統扔到輔助容器裏去實現。如請求報文轉換(Adapter Pattern),監控統計等。