メインコンテンツまでスキップ

Kubernetes の概念

ハンズオンラボに入る前に、Kubernetes がどのように機能するか、そしてこのワークショップを通じて使用するツールを理解することが重要です。このセクションでは、EKS 学習の基礎となるコアアーキテクチャ、主要コンポーネント、デプロイメントツールを紹介します。

始める前に

このセクションの環境を準備します:

~$prepare-environment introduction/basics

Kubernetes アーキテクチャ概要

Kubernetes は コントロールプレーンとワーカーノードのアーキテクチャに従っており、コントロールプレーンがクラスターを管理し、ワーカーノードがワークロードを実行します。

Kubernetes Cluster Architecture 図: 簡略化された Kubernetes クラスターアーキテクチャ

コントロールプレーンコンポーネント

コントロールプレーンはクラスターに関するグローバルな決定を行い、システムの望ましい状態を保証します。

  • API Server — Kubernetes のフロントエンドとして機能し、ユーザーとコンポーネントに Kubernetes API を公開します。
  • etcd — すべてのクラスターデータを保持する高可用性のキーバリューストアです。
  • Scheduler — リソースの可用性と制約に基づいて、Pod をノードに割り当てます。
  • Controller Manager — クラスターの健全性を維持し、実際の状態と望ましい状態を調整するバックグラウンドプロセス(コントローラー)を実行します。

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

各ノードは Pod をホストし管理するために必要なコンポーネントを実行します。

  • kubelet — コントロールプレーンと通信し、コンテナが期待どおりに実行されていることを確認します。
  • Container Runtime — コンテナを実行します(例: containerd、CRI-O)。
  • kube-proxy — ネットワークルールを維持し、Pod とサービス間の通信を管理します。

Amazon EKS アーキテクチャ

Amazon Elastic Kubernetes Service (EKS) は、クラスター運用を簡素化するマネージド Kubernetes サービスです。 コントロールプレーンの管理、アップグレード、高可用性を担当するため、ワークロードに集中できます。

EKS では以下が可能です:

  • 運用オーバーヘッドを削減してアプリケーションをより迅速にデプロイ
  • 変化するワークロードに対応するためにシームレスにスケール
  • AWS IAM とマネージドアップデートを使用してセキュリティを強化
  • コンピューティングモデルを選択 — 従来の EC2 ノードまたは EKS Auto Mode によるサーバーレス

責任共有モデル

Amazon EKS では:

  • AWS がコントロールプレーンを管理 — API Server、etcd、Scheduler、コントローラーを含みます。
  • お客様がワーカーノードを管理 — アプリケーションが実行される EC2、Fargate、またはハイブリッドオプション。
  • AWS サービスがネイティブに統合 — ロードバランサー、IAM ロール、VPC ネットワーキング、ストレージを含みます。

Amazon EKS Architecture 図: Amazon EKS アーキテクチャと AWS サービスとの統合

覚えておくべき重要なポイント

Kubernetes アーキテクチャを理解することは、効果的なクラスター管理とトラブルシューティングに不可欠です:

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

  • コントロールプレーンコンポーネント(API Server、etcd、Scheduler、Controller Manager)は、クラスター全体の決定と状態管理を処理します
  • ワーカーノード(kubelet、Container Runtime、kube-proxy)は、アプリケーションの実行とネットワーキングに重点を置いています
  • この分離により、スケーラブルで回復力のあるクラスター運用が可能になります

EKS の利点

  • 運用負荷の軽減 — AWS がコントロールプレーンの複雑性、パッチ適用、高可用性を管理します
  • ネイティブな AWS 統合 — VPC、IAM、Load Balancers、その他の AWS サービスとのシームレスな接続
  • 柔軟なコンピューティングオプション — ワークロードのニーズに基づいて EC2、Fargate、または Auto Mode から選択

設計原則

  • 宣言的な設定 — 望ましい状態を定義し、Kubernetes コントローラーがそれを達成するために動作します
  • API 駆動 — すべてのインタラクションは一貫性と監査可能性のために Kubernetes API を経由します
  • 拡張可能 — カスタムリソースとコントローラーにより Kubernetes の機能を拡張できます

これらのアーキテクチャの概念は、アプリケーションのデプロイ、Helm と Kustomize による設定管理、高度なクラスター機能の実装を進めていく上で不可欠です。