【クラウド】GKE(Google Kubernetes Engine)の概要まとめ

GCP

Google Cloud Platformで使用するGoogle Kubernetes Engineの概要をまとめました。

GKE の概要  |  Google Kubernetes Engine (GKE)  |  Google Cloud
Google Kubernetes Engine(GKE)は、Google Cloud にコンテナ化されたアプリケーションをデプロイするためのマネージド Kubernetes サービスです。

Kubernetesの概要

Kubernetesはクーバーネティス、クベネティスなどと読み、k8sなどと書きます。

Kubernetesはコンテナをクラスター化させて管理することのできるソフトウェアです。

Google Kubernetes Engineの機能

Google Kubernetes Engineのドキュメントは以下です。

Google Kubernetes Engine のドキュメント  |  Google Kubernetes Engine (GKE)  |  Google Cloud
クラウド コンテナ管理

上記ドキュメントを参考に、GKEの機能をまとめました。

  • GKEはKubernetesなので、コンテナのクラスターの作成が可能
  • コンテナ上にアプリをデプロイ
  • 自動スケーリング
  • 詳細なネットワーク設定
  • データベースのデプロイ

クラスターの作成

Kubernetesはコンテナのクラスター管理ができるソフトウェアです。

以下の公式ドキュメントにGKEのクラスターのアーキテクチャ(構造)についてまとめてあります。

GKE クラスタのアーキテクチャ  |  Google Kubernetes Engine (GKE)  |  Google Cloud
Google Kubernetes Engine(GKE)クラスタのアーキテクチャ。コントロール プレーン、ノード、ノードタイプ、およびそれらのコンポーネントが含まれます。

図を引用します。

「Nodes」に記載されている「User Pod Containers」が各コンテナです。Control PlaneでGKEのストレージ設定やスケジューラ、CPU・メモリ等のリソース管理を行っています。Connected Google Servicesで詳細なネットワークの設定を行います。

イメージとしては、Control PlaneがハードウェアやOSのような機能のことで、Connected Google Servicesがネットワークの設定になります。

Control Planeはクラスタの統合エンドポイントと呼ばれ、 HTTP/gRPCで直接呼出し、kubectlなどのコマンドでの間接呼び出しを行います。

各ノードの管理について

GKEではノードの管理を以下から選択することができます。

  • Autopilotモード
  • Standardモード

上記の詳細は以下のGoogle公式ドキュメントでまとめられてます。

GKE のオペレーション モードを選択する  |  Google Kubernetes Engine (GKE)  |  Google Cloud
オペレーションの GKE クラスタモードを比較して、自分のニーズに最適なものを見つけてください。

GKEではAutopilot モードが推奨されています。

AutopilotモードとStandardモードの違いは、AutopilotモードはGKEが「ノード構成、自動スケーリング、自動アップグレード、ベースライン セキュリティ構成、ベースライン ネットワーキング構成など」を自動で管理してくれるのに対して、Standardモードは「個々のノードの構成を含め、基盤となるインフラストラクチャをユーザーが管理」するモードということです。

GKEのAutopilotモードとStandardモードの比較は以下のドキュメントで確認できます。

GKE Autopilot と GKE Standard の比較  |  Google Kubernetes Engine (GKE)  |  Google Cloud

GKEのネットワーク設定

GKEのネットワーク設定の概要は以下のページから確認できます。

ネットワークの概要  |  Google Kubernetes Engine (GKE)  |  Google Cloud
このガイドでは、Google Kubernetes Engine(GKE)でのネットワーキングについて説明します。

公式ドキュメントがもっとも詳細に記載されているため、詳しくは上記のドキュメントを確認することをおすすめします。以下では上記ドキュメントからの一部の内容を引用して情報をまとめました。

KubernetesのIPアドレスについて

Kubernetesでは以下の種類のIPアドレスを使用します。

ClusterIPサービスに割り当てられた IP アドレスのこと。このアドレスは Service の存続期間中は不変。
Pod IP アドレス特定の Pod に割り当てられた IP アドレスのこと。Pod IPアドレスは一時的なもの。
ノード IP アドレス特定のノードに割り振られた IP アドレスのこと。

Podのネットワーク設定について

図を引用します。

Kubernetes は、ノード上の Pod 用に予約されたアドレスの範囲から、Pod のネットワーク名前空間内の仮想ネットワーク インターフェースに IP アドレス(Pod IP アドレス)を割り当てます。このアドレス範囲は、Pod のクラスタに割り当てられる IP アドレス範囲のサブセットで、これはクラスタ作成時にも構成できます。

Kubernetesでのネットワークの設定について、上記の図を参照すると、ノード自体のIPアドレスは10.240.0.10ですが、PodのIPアドレスが10.255.255.101と0.255.255.102になっています。

Podは図のNode Interface: eth0のような物理的なインターフェースに接続されてPod間でのやり取りができるようになります。

GKEのServiceとネットワーク設定について

図を引用します。

GKEでは、上記の図のようにサービスをPod A、Pod Bのように複数のコンテナにトラフィックを分散して処理を行います。

一見すると、サービスはアプリケーションにとって単一の障害点のように見えます。ただし、Kubernetes は、多数のノードで実行されているすべての Pod にできるだけ均等にトラフィックを分散させます。このため、クラスタは、1 つ以上のノード(すべてではない)に影響する停止に耐えることができます。

タイトルとURLをコピーしました