アーキテクチャ

GKE(Google Kubernetes Engine)とは?GKEの特徴やその他Kubernetesサービスを紹介

GKE(Google Kubernetes Engine)とは、Googleが提供するKubernetes管理サービスで、2015年にリリースされました。
他のKubernetes管理サービスに比べて、最も早くサービスが開始されている。
そのため、管理サービスとして数多くの便利機能が備えられている。
例えば、
・リリースチャンネルやノードの自動アップデート機能
・ノードの自動修復機能
・ノードのインスタンスタイプを自動的に決定してくれるノードの自動プロビジョニング機能
など、Kubernetesクラスタの管理を助ける機能が多く用意されているため、クラスタ自体の運用負荷を大幅に下げることが可能です。

Kubernetesとは?何ができるのか解説!Kubernetesとは?何ができるのか?どういったサービスで使えるのか解説します。...


GKEは当然ながらGoogleが開発しているため、Googleが保有している他のサービスとの連携によって、より多くのサービスを提供しています。

GKEでは、Kubernetes NodeにGCE(Google Compute Engin)が利用されています。
また、GCEにはプリエンティブルインスタンスと呼ばれる、起動時間に24時間制約がある低コストなインスタンスが用意されており、Kubernetes Nodeとして利用できます。

また、GCP(Google Cloud Platform)の各種機能とのインテグレーションが行われているため、GCPの機能を使用することができます。
例えば、Cloud Loggingとはデフォルトで連携されており、コンテナから出力されるログを収集しています。
他にも高性能なHttp Load BalancerやGPUを利用できるのも特徴です。

GKEにはNodePoolという重要な機能があります。
これは、Kubernetesクラスタ内のノードに対してラベル付けをしておくことで、グルーピングをしてくれる機能です。
例えば、
「vCPU数の多いノード」や「メモリ容量の多いノード」のようにマシン性能が異なるノードをクラスタに混在させ、
NodePoolによるラベル付けをしておくことで、コンテナのスケジューリング時にデプロイ先の制約条件にすることが可能です。
他にもノードをグルーピングしておくことでワークロードの混在を防ぐなど、
どういった種類のノードをどれくらいの数でクラスタを構成するかの制御も可能です


一番早くサービスを提供し始めたのはGKEですが、MicrosoftやAmazonなども続いてKubernetesの管理サービスを提供しています。

Microsoftが提供するAKS(Azure Kubernetes Service)は、Microsoft Azure上で動作するKubernetes管理サービスで、2018年ごろにサービス開始されました。
Azure Active DirectoryをKubernetesロールベースのアクセス制御と連携する機能や、
AKSクラスタのリソースが不足した際にVirtual Kubeletを利用してAzure Container Instances上にパースする機能を備えています。

Amazonが提供する、AWSのKubernetes管理サービスで、2017年にリリースされた。
IAM(Identity and Access Management)とKubernetesのユーザーを紐づけることで、IAMをベースとして権限を管理する機能があります。
PodのNetworkとAWS VPCのSubnetがネイティブ接続されていることで、VMからコンテナに直接疎通可能なネットワーク構成が可能です。
また、Amazon CloudWatch logsやAWS CloudTrailと連携したロギングなど、AWSのサービスと連携した機能が使用できます