01-K8Sアーキテクチャ

オリジナル住所ます。https://github.com/kubernetes/kubernetes/blob/release-1.3/docs/design/architecture.md

Kubernetesアーキテクチャ

実行中のクラスタノード包含する剤(Kubernetes kubelet)と分散ストレージの上に構築されたマスタノード・アセンブリ(APIは、スケジューラなど)。次の図は、我々はまだ、このような作りとして、改善しているにもかかわらず、我々の期待のアーキテクチャを示しkebeletコンテナで実行(すべてのコンポーネント)、およびすべての100%プラグイン可能なスケジューラを。

ノードKubernetes

私たちは、全体的なシステムアーキテクチャを見てみると、私たちは、ノードのサービス作業とグループレベルのコントロールプレーンサービス上で実行されている、二つの部分にそれを打破します。

Kubernetesが所望のサービスコンテナがアプリケーションを実行有するノードノードは、マスターシステムから管理することができます。

もちろん、各ノードは、ドッカーを実行する必要があります。画像をダウンロードするための責任ドッキングウィンドウは、容器を実行しているの詳細を管理します。

kubelet

kubelet 管理ポッド及びその容器、ミラーリング、ディスクボリュームおよびその他のリソース。

 

kube-proxy

 

各ノードは、(詳細については、簡単なWebプロキシとロードバランサを実行しますよくあるご質問します)。これは反映services(各ノードのKubernetesのAPIを定義した文書のサービスの詳細について)、およびバックエンドのTCPとUDPストリーム転送(循環)のセットにわたって、単純な実行することができます。

サービスのエンドポイントは、現在、DNSや環境変数で見つかりました。これらの変数は、ポートサービスプロキシの管理に解決されています。

Kubernetesコントロールプレーン

 

Kubernetes控制层分为几部分组件。目前它们都在一个主节点上运行(single master node),但预计很快就会改变,以支持集群的高可用。这些组件协同工作以提供群集的统一视图。

etcd

集群中 master 节点的所有持久状态都存储在etcd中。它提供了一种可靠的方法,存储配置的数据。通过对watch的支持,可以非常快速地将变更通知到各个组件。

Kubernetes API Server

apiserver提供Kubernetes API。它旨在成为一个 CRUD-y 服务器,大多数/所有业务逻辑在单独的组件或插件中实现。apiserver主要处理 REST 操作,验证它们,并更新etcd(或者其他存储)中的相应对象。

Scheduler

Scheduler 程序通过 /binding API 将未调度的 pod 绑定到节点。调度程序是可拔插的,我们希望将来支持多个集群调度程序甚至用户提供的调度程序。

Kubernetes Controller Manager Server

所有其他集群级功能当前由 Controller Manager 执行。例如,Endpoints 对象由 endpoints controller 创建和更新,节点由 node controller 发现,管理和监视。这些最终可以分成单独的组件,使它们可以独立插入。

replication controller是一种机制,它在simple pod API 之上的层级。一旦实现,我们最终计划将其移植成为通用插件机制。

おすすめ

転載: www.cnblogs.com/pythonPath/p/11261548.html