技術共有

Kubernetes (k8s) アーキテクチャの仕組み

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kubernetesの概要

  • Kubernetes(k8s): Google がオープンソース化したコンテナ オーケストレーション システム。
  • 名前の由来: Kubernetes には長い単語があり、通常は真ん中の 8 文字が省略され、k8s と呼ばれます。
  • アプリケーション サービスとサーバーの間に位置し、ポリシーを通じて複数のアプリケーション サービスを調整および管理します。
  • YAMLファイルの設定により、アプリケーションの自動デプロイ、自動再起動、自動拡張・縮小を実現します。

Kubernetes アーキテクチャ

  • コントロールプレーン: クラスタの頭脳に相当し、動作中のノードの管理と制御を担当します。

    • コンポーネントには次のものが含まれます。
      • API サーバー: サービスリソースを操作するための API インターフェースを提供します。
      • スケジューラ: リソースのスケジュール決定を担当します。
      • コントローラーマネージャー: アプリケーション サービスの作成とシャットダウンを担当します。
      • など: ストレージ層として、クラスターのステータスとデータを保存します。
  • ワークノード(ノード): クラスターの手と足に相当し、タスクの実行とアプリケーション サービスの実行を担当します。

    • コンポーネントには次のものが含まれます。
      • ポッド: コンテナの実行中のインスタンス、k8s の最小のスケジューリング単位。
      • クベレット: ポッドのライフサイクル管理を担当します。
      • コンテナランタイム: Docker などのコンテナのライフサイクル管理を担当します。
      • Kube プロキシ: ノードのネットワーク プロキシとリクエストの転送を担当します。

Kubernetes の中心的な概念

  • 集まる: コントロール プレーンと複数のワーカー ノードで構成されます。
  • コンテナイメージ: アプリケーション コードと依存環境を含むパッケージ化されたファイル。
  • 容器: アプリケーションサービスの実行単位。
  • ポッド: ネットワークおよびストレージ リソースを共有する 1 つ以上のコンテナのコレクション。

Kubernetes運用ツール

  • kubectl: k8s が提供するコマンド ライン ツールは、k8s API と対話し、サービスの展開と管理を簡素化するために使用されます。

サービスの展開と呼び出しのプロセス

  • 導入サービス: YAML ファイルを作成し、kubectl コマンドを実行してサービスをデプロイします。
  • サービスコール: 外部リクエストは Ingress コントローラー経由でクラスターに入り、Kube プロキシによって対応するポッドに転送されます。

Kubernetes の利点

  • デプロイ、再起動、スケーリングを自動化します。
  • サービスの導入、運用および保守のプロセスを簡素化します。
  • 大規模なコンテナ サービスの管理をサポートします。

要約する

  • k8s は、コントロール プレーンとワーカー ノードの共同作業を通じて、アプリケーション サービスの自動管理とスケジューリングを実現する強力なコンテナ オーケストレーション ツールです。
  • コントロール プレーンは意思決定と命令の発行を担当し、ワーカー ノードはタスクの実行とアプリケーションの実行を担当します。
  • kubectl ツールを通じて、ユーザーは k8s API を簡単に操作して、サービスの迅速なデプロイメントと管理を実現できます。

質問

  • Docker と k8s の関係は何ですか?