Kubernetes Managed Service Column <Kubernetes運用コラム>

Kubernetesクラスターの基礎知識と導入方法、運用を意識した設計のベストプラクティス

Category: 入門編

2025.04.17

高可用性やセキュリティの確保、コスト最適化を考えたクラスター設計の考慮点を紹介

Kubernetes は大規模なコンテナの管理を容易にするコンテナオーケストレーションプラットフォームです。その重要な要素にクラスターがあります。クラスター設計は Kubernetes 構築のポイントとなる工程で、その良し悪しは後の運用負担に大きく影響を及ぼします。そのため、高可用性やセキュリティの確保、コスト最適化を考えた設計が重要となります。

本記事では Kubernetes クラスターの利点や仕組みに加え、設計のベストプラクティスを紹介し、高可用性やセキュリティの確保、コスト最適化を備えたクラスター構築の考え方を解説します。

1. Kubernetesクラスターの基礎知識

Kubernetesクラスターは、複数のノード(サーバー)によって構成されるグループのようなものです。Kubernetes 構造の最上位に位置し、ノードの集合で構成されています。ノードには大きく 2 つの種類に分かれ、それぞれ異なる役割を担っています。

ノードは以下の 2種類に分けられます。

  • クラスター全体を管理するマスターノード。別名コントロールプレーンと呼ばれます。
  • Pod を実行するワーカーノード。単にノードという場合はこちらを指します。

ワーカーノードは Pod を含みます。 Pod は Kubernetes が管理する最小単位で、コンテナを 1 つ以上含みます。コントロールプレーンは以下の要素から構成されています。

コンポーネント名 役割
kube-apiserver Kubernetes API を外部に提供する。
etcd クラスター情報を保存するデータストア。
kube-scheduler Pod を最適なノードに配置する。
kube-controller-manager Pod の作成やノードダウン時の通知と対応などを実行する。
cloud-controller-manager クラウド上の Kubernetes にてクラウド特有の制御を担当する。

これらのコンポーネントが連携することで、Kubernetesクラスターの維持管理を行い、アプリケーションの安定稼働を支える仕組みになっています。

Kubernetesクラスターの基礎知識

図版出典:Kubernetes公式サイト

※参考:
Kubernetesの重要な構成要素である「Node」について解説します!
アプリケーションの柔軟性、拡張性を向上させる「Kubernetes Pod」について解説

Kubernetesクラスターの役割と利点

クラスターはコンテナ化されたアプリの分散配置やスケーラブルな実行、管理を自動化し複数コンテナの効率的な運用を行うといった役割を持ちます。このように、クラスターはコンテナの配置や削除などをスケジュールし実行する機能の中心であり、 Kubernetes の主要な利点である高可用性や負荷分散を実現しています。

2. クラウド環境におけるKubernetesクラスターの導入方法

今後 Kubernetes を導入する場合、クラウド上のマネージドサービスを選択することが多いでしょう。そこで、代表的なクラウドサービスでの導入手順を紹介します。

Azure AKS の例

Azure CLI 、 Azure PowerShell 、 Azure Developer CLI のいずれかを使用して導入します。
ここでは Azure CLI を用いた例を紹介します。

1.Kubernetes CLI のインストール

Kubernetes CLI のインストール

2.クラスター作成

クラスター作成

3.資格情報を取得

資格情報を取得

4.kubectl を使用してクラスターを操作

ノードのリストを返す操作例

kubectl を使用してクラスターを操作

AWS EKS の例

eksctl 、 AWS Management Console 、 AWS CLI のいずれかを使用します。
ここでは eksctl を用いた例を紹介します。

1.クラスター IAM ロールを作成

eksctl により、デフォルトでロールが作成されます。

2.クラスターを作成

クラスターを作成

3.kubeconfig を更新

eksctl によってクラスター作成と同時に更新は完了します。

4.クラスターのセットアップ

eksctl を使用してクラスターをデプロイする場合、 Amazon VPC CNI plugin for Kubernetes 、 CoreDNS 、および kube-proxy セルフマネージド型アドオンがデプロイされます。

Google GKE の例

Google Cloud CLI 、 Google Cloud コンソール、 Terraform のいずれかを使用します。
ここでは Google Cloud CLI を用いた Autopilot クラスターの作成例を紹介します。

1.IAM サービスアカウントを作成

デフォルトのサービスアカウントは権限が過剰なので使用せず、最小権限のサービスアカウントを別途作成します。

2.クラスターを作成

クラスターを作成

3.クラスターに接続

クラスターに接続

4.Autopilot モードであることを確認

下記コマンド実行結果に autopilot:enabled:true が含まれることを確認する。

Autopilot モードであることを確認

※参考:Kubernetes マニフェストとは?Kubernetesの構成を定義する方法について解説します!

3. Kubernetesクラスター設計の考慮点

オーバースペックによるコスト増加や、単一障害点が招く可用性の低下、設定不備が原因の脆弱性等、クラスター設計の良し悪しは後々の運用負担やセキュリティ面に影響を及ぼします。ここでは、様々な観点からクラスター設計の考慮点を解説します。

可用性の観点

可用性確保のため、以下に留意しましょう。

  • コントロールプレーンを複数構成し、単一障害点を排除する。
  • 複数ゾーンにノードを配置し、物理的冗長性を確保する。
  • ノードや Pod のスケーリング機能により、負荷増減に自動対応する。
  • 定期的バックアップと障害時の復旧手順を確立しておく。

例として、 GKE ではクラスター構成に Autopilot と Standard が用意されており、Autopilot ではコントロールプレーンとノードそれぞれが複数のゾーンに設定されます。また、 Backup for GKE を使用するとクラスター全体の自動バックアップが可能で、全体の復元やクラスター内の一部のみのロールバックもできます。

Kubernetesクラスター設計の考慮点

図版出典:Google Cloud公式サイト

セキュリティの観点

Kubernetes は API 駆動のため、誰がクラスターにアクセスし、どのアクションを実行できるか、つまり認証と認可の設定が重要となります。

認証と認可は認証モジュール、ユーザーアカウント( IAM や Microsoft Entra ID )、 RBAC の設定でコントロールします。デフォルトで有効となっている外部からのアクセスを禁止するには、クラスター構築時のネットワーク設定が必要です。

etcd データベースはクラスターに関する重要かつ機密性の高い情報を保持しているため、定期的なバックアップとともに暗号化を使用するとよいでしょう。

コストの観点

クラスター構築時にユースケースに合った適切なリソースを選択し、過剰なスペックによるコスト増を防ぎましょう。

AKS には、テスト環境など中断できるワークロード向けの「 Azure スポット仮想マシン」、レンダリングなど潤沢な計算資源が必要なユースケース向けの「 GPU 最適化」等のグレードがあります。

GKE では可用性の保証をしない代わりに費用を抑えた「 Spot VM 」や、クリティカルなユースケース向けの「 E2 」などのマシンタイプが用意されています。

運用中にコストの高いワークロードを把握することも大切です。 AKS の「 Microsoft Cost Management 」、 EKS の「 Amazon CloudWatch Container Insights 」、 GKE の「 GKE 使用状況測定」が役立つでしょう。

複数年の利用確約で割引を受けられる、クラウドプロバイダーの制度も検討するとよいでしょう。

4. まとめ

ここまで、Kubernetes クラスターの利点や仕組み、構築後の運用負荷低減や高いセキュリティ強度のためのクラスター設計のポイントを解説しました。高可用性やセキュリティの確保、コスト最適化を備えた Kubernetes クラスター構築に役立てていただけると幸いです。

R Works の Kubernetes サポートなど、企業への導入を支援するサービスの利用も有効です。どうぞご検討ください。

Kubernetes の運用を相談したい

Kubernetes運用サポートサービス

Kubernetes運用サポートサービス

クラウドベンダが提供するKubernetes 環境の運用をサポートします。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Kubernetes運用サポートサービスカタログ

    サービスの詳細をご覧いただけます。

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php