Kubernetes

コンテナのデプロイ、スケーリング、管理を自動化するオープンソースのオーケストレーションプラットフォーム

コンテナインフラ
Kubernetes」の技術書を見る (57 冊) →

Kubernetes とは

Kubernetes (K8s) は、Google が Borg の知見をもとに開発したコンテナオーケストレーションプラットフォームである。CNCF がホスト。AWS では EKS (Elastic Kubernetes Service) で利用する。

主要なリソース

Kubernetes はいくつかのリソースを組み合わせてアプリケーションを管理する。Podコンテナの最小実行単位で、Deployment が Pod のレプリカ数管理とローリングアップデートを担う。Service が Pod へのネットワークアクセスを提供し、Ingress が外部からの HTTP ルーティングを制御する。設定データは ConfigMap、秘密情報は Secret で管理し、HPA (Horizontal Pod Autoscaler) が負荷に応じて Pod 数を自動調整する。

Deployment の定義

Deployment の定義の例を示す。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: api
spec:
  replicas: 3
  selector:
    matchLabels: { app: api }
  template:
    metadata:
      labels: { app: api }
    spec:
      containers:
        - name: api
          image: my-app:latest
          ports: [{ containerPort: 8080 }]
          resources:
            requests: { cpu: 100m, memory: 128Mi }
            limits: { cpu: 500m, memory: 512Mi }

EKS vs ECS vs Lambda

EKS と ECS vs Lambda の違いを以下にまとめる。

観点EKSECS FargateLambda
管理負荷高い低い最低
K8s エコシステム
コスト (アイドル)クラスタ費用タスク数ゼロ
実行時間無制限無制限最大 15 分
用途K8s が必要な場合コンテナイベント駆動

いつ Kubernetes を使うか

いつ Kubernetes を使うかの判断基準を以下にまとめる。

ケース推奨
K8s エコシステムが必要EKS
シンプルなコンテナ実行ECS Fargate
イベント駆動、短時間処理Lambda
コストゼロを目指すLambda

実務での活用方法は関連書籍にも詳しい。

この記事は役に立ちましたか?

関連用語

関連する記事