グラフィックKubernetes

容器

Kubernetesを理解する前に、私たちは第一の容器を理解しましょう。

容器は、コンテナの配置を話をすることはできませんので、あなたは理解していない場合。

コンテナはある...あなたはすべてのぬいぐるみ素材のコンテナを。

「素材」、アプリケーションコード、依存関係、およびカーネルの依存関係までを指します。

キーコンセプトは、分離それらをよりよく制御するために、これらの材料からあなたを隔離するために、。

コンテナは、分離の3種類が用意されています。

  • ワークスペース・アイソレーション(プロセス、ネットワーク)
  • リソース分離(CPU、メモリ)
  • ファイルシステムの分離

コンテナは、VMは、それがバリア性を持つダイエットとして理解が、非常に合理化されたコンテナ、小型、高速に起動することができます。

次にVMオペレーティング・システムがオペレーティング・システムの複数の上に搭載され、VMは、自然に単離されました。

コンテナが経由のLinuxでcgroup隔離VMの種類を達成するために、あなたは、オペレーティングシステムをインストールする必要はありません。

Kubernetesを使用する場合は?

Kubernetesこのような容器のコーディネーターが行う理由コンテナは、罰金ですか?

あなたはこの図の状態に達した場合は、あなたが彼を必要とする、コンテナを管理するにはあまりにも多くのがあります。

Q:私はそれがあるコンテナの前にいますか?どのように多くのランニング?

A:それはすぐにコンテナの配置を使用して、ああ、言うのは難しいです。

Q:どのように私は、新しく作成されたフロントエンドとバックエンドの通信コンテナ船することができますか?

A:私はハードコードされたIP、または血管の配置を使用することができます。

Q:どのようにローリングアップグレードできますか?

A:あなたが手動ですべてのステップを制御することができ、または、コンテナの配置を使用します。

Kubernetesアーキテクチャ

マスターと作業員:各Kubernetesクラスタノードの2種類があります。

マスターコントロールおよびクラスタワーカーの仕事を監視します。

  • マスターの憲法

etcd:データベース、すべてのkubernetesオブジェクト、現在の状況、情報へのアクセス、クラスタ構成情報として......、これがあります。

APIサーバー:マスターと作業者の暴露クラスタ操作上のエンドポイントのコンポーネントが自分の仕事を完了するために、アクセスAPI servrerが必要です。

Scheduler : 调度程序,负责决定哪个工作由哪个机器干。

Control Manager : 控制管理器,监视集群的状态(通过调用API服务器来获取此数据)并采取措施将其置于预期状态。

  • worker 的构成

kubelet : worker 节点的核心,与 master 的 api server 沟通,运行调度到本节点的容器。

kube Proxy : 使用 IP表/ IPVS 处理Pod的网络需求。

Pod : kubernetes 运行容器的主力,提供了容器间联网的能力。

一个 pod 中可以有多个容器,这些容器中的应用互相间都视为本地。

pod 的网络接口提供了一个机制,使其可以与本节点或其他节点上的 pod 进行网络连接。

每个 pod 都会被指定一个 IP,kube-proxy将使用该IP地址来路由流量,而且此IP地址仅在群集中可见。

一个 pod 中挂载的数据卷可以被所有容器看到,例如,你的 APP 是一个图片上传应用,把图片保存在一个数据卷中,同一个 pod 中的其他容器可以监控这个数据卷,发现有新图片时,就开始处理,例如缩放多个尺寸的图片、上传到云存储。

Controller 控制器

kubernetes 中有很多控制器,例如 ReplicaSet, Replication Controllers, Deployments, StatefulSets, Service。

他们都是控制 pod 的对象,我们来看几个重点的控制器。

(1)ReplicaSet

主要职责是根据给定的 pod 创建副本。

如果一个 pod 挂了,这个控制器就会得到通知,立马创建一个新的。

(2)Deployment

使用 ReplicaSet 来管理副本。

提供了滚动升级的能力,扩展新的,缩减旧的。

(3)Service

像一个负载均衡器一样,像相应节点分派包。

可以跨 worker 节点构建一个 pod 组(通常是根据 pod 的标签)。

例如你的前端应用、后端应用,各自都有很多个实例在运行,前后端怎么沟通?

前端需要知道后端各个实例的访问地址,硬编码后端 IP 的方式显然不能用,那么就需要把后端实例组成一个 service,前端只需要访问这个 service,由 service 对其中的后端实例进行流量负载均衡转发。

(4)Ingress

Ingress(入口)控制器是和外部世界沟通的唯一入口。

外部世界通过 Ingress 与集群中的所有服务沟通。

就像是一个网关,方便我们在一个地方统一设置安全策略、监控、记录日志。

小结

翻译整理自:

https://medium.com/tarkalabs/know-kubernetes-pictorially-f6e6a0052dd0

推荐阅读:

おすすめ

転載: www.cnblogs.com/yogoup/p/12122676.html