・GKEとは
・GKEの特徴
・GCEが利用されている
・GCPとの連携
・グルーピングが可能
・その他Kubernetesサービス
・AKS
・EKS
GKEとは
GKE(Google Kubernetes Engine)とは、Googleが提供するKubernetes管理サービスで、2015年にリリースされました。
他のKubernetes管理サービスに比べて、最も早くサービスが開始されている。
そのため、管理サービスとして数多くの便利機能が備えられている。
例えば、
・リリースチャンネルやノードの自動アップデート機能
・ノードの自動修復機能
・ノードのインスタンスタイプを自動的に決定してくれるノードの自動プロビジョニング機能
など、Kubernetesクラスタの管理を助ける機能が多く用意されているため、クラスタ自体の運用負荷を大幅に下げることが可能です。
GKEの特徴
GKEは当然ながらGoogleが開発しているため、Googleが保有している他のサービスとの連携によって、より多くのサービスを提供しています。
GCE(Google Compute Engin)が利用されている
GKEでは、Kubernetes NodeにGCE(Google Compute Engin)が利用されています。
また、GCEにはプリエンティブルインスタンスと呼ばれる、起動時間に24時間制約がある低コストなインスタンスが用意されており、Kubernetes Nodeとして利用できます。
GCP(Google Cloud Platform)の各種機能と連携されている
また、GCP(Google Cloud Platform)の各種機能とのインテグレーションが行われているため、GCPの機能を使用することができます。
例えば、Cloud Loggingとはデフォルトで連携されており、コンテナから出力されるログを収集しています。
他にも高性能なHttp Load BalancerやGPUを利用できるのも特徴です。
NodePoolでグルーピングが可能
GKEにはNodePoolという重要な機能があります。
これは、Kubernetesクラスタ内のノードに対してラベル付けをしておくことで、グルーピングをしてくれる機能です。
例えば、
「vCPU数の多いノード」や「メモリ容量の多いノード」のようにマシン性能が異なるノードをクラスタに混在させ、
NodePoolによるラベル付けをしておくことで、コンテナのスケジューリング時にデプロイ先の制約条件にすることが可能です。
他にもノードをグルーピングしておくことでワークロードの混在を防ぐなど、
どういった種類のノードをどれくらいの数でクラスタを構成するかの制御も可能です
その他Kubernetesサービス
一番早くサービスを提供し始めたのはGKEですが、MicrosoftやAmazonなども続いてKubernetesの管理サービスを提供しています。
AKS(Azure Kubernetes Service)
Microsoftが提供するAKS(Azure Kubernetes Service)は、Microsoft Azure上で動作するKubernetes管理サービスで、2018年ごろにサービス開始されました。
Azure Active DirectoryをKubernetesロールベースのアクセス制御と連携する機能や、
AKSクラスタのリソースが不足した際にVirtual Kubeletを利用してAzure Container Instances上にパースする機能を備えています。
EKS(Elastic Kubernetes Service)
Amazonが提供する、AWSのKubernetes管理サービスで、2017年にリリースされた。
IAM(Identity and Access Management)とKubernetesのユーザーを紐づけることで、IAMをベースとして権限を管理する機能があります。
PodのNetworkとAWS VPCのSubnetがネイティブ接続されていることで、VMからコンテナに直接疎通可能なネットワーク構成が可能です。
また、Amazon CloudWatch logsやAWS CloudTrailと連携したロギングなど、AWSのサービスと連携した機能が使用できます