Kubernetesをコンテナ運用で活用したいと考えている方の中には、GoogleKubernetesEngine(GKE)というサービスが気になっている方も多いかもしれません。GKEは、あらゆるアプリケーション開発に活用できる、Googleが開発したフルマネージドサービスです。GKEによって、少ない運用負荷でコンテナを効率よく管理できます。
この記事では、GKEの概要と利用するメリット、注意点などを解説します。GKEの基礎知識から活用方法まで網羅できる内容になっているので、ぜひ最後までご覧ください。
GKEとは【Kubernetesをベースとしたフルマネージドのコンテナ自動管理サービス】
GKEの概要とGKEに関連する用語について解説します。GKEは、アプリケーション開発者に注目されている優れたサービスです。GKEの基礎知識を身につけて、サービスの特徴を把握しましょう。
GKE(Google Kubernetes Engine)とは
GKE(Google Kubernetes Engine)は、Kubernetesをベースとするフルマネージドのオーケストレーション(※1)サービスです。GKEの活用により、デプロイ(※2)からスケーリング(※3)、アプリケーションの管理までを自動化でき、セットアップをしなくてもすぐにKubernetesが利用できます。
※1. オーケストレーション:コンテナ化されたアプリケーションの設定・管理・調整を自動化できる仕組みのこと
※2. デプロイ:アプリケーションの機能をサーバーに配置・展開して、利用できる状態にする一連の作業
※3. スケーリング:アプリケーションの負荷に合わせてシステムを拡張・縮小し、パフォーマンスが下がらないようにすること
Kubernetesとは
Kubernetes(クーバネティス)は、コンテナ化されたアプリケーションのデプロイやスケーリング、管理をするオープンソースプラットフォームです。コンテナ技術を利用して、手間のかかる作業を自動化でき、効率的なアプリケーションの運用を実現します。
マスターノードという司令塔の役割を持つサーバーに、YAML(アプリケーションを実行するために必要な構成が記載されたテンプレートファイル)を登録するだけで、Kubernetesがコンテナ管理を実行します。もしKubernetesがなければ、コンテナ間の通信やコンテナの配置、デプロイなどをすべて自分で考えて実行しなければなりません。Kubernetesは、アプリケーション運用の効率化に欠かせないシステムです。
コンテナとは
コンテナとは、アプリケーションの実行に用いるアプリケーション本体と、設定ファイルやライブラリをホストのOS上にまとめたものです。コンテナは1つひとつが独立しており、コンテナ別に開発を進めたり、アップロードしたりできます。
一般的なアプリケーションの実行では、CPUリソースやメモリを使用するゲストOSを起動させなければなりませんが、コンテナであれば、ゲストOSなしでアプリケーションを素早く実行できます。
GKEの料金
GKEの利用料金は、運用モードごとの利用料金とクラスタ管理手数料で決まる仕組みです。GKEには、StandardとAutopilotの2つの運用モードがあり、使用する環境や課金項目によって料金が変動します。また、クラスタ管理手数料は、1クラスタあたり$0.10/時間で決まります。
参照:Google Cloud「Google Kubernetes Engineの料金」
GKEとAutopilotの違い
GKE Autopilotは、2021年2月に発表されたGKEの新しい運用モードです。GKE Autopilotの実装により、従来のGKEは「GKE Standard」という名前に変更されました。2つの運用モードは、基本的な仕組みは同じですが、異なる点がいくつかあります。GKE StandardとGKE Autopilotの違いは、以下の通りです。
GKE Standard | GKE Autopilot | |
---|---|---|
Control Plane | 完全マネージド | 完全マネージド |
ノード | マネージド | 完全マネージド |
課金 | ノード単位 + クラスター管理費用 | Pod 単位 + クラスター管理費用 |
SLA | ノード単位 + Control Plane の SLA | Pod 単位 + Control Plane の SLA |
アップグレード | ・Control Plane :自動 ・ノード:自動 or 手動 |
・Control Plane :自動 ・ノード:自動 |
クラスタタイプ | リージョン or Multi zonal or Single zonal クラスタ |
リージョンクラスタ |
ネットワークタイプ | VPC native cluster or Route based cluster |
VPC native cluster |
GKE Autopilotは、GKE StandardよりもKubernetesを簡単に運用できます。運用モードで迷った場合は、GKE Autopilotを利用してみるとよいでしょう。
GKEの4つの特徴
GKEの特徴は、以下の4つです。
- 各種自動化機能
- アップグレードの負荷軽減機能
- 自動修復機能
- 豊富な周辺サービス
特徴を確認して、GKEの理解を深めましょう。
各種自動化機能
GKEには、Kubernetesクラスタ(※1)をより手軽に運用するための各種自動化機能が備わっています。例えば、スケーリングやアップグレード、修復作業などの自動化が可能です。Kubernetesはアップグレードを度々行っており、GKEはそのアップグレードに自動で対応できる特徴があります。
※1. Kubernetesクラスタ:コンテナ化されたアプリケーションを実行するノード(※2)の集合体のこと
※2. ノード(Node):データ通信の接続を行うための機器や端末のこと
アップグレードの負荷軽減機能
GKEには、アップグレードの運用負荷を低減するための以下のような機能を備えています。
- リリースチャンネル
- 自動アップグレードタイミングの制御
- アップグレードに影響のある構成 / API利用の検知
- ノード手動アップグレードのオプション
Kubernetesは、脆弱性の対応や既知問題の修正、新機能の導入のために、アップグレードを細かい頻度で繰り返します。頻度が多く負荷の大きいアップグレードの作業ですが、GKEを活用すれば、運用負荷の低減が可能です。
自動修復機能
GKEには、ノードの状態がよくないときに自動で検知・修復する「Node Auto Repair」という機能があります。Node Auto Repairにより、利用者がノードの状態を確認したり、復旧作業をしたりしなくてよいため、運用の負担軽減に大きく貢献します。
豊富な周辺サービス
GKEでは、多くの周辺サービスやエコシステム(連携の仕組み)が提供されています。例えば、Kubernetesエコシステムのマネージドサービスとして、Google Cloudでは以下のようなサービスが利用できます。
サービス | 内容 |
---|---|
Google Cloud Managed Service for Prometheus(GMP) | OSSの監視プラットフォームであるPrometheusのマネージドサービス |
Anthos Service Mesh(ASM) | OSSのサービスメッシュプロダクトであるIstioのマネージドサービス |
Policy Controller | OSSのポリシーエージェントであるOPA Gatekeeperのマネージドサービス |
エコシステムの運用は、Kubernetes運用において負担が大きい作業ですが、OSSをマネージドサービスに置き換えれば、運用の負担軽減が可能です。
GKEを利用する4つのメリット
GKEを利用するメリットは、以下の4つです。
- 高いセキュリティ
- 迅速にエラーを発見
- 高い拡張性
- 高いコストパフォーマンス
メリットを確認して、GKEの導入効果を理解しましょう。
高いセキュリティ
GKEを利用するメリットの1つは、高いセキュリティ機能を利用できる点です。GKEは、Googleのセキュリティポリシーに遵守して運用されており、暗号化されたストレージやプライベートクラスタが利用できます。また、コンテナの多層化や分離ができるため、不正アクセスの防止にも役立ちます。
迅速にエラーを発見
GKEは、システム管理者が不在でも、障害発生時に自動で正常な状態へと復旧作業を行います。また「Backup for GKE」を使用すれば、GKE全体のバックアップも可能です。バックアップデータを取得して、クラスタ全体を復元できます。バックアップはスケジュール実行ができ、最小10分単位でスケジュールの設定が可能です。
高い拡張性
GKEは、高い拡張性があるシステムです。例えば、GKE Standardのクラスタあたりの最大ノード数は、15,000になっています。Kubernetes自体がオープンソースであり、あらゆるアプリケーション開発に適用できるため、凡用性が高いという特徴もあります。
高いコストパフォーマンス
GKEは、コストパフォーマンスにおいても優れているシステムです。GKEで正常なコンテナの状態を定義すれば、復旧や改修が自動でできるため、人件費を大幅に削減できます。アプリケーション開発に必須とも言えるKubernetesにおいて、GKEの利用で運用の手間が減り、コストパフォーマンスを高められます。
GKEを利用する上での注意点
GKEを運用するには、Kubernetesに関する知識が必要です。Kubernetesに知見のある人材がいない場合は、GKEの担当者を決めて、一から学ばなければなりません。人材教育には多くの時間と手間がかかるため、高額な学習コストが必要になります。
そのため、GKEは、人材とコストを確保でき、高い費用対効果が見通せる場合に利用するのが望ましいでしょう。中〜大規模な環境であれば、GKEによるメリットを享受しやすくなり、コストに見合った導入効果を得やすくなります。
GKEの活用方法
GKEの活用方法は、以下の4つです。
- GKEのセットアップ
- アプリケーションのデプロイ
- アプリケーションのスケーリング
- クラスタの監視とロギング
活用方法を確認して、自社で利用する際の参考にしましょう。
GKEのセットアップ
GKEのセットアップ方法は、以下の通りです。
- Google Cloud Platformにログインする
- ナビゲーションメニューから「Kubernetes Engine」を選択する
- 「クラスタの作成」ボタンをクリックする
- クラスタ名やノード数などの情報を設定する
- 詳細設定でセキュリティやネットワーク、オートスケーリングなどのオプションを設定する
- 「作成」ボタンをクリックする
上記の手順で、クラスタが作成できます。クラスタと接続する場合は、作成したクラスタの横にある「接続」ボタンをクリックして、表示されるコマンドをコピーした後、ローカル環境のターミナルで実行しましょう。
アプリケーションのデプロイ
アプリケーションをGKEクラスタにデプロイする方法は、以下の通りです。
- アプリケーションのコンテナイメージを作成して、Google Container Registry(GCR)にプッシュする
- Kubernetesマニフェストファイル(YAML)を作成する
- kubectlコマンドを使って、マニフェストファイルをクラスタに適用する
アプリケーションのスケーリング
GKEでは、アプリケーションのスケーリングを簡単に実行可能です。以下のコードを使えば、アプリケーションのレプリカ数を増減できます。
- phpCopy codekubectl scale deployment <デプロイメント名> --replicas=<レプリカ数>
クラスタの監視とロギング
GKEでは、Cloud MonitoringとCloud Loggingを活用して、クラスタの監視とログ収集を実行可能です。ソース使用率やアプリケーションのパフォーマンスを可視化して、問題の発見や解析を行います。Kubernetesのアップデートは自動的に行われますが、マイナーアップデートは手動で行わなければなりません。
GKEは他のGoogle Cloudサービスとの連携でより便利に利用できる
GKEは、Google Cloudの導入によって利用できます。GKEを利用すれば、Kubernetesの管理が自動化されるだけでなく、Google CloudのサービスとKubernetesの連携も可能です。
サービス | 内容 |
---|---|
Cloud Storage | ・アプリのファイルやデータ保存に有効 ・連携することで、高性能なストレージサービスを利用できる |
Cloud SQL | ・連携することで、フルマネージドのMySQL、SQL Serverなどのデータベースサービスを利用できる |
Stackdriver Logging & Monitoring | ・連携することで、GKEのログやメトリクスを集約し、分析やアラートの実行ができる |
アプリケーションの開発と運用をする場合は、GKEとGoogle Cloudを連携して、業務の効率化を図りましょう。GKEでKubernetesをより簡単に活用したいという方は、以下のページから無料でダウンロードできる「Google Cloud お客様導入事例集」をぜひご覧ください。
GKEを活用してKubernetesをより簡単に利用しよう
GKEは、より簡単かつ安全にKubernetesを利用できる機能を備えたフルマネージドのオーケストレーションサービスです。頻繁に行われるKubernetesのアップグレードの自動化や自動修復サービスが備わっており、少ない負荷でアプリケーションを管理できます。
GKEでは、高いセキュリティ機能を利用でき、問題が発生した場合も迅速にエラーを発見可能です。また、Google Cloudのサービスとの連携によって、さらに便利で安全に利用できます。アプリケーションの管理を効率化したい方は、積極的に導入を検討されることをおすすめします。
GKEでKubernetesの運用をより快適に行いたい方は、以下のページからダウンロードできる資料をぜひご覧ください。
- カテゴリ:
- Google Cloud(GCP)
- キーワード:
- gke