Kubernetesの起源と運用プロセス

Kubernetesの起源と運用プロセス

  [[399278]]

[51CTO.com クイック翻訳] Kubernetes は、現代のマイクロサービスで最も有名なテクノロジーの 1 つです。コンテナ化されたアプリケーションのマイクロサービス クラスターの管理をよりシンプルかつ自動化することを目的としています。この記事では、このコア テクノロジーがどのように機能するかについての概念的な詳細を紹介します。

Kubernetesについて考える便利な方法は、コンテナ用の分散オペレーティング システムとして考えることです。 Kubernetes は、コンテナ (最も一般的には Docker コンテナ) と、その上で実行されるインフラストラクチャ コンテナの相互作用とスケーリングを調整するために必要なツールとコマンドを提供します。 Kubernetesは、さまざまなシナリオ向けに設計された汎用ツールです。非常に柔軟ですが複雑なシステムです。

Kubernetes ワーカーノードとコントロールプレーン

Kubernetesには、ワーカー ノードとコントロール プレーンの 2 つの側面があります。ワーカー ノードは、実際のコンテナ化されたアプリケーションと、必要なKubernetesツールが存在する場所です。コントロール プレーンは、クラスターを管理するためのツールが存在する場所です。図 1 は、このアーキテクチャの概要を示しています。


図 1. Kubernetes ワーカーノードとコントロールプレーン

図 1 に示すように、アーキテクチャは、ワークロードの実行と管理ツールの実行を担当するワーカー ノードとヘッド ノードに分かれています。

どちらの場合も、ノードは仮想マシンまたは実際のマシンで実行されます。

Kubernetes ワーカーノードとワークロードのスケーリング

Kubernetes の基盤となるインフラストラクチャは、ワーカー ノードのワークロードを実行するときに使用できるリソース (コンピューティング、メモリ、ディスク、ネットワーク) ですが、それらを直接制御するわけではないことに注意することが重要です。 Kubernetesはワークロードのスケーリングを担当しますが、パブリック クラウドの自動スケーリングや手動介入などの高レベルのメカニズムがノードの可用性の調整を担当します。したがって、コントローラーを使用して外部システムと対話することができます。

Kubernetes ワーカーノードのコンポーネント

図 2 は、Kubernetes ワーカー ノードの基本要素を示しています。

図 2. Kubernetes ワーカーノードの詳細

クベレット

Kubelet は、ワーカー ノード上で実行され、コントロール プレーンとノード間のバランスをとる役割を果たす「小さな」プログラムです。 kubelet の主な目的は、ポッド上のヘッドノード クラスターからの命令を実行し、ワークロードの現在のステータスを報告することです。

Kube プロキシ

Kube Proxy は、ノード上でネットワーク ルールを適用し、ノードに出入りするトラフィックを許可する役割を担います。

Kube Proxy は、クラスター レベルで動作し、クラスターへのネットワーク ルーティング ルールを定義する Ingress とは異なります。

ポッド

ポッドは、ノード上で複製される個別の作業単位です。これらは、1 つ以上のコンテナ化されたアプリケーションをカプセル化する抽象化です。ポッドは、一緒に実行されるコンテナをグループ化して分離することができ、同じマシン上のポッドは相互に通信することもできます。コンテナとポッドの関係は、Kubernetes デプロイメント記述子によって制御されます。

デプロイメントとレプリカセット

ポッドは通常、ReplicaSet の一部として構成およびデプロイされます。 ReplicaSet は、Pod の望ましい実行時特性を定義し、Kubernetes がその状態を維持するように動作するように動作します。 ReplicaSet は通常、Deployment によって定義され、ReplicaSet パラメータと、クラスターを管理するときに使用する方法 (つまり、ポッドが更新されるか再作成されるか) を定義します。

サイドカー

Pod レベルでは、サイドカー プラグインを介して追加機能が実装されます。 Sidecar は、Pod レベルのログ記録や情報収集などのタスクを処理できます。

図 3 はワーカーノード内のポッドをより詳細に示しています。

図3. Kubernetes Podの詳細

Kubernetes コントロールプレーン

次に、コントローラー側に移り、Kubernetes がどのように動作してクラスターの動作を制御するかを理解します。

図 4 はヘッド ノードのコンポーネントの詳細を示しています。

図4. Kubernetesヘッドノードの詳細

その他

最も理解しやすいコンポーネントは etcd (「エトシーディー」と発音) です。 Etcd は、クラスター全体の構成とステータス レコードのデータベースとして機能する分散オブジェクト ストアです。

API サーバー

API サーバーは、クラスターの中心的な通信メカニズムです。 API サーバーは、kubectl などのKubernetesコマンドライン ツールやその他の UI を通じて構成変更を適用するときに、コントロール プレーン、ワーカー ノード、および管理者間のやり取りを仲介します。

スケジューラ

スケジューラは、ポッドが実行されるノードを識別する役割を担います。使用されるアプローチは、ポッドの特性と利用可能なノードの既存の状態によって異なりますが、目標はカスタム ライティングのレベルを達成することです。スケジューラは、作業を実行するときに API サーバーと対話します。

コントローラ

コントローラー コンポーネントは、クラスターを構成時に望ましい状態に維持し、クラスターが制御不能になった場合にその状態に移行する役割を担います。コントローラーは一種のサーモスタットのように機能し、望ましい状態を指定してそれを維持するように動作します。
Kubernetesでは、etcd に永続的なエンティティを記録するオブジェクトを作成できます。次に、コントローラーは、オブジェクトに必要なプロパティがあることを確認するためのアクションを実行します。

たとえば、ReplicaSet (上記で説明) は標準定義に基づいてポッドを実行します。そのレプリカセットに対するクラスターの実際の状態が状態です。 ReplicaSet はオブジェクトであり、指定されたポッド数は spec です。この ReplicaSet に関連するクラスターの実際の状態は status です。コントローラーは、クラスターからこの状態に関する一貫したレポートを受信し、ポッドを作成または破棄することで、状態を仕様に合わせるためのアクションを実行します。

コンテナイメージリポジトリ

最後のコンポーネントは、イメージ リポジトリ (イメージ レジストリとも呼ばれます) です。このコンポーネントはクラスターの外部に存在し、管理者とコントロール プレーンがアクセスして必要なコンテナ定義をダウンロードできます。レジストリは、Docker Hub を含むさまざまな組織によってホストされており、パブリックまたはプライベートにすることができます。主要なクラウド プロバイダーはすべて、企業向けにホストされたリポジトリを提供しています。

Kubernetes ルールコンテナ

これで、 Kubernetes のアーキテクチャとKubernetes の実装方法について理解できました。 Kubernetes は、コンテナベースのアプリケーションをデプロイ、管理、拡張するシステムであり、単純なシステムではありません。 Kubernetes は、予期しない状況にも対処できるよう、高度な構成と柔軟性を備えています。

Kubernetes は、現在のソフトウェア アーキテクチャ アプローチで最も顕著なテクノロジーの 1 つです。したがって、DevOps、コンテナ、クラウドネイティブ アプリケーション、マイクロサービス アーキテクチャに関心のある人にとって、 Kubernetesの知識は不可欠です。

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  より小さなコンテナを構築する方法

>>:  エッジコンピューティングと5Gが将来のチャネルビジネスに与える影響

推薦する

Baidu と Google の検索エンジンは SEO 不正行為をどのように判断するのでしょうか?

この記事は、 SEO不正行為の方法を使用して不正行為を行う方法を教えるのではなく、主に検索エンジンが...

Kubernetes の混乱から熟練へ: クラスター サービスの 3 つの重要なポイントと 1 つの実装

私の経験では、Kubernetes クラスター サービスの概念を理解するのは簡単ではありません。特に...

クラウドネイティブアーキテクチャ実装ロードマップの分析

クラウドネイティブアーキテクチャシステムには多くのコンテンツが含まれています。マイクロサービス、コン...

WeChatのプロモーションとトラフィック生成、新しいWeChatユーザーを効果的に増やして引き付けるにはどうすればよいでしょうか?

遅ればせながらユーザー成長分裂活動のレビューです。少し時間が経ってしまいましたが、やはり私のクールな...

どのようなウェブサイトを運営すればよいでしょうか?

私が初めてインターネットに触れたとき、インターネットに対する期待は大きく、自分自身のインターネットビ...

2018年世界トップ10クラウドサービスプロバイダーデータセンター建設レイアウト海外クラウドサービス市場

2018 年の第 1 四半期が終わりに近づいていますが、クラウド サービス プロバイダーは時間をかけ...

百度が金のためにやっていること

最近、Baidu では一連の不具合が発生しており、Baidu に根本的な問題があることもわかりました...

ウェブサイト維持戦略とSEO最適化の統一原則

ウェブサイトはどのようにしてユーザーを維持できるのでしょうか。これは非常に奥深いテーマです。私たちは...

ウェブサイトで優れたユーザーエクスペリエンスを実現するための 5 つのヒント

Appleのおかげで、今日の製品やアプリケーションはますますユーザーエクスペリエンスに重点を置くよう...

SEO担当者が注文を受ける際に考慮すべき事項の詳細な説明

現在、ウェブサイトの最適化に取り組んでいる SEO 担当者は数多くいます。インターネット上の専門企業...

ウェブマスターはどのようにすれば改善できるでしょうか?

最近、Baidu に何か問題があることは、ほとんどのウェブマスターがすでに感じていると思います。9 ...

ローカルウェブサイトの不正確な詳細を避け、ローカルウェブサイトの重量の損失を防ぐ

ローカルウェブサイト間の競争は非常に激しく、一部の県では数十のローカルウェブサイトがあります。そのた...

新しいウェブマスターのためのヒント: ウェブサイトのキーワード最適化のヒント

はじめに:インターネットマーケティングは、すべての企業が緊急に解決しなければならない問題です。多くの...

レッスン 2 のメモ: 検索エンジンの基礎と動作原理

みなさんこんにちは。私はSEOの専門家です。数か月間、マッサージ機ランキングサイトwww.yziyu...