Kubernetes とは?
Kubernetes は、広く使用されているコンテナー オーケストレーション ツールとなっているオープンソース プロジェクトであり、マルチコンテナー アプリケーションの大規模な展開と管理を可能にします。主要なコンテナ化プラットフォームである Docker で一般的に使用されていますが、コンテナ イメージのフォーマットとランタイムに関する Open Container Initiative (OCI) 標準に準拠している任意のコンテナ システムと互換性があります。オープンソースの性質と最小限の使用制限により、オンプレミス、パブリック クラウド、またはその両方の組み合わせなど、任意の場所でコンテナーを実行したい人なら誰でも自由に利用できます。
Kubernetes の利点は何です か?
自動操作:
Kubernetes には、アプリケーション管理に必要な作業の大部分を処理するコマンドが組み込まれているため、日常業務の自動化が可能になり、アプリケーションが意図したとおりに実行されます。
インフラストラクチャの抽象化:
Kubernetes はワークロードのコンピューティング、ネットワーキング、およびストレージを処理するため、開発者は基盤となる環境を心配することなくアプリケーションに集中できます。
サービスの状態の監視:
Kubernetes は、サービスの正常性を常に監視し、失敗または停止したコンテナーを再起動し、サービスが実行されていることが確認された場合にのみ、ユーザーがサービスを利用できるようにします。
Google と Kubernetes
Kubernetes は Google のプロジェクトとして始まりました。これは、社内で使用されていた以前のコンテナー管理ツールである Google Borg の後継です。 Google は 2014 年に Kubernetes をオープンソース化しました。これは、Kubernetes によって促進される分散型マイクロサービス アーキテクチャにより、クラウドでのアプリケーションの実行が容易になるためです。 Google は、コンテナ、マイクロサービス、および Kubernetes の採用が、顧客がクラウド サービスを使用する潜在的な原動力になると考えています。ただし、Azure および AWS でも機能します。 Kubernetes は現在、Linux Foundation の下にある Cloud Native Computing Foundation によって維持されています。
Kubernetes 対 Docker
Kubernetes と Docker は、コンテナー化されたアプリケーションを実行するための異なるが補完的なテクノロジである場合、相互に排他的な代替手段と して誤って認識されることがよくあります。
Docker を使用すると、アプリケーションを実行するために必要なすべてのものを、保存して開くことができるコンテナーにパッケージ化できます。アプリケーションのパッケージ化を開始したら、アプリケーションを管理する手段が必要になります。そこで登場するのが Kubernetes です。
ギリシャ語で「船長」を意味する Kubernetes は、船の船長のような役割を果たし、コンテナを必要な場所に安全に輸送して届ける責任があります。
- Kubernetes は単独で、または Docker と組み合わせて使用できます
- Docker は代替手段ではなく、通常、Kubernetes と一緒にアプリケーションをコンテナ化して大規模に実行するために使用され、「Kubernetes と Docker」の比較ではありません。
- Docker と Kubernetes の違いは、アプリケーションのコンテナー化と実行におけるそれぞれの役割にあります。
- Docker は、アプリケーションをコンテナーにパッケージ化および配布するためのオープンな業界標準です。
- Kubernetes は Docker を使用して、コンテナー化されたアプリケーションをデプロイ、管理、スケーリングします。
Kubernetes は何に使用されますか?
Kubernetes を利用して、どこにでもデプロイできる管理可能なアプリケーションを作成します。 Kubernetes は、マネージド サービスとして提供される場合、ニーズに合わせてさまざまなオプションを提供します。一般的な使用例には次のものがあります。
開発速度の向上
Kubernetes は、クラウド ネイティブのマイクロサービス ベースのアプリの構築を支援し、既存のアプリのコンテナー化をサポートすることで、アプリケーションをモダナイズし、開発を高速化するための基盤となります。
アプリケーションをどこにでもデプロイ
Kubernetes はどこでも使用できるように設計されており、アプリケーションをオンプレミス、パブリック クラウド、およびハイブリッド展開で実行できるようにし、必要な場所でアプリケーションを実行できるようにします。
効率的なサービスの実行
Kubernetes は、サービスの実行に必要なクラスターのサイズを自動的に調整できるため、需要に基づいてアプリケーションを自動的にスケーリングし、効率的に実行できます。
Kubernetes アーキテクチャとその仕組み?
コンテナーは、デプロイが簡単で、どこにでも移植できる形式でアプリケーションをカプセル化します。 Kubernetes アーキテクチャは、コンテナー化されたアプリケーションを実行するために構築されています。 Kubernetes クラスターは、少なくとも 1 つのコントロール プレーンと少なくとも 1 つのワーカー ノード (通常は物理サーバーまたは仮想サーバー) で構成されます。
コントロール プレーンの主な役割は、API サーバーを介して Kubernetes API を公開し、クラスターを構成するノードを管理することです。コントロール プレーンは、クラスター管理に関する決定を下し、クラスター イベントを検出して応答します。 Kubernetes で実行されるアプリケーションの実行の最小単位は、1 つ以上のコンテナーで構成される Kubernetes Pod です。 Kubernetes Pod はワーカー ノードで実行されます。