Docker - Kubernetes 架構



Kubernetes 是一個用於 Docker 容器的編排框架,它幫助將容器作為服務暴露給外部世界。例如,您可以有兩個服務——一個服務包含 **nginx** 和 **MongoDB**,另一個服務包含 **nginx** 和 **redis**。每個服務都可以有一個 IP 或服務端點,其他應用程式可以連線到該端點。然後 Kubernetes 用於管理這些服務。

下圖以簡化的格式顯示了 Kubernetes 從架構角度的工作原理。

Kubernetes Architecture

**Minion** 是執行所有服務所在的節點。您可以同時執行許多 Minion。每個 Minion 將託管一個或多個 **POD**。每個 **POD** 就像託管一個服務。然後每個 POD 包含 Docker 容器。每個 POD 可以託管一組不同的 Docker 容器。然後代理用於控制將這些服務暴露給外部世界。

Kubernetes 的架構中包含多個元件。下面解釋每個元件的作用:

  • **etcd** - 此元件是一個高可用的 **鍵值**儲存,用於儲存 **共享配置** 和 **服務發現**。在這裡,各種應用程式將能夠透過 **發現服務** 連線到服務。

  • **Flannel** - 這是容器所需的後臺網路。

  • **kube-apiserver** - 這是一個可用於編排 Docker 容器的 API。

  • **kube-controller-manager** - 用於控制 **Kubernetes 服務**。

  • **kube-scheduler** - 用於在主機上排程容器。

  • **Kubelet** - 用於透過 **清單檔案** 控制容器的啟動。

  • **kube-proxy** - 用於向外部世界提供網路代理服務。

廣告