機構や部品を作業K8S

マスターノード:

唯一の輸出kuber-apiserver->リソースCRUDやその他の操作だけでなく、クラスタ制御入力プロセス
KUBE-コントローラ・マネージャ- > K8S自動制御センターのすべてのリソースオブジェクト
KUBE-scheduler->リソーススケジューリングの責任
レプリケーションcontroller->テンプレートスケーラブルでローリング・アップグレードを提供し、ポッドを作成してコピーします

ノードnode:

kubelet->マスターノードとのコラボレーション、マスターノードは、ポッドコンテナの作成を担当剤であり、起動し、サービス停止
デフォルトkubeletによっては、マスターに自身を登録します、kubelet定期的にクラスタのホストノードに報告された情報のすべての種類は、ノードの参加
Kube-をポッドは、ポッドの数との間のトラフィックのバランス、外部のロードバランサとして使用するルーティング使用してリンクproxy-> kubernetsサービス
Docker-を>コンテナ船を作成するための技術を使用してkubernets

Kubernetesは、主に以下のコアコンポーネントで構成されます。
  • etcdは、クラスタ全体の状態を保存します。
  • apiserverは唯一の入り口リソースの操作を提供し、認証、許可、アクセス制御、APIの登録と発見メカニズムを提供します。
  • このような等故障検出、自動拡張、ロールオーバーなど、クラスタの状態を維持する責任コントローラマネージャ.;
  • スケジューラは、ポッド対応マシンをスケジュールするために所定のスケジューリングポリシーに応じたスケジューリングリソースに責任があります。
  • コンテナのライフサイクルを維持する責任kubelet、それはまた、ボリューム(CVI)とネットワーク(CNI)の管理を担当します。
  • コンテナランタイムは、画像の管理と実際に実行ポッドおよびコンテナ(CRI)の責任です。
  • サービスのKUBE-プロキシは、内部クラスタサービスの発見とロードバランシングを提供する責任があります。
コアコンポーネントに加えて、いくつかの推奨アドオンがあります。
  • KUBE-DNSは、DNSサービスを提供するために、クラスタ全体に責任があります
  • イングレスコントローラは、エクストラネットサービスの入り口を提供します
  • Heapsterは、リソース監視を提供します
  • ダッシュボードには、GUIを提供します
  • 連盟は、使用可能な領域全体のクラスタを提供します
  • Fluentd-elasticsearchは、クラスタログ収集、保存し、クエリを提供します
  • コア技術的な概念やAPIオブジェクトのKubernetes

  • APIオブジェクトは、K8Sクラスタ管理操作部です。K8S新機能をサポートするために、各クラスタシステム、新技術の導入は、機能の管理操作をサポートする、新たに導入された対応するAPIオブジェクトになります。RSに対応する例えばレプリカセットのAPIオブジェクトのコピーセット。
    メタデータ、メタデータ、スペックや規範状態ステータス:各オブジェクトは3つのAPIの属性カテゴリがあります。このようなユーザとして、タグとラベルの様々なものがあることを除いて一致するオブジェクトを識別するために使用され、名前空間名およびUID:メタデータは、APIオブジェクトを識別するために使用される各オブジェクトは、少なくとも3つのメタデータを有していますENVタグは、生産を異なるサービスをテストし、開発を識別するために、それぞれ異なるサービス・デプロイメント環境、ENV = DEV、ENV =テスト、ENV =生産を区別識別するために使用することができます。仕様は、3のコピー制御レプリケーションコントローラポッドコピーの所望の数を設定することができ、ユーザによって、例えば、(所望の状態)に達しK8S分散システムのクラスタを介してユーザによって所望の状態を記述する、現在のシステムで説明した状況が実際の状態(ステータスに達し)、コピーPODシステムの現在の実際の数などは、2であり;次いで、現在のプログラム・ロジック・コントローラは、自動的に新たなポッドを開始コピー数が3である達成するために努力することであるコピー。
    すべての操作は、の(宣言)、宣言されているK8S重要な概念の一つであるK8Sすべての設定は、システムを構成することによって、システムの状態を変更するためのユーザーにとって理想的であるスペックAPIオブジェクトを通過するように設定されています、むしろ不可欠(不可欠)のより。分散システムにおける給付宣言型営業を失い、あるいは、そのようなまだ3回も操作の実行結果、部数と1つの操作を追加するのコピーの数を設定するなど、複数回、実行するために、安定していない恐れて宣言型ではありません複数の結果が間違っている実行します。

    K8Sは、多くの技術的な概念がありますが、最も重要で最も基本的な対応APIオブジェクトの多くはマイクロサービスポッドです。ポッドは、それが複数のコンテナをサポートすることができ、アプリケーションやサービスを展開クラスタ内で実行されているK8Sにおける最小単位です。ポッドの設計思想は、ポッド内のネットワークアドレスとファイルシステムを共有する複数のコンテナをサポートすることで、サービスは、シンプルかつ効率的な方法の組み合わせを共有するプロセス間通信やファイルによって行うことができます。複数のコンテナのためのポッドのサポートはK8S最も基本的なデザインです。たとえば、あなたは、オペレーティングシステムのリリースデポ、ソフトウェアnginxのを配布するために使用されるコンテナを実行して、元の倉庫から同期させるために設計された別の容器には、二つの容器をミラーリングすることは、チームによって開発される可能性は低いですが、彼らは子どもたちはマイクロサービスを提供するために動作します。この場合には、異なるチームは、ミラーを構築するために、独自のコンテナを開発するために、マイクロの展開がサービスを提供するサービスに組み合わされたとき。
    ポッドは、すべての業種のK8Sクラスタの基礎である小型ロボットK8Sクラスタを実行していると見ることができ、ビジネスのさまざまな種類が実行する小型ロボットの種類を必要とします。本K8Sサービスは、長いサーボタイプ(長時間実行)、バッチ式(バッチ)、タイプ背景サポートノード(ノードデーモン)に分けることができ、状態(ステートフル・アプリケーション)を適用しており、各小ロボットコントローラに対応します展開、ジョブ、DaemonSetとPetSetにある、この資料の後半には、一つ一つを紹介します。

    コントローラをコピー(複製コントローラ、RC)

    RC APIはK8Sクラスタがポッドの高可用性を確保するために早いですオブジェクト。実行の指定された数のことを確認するために、クラスタのポッドポッドのコピーを実行している監視することによって。指定された数よりも少ない、RCは、新しいポッドのコピーが実行を開始します;数が2つ以上がかもしれでき指定し、指定した数よりも多く、RCは過剰ポッドのコピーを殺すでしょう。RCはまた、ポッドのランニングが常にあることを保証するためにそれ非常に利用可能な容量を再生することができますので、RCによる1の指定された数はまた、実行するよりも賢くポッドポッドを実行している場合でも。RCは、このような小型ロボットの制御として、サーボ型は唯一のビジネスの長期的なタイプに適用され、技術のK8S以前の概念である可用性の高いWebサービスを提供しています。

    レプリカセット(レプリカセット、RS)

    RSは、RCの新世代であるRSは、一致パターンのより広範囲をサポートできるように、後ろから来た、主に異なる、同じ高可用性機能を提供しています。レプリカセットオブジェクトは、一般的に、単独で使用しますが、理想的な展開のパラメータとしてありません。

    展開(展開)

    展開はK8Sクラスタの動作を更新するユーザを表します。展開は、新しいサービス、新しい更新サービスを作成することができ、それは、ローリング・アップグレードサービスすることができ、アプリケーションのRSのAPIオブジェクトモデルよりも広くなっています。ローリング・アップグレードサービスは、実際に新しいRSを作成し、その後徐々に理想的には、新たなRSのコピー数を増加し、合わせた操作0に古いRSのコピー数の減少; RSと、このような複雑な操作ではありません適切な説明、そう記述するために、より汎用的な展開を使用します。ビジネスのすべてのサーボタイプの将来の長期的な経営のK8S発展方向は、展開によって管理されます。

    サービス(サービス)

    RCは、RSと展開サービスは、単にマイクロポッドサポートサービスの数は、これらのサービスにアクセスする方法の問題を解決しないことを確実にします。ポッドは、実行中のサービスのインスタンスだけであり、それは、一つのノード上で停止他に新しいIPノードと新しいポッドを開始し、従ってサービスを提供するためにIPとポート番号を決定することができないことがあります。着実にサービスに必要なサービスの発見とロードバランシング機能を提供します。サービスにアクセスし、バックエンドサービスの対応するインスタンスを見つけるために、クライアントのために行わサービス発見作業。K8Sクラスタでは、クライアントサービスは、サービスオブジェクトにアクセスする必要があります。クラスタは仮想IP、仮想クラスタサービスを介して内部IPアクセスに対応して内の各サービスが有効になります。K8Sでマイクロクラスター負荷分散サービスはKUBE-プロキシによって実装されています。KUBE-プロキシは、内部K8Sクラスタロードバランサです。これは、各ノード上の分散プロキシサーバがのK8Sを持っている、デザインはその柔軟性の利点を反映して、より多くのノードは、多くののKUBE-プロキシ負荷分散機能を提供するサービスにアクセスする必要があり、高可用性ノードも増加します。これとは対照的に、我々は通常、負荷分散を行うためにリバースプロキシサーバーを行うだけでなく、さらにリバースプロキシの問題を高可用性と負荷分散に対処します。

    タスク(仕事)

    ジョブのAPIはK8Sは、バッチ式のタスクを制御するために使用されるオブジェクト。バッチおよび長期的なビジネスのサーボ事業の主な違いは、最初から最後までバッチ操作を実行することで、長期的なビジネスサーボが停止することなく、ユーザーのなしに永遠に実行します。ジョブ管理ポッドは、あなたの設定に応じて成功し、自動的に撤回タスクを完了しました。異なるに従ってマークが正常に完了 spec.completionsの 戦略は異なっている:シングルタスクタイプポッドポッド完全な成功のシンボルがあり、一連のタスクの数N型タスクの成功を確実にするために成功している。正常に適用作業キュータイプのタスクに応じて世界的に認められたとロゴ成功。

    背景支援サービスセット(DaemonSet)

    サーボ・長期コアバッチ型サービスビジネスアプリケーションでは、複数のノードポッドを実行するための事業のいくつかの種類があるかもしれない、といくつかのノード上で実行していないようにポッド、およびコアの懸念バックサポートサービスノードクラスタK8Sで(物理または仮想マシン)、各ノードは、ランポッドことを保証しなければなりません。ノードは、すべてのクラスタノードもnodeSelector特定のノードによって選択することができるかもしれません。典型的なバックグラウンド支持型サービスは、ストレージ、ロギング及び各ノード上で実行されている監視サポートサービスK8Sクラスタを含みます。

    ステートフルサービスセット(PetSet)

    K8Sは、バージョン1.3でPetSet機能のアルファ版をリリースしました。クラウド・システム・アプリケーションの元の緑色、同義語次の2セットがあり、最初のグループはステートレス(ステートレス)、家畜(牛)、名前(無名)、(使い捨て)使い捨てであり、第二のセット状態(ステートフル)があります、ペット(PET)、知られている(た名前)、(非使い捨て)廃棄されていません。別の場所にRCおよび制御、主にステートレスなサービスを提供するために、RS、それはポッドの名前を制御がランダムに設定されているポッドの失敗を捨て、新たに再スタートポッド、名前が変更されている、と名前ここで、開始することが重要ではなく、重要なポッドの総数とPetSetは、ステートフルなサービスを制御するために使用され、ポッド内PetSetのそれぞれの名前は、事前に決定され、変更することはできません。ポッドの名前ではなく、人類の原因でPetSetの役割は、「千と千尋の神隠し」が、ポッドは、対応する状態に関連付けられています。
    でPetSetため、RCおよびポッド内のRSのために、一般に、共有メモリ・ストレージをマウントまたはマウントしない、保存がポッド、PODが(実際に人間の特性の損失を意味すると思われる)牛が好きされていないすべての状態で共有されています障害がポッド、ポッド、ポッドがその状態にサービスを提供し続けるために、元のストレージに搭載される他のノードからの同じ名前の開始を生じた場合ポッド、各ポッドは、それ自体の別個のストレージをマウントします。
    PetSetのビジネス・サービスのための適切なのは、こうしたステートフルなサービスとしてetcdデータベースのMySQLとPostgreSQL、クラスタリング管理サービスの飼育係があります。別の典型的なアプリケーションシナリオPetSet従来のアナログ仮想マシンコンテナよりも信頼性が高いなどの機構。それはペットの状態の一種である伝統的な仮想マシン、運用、保守担当者が絶えず、それを維持するために必要な血管が人気となったちょうどその時、私たちが使用する仮想マシンをシミュレートするための容器を使用し、すべての状態は、コンテナに格納されていることが示されていますそれは信頼できない、非常に危険です。使用PetSet、依然として異なるノードによって提供されているポッドはまたPetSetが決定されないストレージ関連状態と判断ポッドの連続性を確保するために、ストレージ・プラグインによって提供することができる高可用性、ストレージおよび高信頼性にシフトします。デザインは進化の後ろPetSetはまだのみアルファ段階で、我々は観察していきます。

    クラスタ連邦(連合)

    K8Sは、バージョン1.3で連合機能のベータ版をリリースしました。クラウドコンピューティング環境では、近くから遠くの距離に至るまでのサービスの役割は、一般的に以下のとおりです。地域のサービスで利用可能なエリアと同じ地域(リージョン)全体で使用可能な領域(使用可能なゾーン)と同じホスト(ホスト、ノード)、クロスホスト、ビジネス(クラウド・サービス・プロバイダー)、クロスプラットフォームの雲。ネットワークのパフォーマンスは、スケジューリングおよびストレージ接続要件K8Sの計算の同じ領域を満たすようにするのでK8Sデザインのポジショニングは、同じ地理的エリア内の単一のクラスタです。ジョイントクラスタサービスは、地域K8Sクラスタサービスおよび設計全体のクロスサービスプロバイダを提供することです。
    各K8S連盟は、独自の分散ストレージ、APIサーバとコントローラマネージャを持っています。ユーザーは連盟K8SのクラスタAPI Serverによって連盟のメンバーで登録できます。APIサーバーの連盟を介してユーザーが作成する場合は、APIオブジェクトを変更、フェデレーションAPIサーバーAPIオブジェクトは、そのサブK8Sクラスタのすべてに該当する登録を作成しているだろう。サービス要求のサービスを提供する際に、K8S連盟は、まず彼らの様々なサブクラスタのロードバランシングの間、および特定のK8Sクラスタサービス要求に送信するために同じ独立K8Sクラスタサービススケジューリングモードに従って行くだろう内部K8Sクラスタのロードバランシングを行います。クラスタ間の負荷分散は、負荷分散、ドメインネームサービスを通じて達成されます。
    それは、すべての既存のコード機構がK8Sを必要としないことを意味し、すなわち、K8Sフェデレーションを持つすべては、各サブK8Sクラスタに対して、外層のより多くを必要としないので、既存のメカニズムが働く影響K8Sクラスタを最小化するように設計されています連盟ので、任意の変更を備えています。

    ストレージボリューム(音量)

    K8Sストレージボリュームのドッカーのやや似ストレージ・ボリュームが、コンテナに至るまでドッカーのストレージボリュームの役割、およびライフサイクルとスコープを持つK8Sクラスタストレージのボリュームはポッドです。ポッドストレージボリュームはそれぞれの容器の全てによって共有ポッドを宣言しました。K8Sは特にAWS、GoogleやAzureのクラウドを含むパブリック・クラウド・ストレージ・プラットフォーム、各種の支援では、ストレージボリュームの非常に多くの種類をサポートしています。分散ストレージの様々なサポートGlusterFSとセファロが挙げられ、また、ローカルディレクトリのホストパスを使用するメインフレームより簡単にサポートしていますおよびNFS。ユーザは、実際のメモリ記憶技術の背景(例えばAWS、GoogleやGlusterFSおよびセファロ)を無視して、実際の構成に関連する技術を格納することができるようにK8Sはまた、PVC、ストレージの、すなわち、使用永続ボリュームクレーム・この論理ストレージをサポートストレージ管理者による永続ボリュームを設定します。

    永続ストレージ・ボリューム(永続的なボリューム、PV)、および永続ストレージボリューム声明(永続的なボリュームクレーム、PVC)

    PVとPVCは、論理的な構成ポッドの設定は、そのクラスタマネージャをPVに仕事の形状によって構成され、実際のバックエンド・ストレージ・テクノロジーを、無視することができるようにK8Sクラスタは、抽象的論理的なストレージへの能力を持っています。PVとノードとポッド計算の関係で、この関係PVC、の貯蔵は非常に類似しており、PV、ノードがリソースのプロバイダであり、インフラストラクチャは、クラスタ内の変化に応じて変化する、K8Sによって構成されたクラスタ管理者、およびPVCそして、ポッドは、リソースユーザーである、オンデマンド・ビジネスサービスの変化に応じて、サービスを設定するには、K8Sクラスタ管理者のユーザーを持って変化します。

    ノード(ノード)

    ノードによって提供さK8Sクラスタコンピューティングパワーは、ノードは、もともと後、サービスノードミニオンと呼ばれるノードと改名されました。K8Sクラスタノードは、ちょうど同様Mesosクラスターのスレーブ・ノードは、物理マシンまたは仮想マシンすることができポッドが実行されているすべてのホストを、働いています。それは物理マシンまたは仮想マシンであるかどうかを、統一的な特徴は、kubelet管理ノードを実行するためのコンテナの上に実行しているホストの仕事です。

    Keyオブジェクト(シークレット)

    秘密は維持し、これらのオブジェクトに機密情報のパスワード、キー、認証資格情報を渡すために使用されます。秘密を使用する利点は、明示設定ファイルに機密情報を回避書かれています。設定およびサービスを使用すると、必然的にAWSのストレージにアクセスするためのユーザー名やパスワードなど、K8Sクラスタ内の機密情報のログオン、認証およびその他のさまざまな機能を実現するために使用します。すべてのプロファイルで記述されたクリアテキストで同様の機密情報を避けるために使用する必要があり、この情報は秘密のオブジェクトに格納されていてもよいし、設定ファイルに秘密のオブジェクトを介してこれらの機密情報を参照してください。このアプローチの利点は、次のとおりです。重複を避けるために、明確な意図を、雨水管の機会を減らします。

    ユーザーアカウント(ユーザーアカウント)およびサービスアカウント(サービスアカウント)

    名前が示すように、アカウントIDを提供するために、人々、およびサービスアカウントのユーザーアカウントは、クラスタ内で実行されているポッドとK8Sコンピュータプロセスとして特定のアカウントを提供します。ユーザとサービスとの間の差は、その範囲を占め、個人の識別に対応するユーザアカウントに関係なく、名前空間IDおよびサービスのユーザーアカウントは、クロス名前空間であるサービスアカウントは、実行中のプログラムの識別に対応します、それが関連している特定の名前空間を持ちます。

    名前空間(名前空間)

    名前空間はK8S最初のクラスタは、デフォルトの名前空間とデフォルトのシステム名スペースKUBE-システムです2つの名前空間を有し、加えて、管理者は新しい名前空間のニーズを作成することができ、仮想クラスタがK8S隔離されています。

    RBACアクセスの許可

    バージョン1.3のアクセス制御(ロールベースのアクセス制御、RBAC)ライセンスモデルでリリースK8S役割ベースのアルファ版。属性ベースのアクセス制御(属性ベースのアクセス制御、ABAC)に関しては、RBACの役割は、主に(役割)と抽象化(RoleBinding)を結合する役割を導入します。ABACにおいて、K8Sクラスタアクセスポリシーのみ直接ユーザに関連付けることができ、およびRBACアクセスポリシーに役割に関連する1つまたは複数のユーザーと、特に、役割に関連付けることができます。明らかに、RBACは、他の新機能と同様に、新機能の導入毎回のように、このように抽象化の新しい概念を導入し、新しいAPIオブジェクトを紹介しますが、この新しいコンセプト抽象クラスタサービスは、簡単に管理するために作成し、拡張し、再利用するために使用されます。

おすすめ

転載: www.cnblogs.com/networking/p/11769610.html