オープンソース

Kubernetesのレプリカセットとデプロイメント

レプリカセットとは?

レプリカセットとは、Kubernetesが複数のPodのレプリカをセットで作成する機能です。例えば、レプリカ数に3を設定して起動すると、Kubernetesは同じ機能のPodを3つ、自動的に起動します。

Kubernetesでは、マスターノードがPodの状態を管理します。Kubernetesのマスターノードは、Kubernetes上で指定した数のレプリカが動作することを保証します。例えば、ノード障害などでPodが減少した場合には、Kubernetesは別のノードで自動的にPodを起動し、レプリカ数を維持します。

デプロイメント

実際にレプリカセットを作成するには、Kubernetesのデプロイメントという機能を利用します。デプロイメントは、名称の通りKubernetes上に必要な数のレプリカを配置することです。

デプロイメントの実施

Kubernetesでは、デプロイメントを行うために次の例のようなマニュフェストファイルを準備します。

デプロイメントのマニュフェストの例(nginx-deployment.yaml)

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  # 複製する数
  replicas: 3
  # ポッドのセレクタ
  selector:
    # ラベルが一致するポッドを複製することになる
    matchLabels:
      app: nginx-pod

  # ここからPodのテンプレート設定
  template:
    metadata:
      # Podにラベルを定義
      labels:
        app: nginx-pod
    spec:
      containers:
        - name: nginx-container
          image: nginx
          ports:
          - containerPort: 80

このマニュフェストを使って、次のようにデプロイメントを行います。

# kubectl create -f nginx-deployment.yaml --record ⏎
deployment "nginx-deployment" created

デプロイメントの確認

Kubernetes上の現在のデプロイメントの状態は、次のように確認することができます。

# kubectl get deployment ⏎
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
nginx-deployment 2 2 2 2 2m

この状態で、Kubernetes上のPodの状態を確認すると、自動的にPodが2つ起動されていることが分かります。

# kubectl get pods -o wide ⏎
NAME READY STATUS RESTARTS AGE IP NODE
nginx-deployment-6648995d88-2j7zh 1/1 Running 0 3m 10.44.0.7 osslab02
nginx-deployment-6648995d88-z8kw5 1/1 Running 0 3m 10.44.0.8 osslab02

デモのお申込み

もっと使い方が知りたい方へ
Kubernetesの操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。Kubernetesのデモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ


OSS情報「Kubernetes」

Kubernetes〜コンテナ管理の課題を解決するOSS〜
ここでは、Dockerコンテナの管理を自動化するためのソフトウェア「Kubernetes」を紹介します。
Kubernetesクラスタの構築
ここでは、CentOS7に最小限のKubernetesクラスタを構築する方法について説明いたします。
KubernetesのPod機能
ここではPod機能について説明いたします。
Kubernetesのレプリカセットとデプロイメント
ここではデプロイメントという機能を利用してレプリカセットを作成する方法について説明いたします。
Kubernetesのアーキテクチャ
ここではアーキテクチャについて説明いたします。
Kubernetesのコンテナアップデート
ここでは、Kubernetesでソフトウェアをアップデートする場合の手法について説明いたします。
Kubernetesのローリングアップデート
ここでは、Kubernetesのローリングアップデート機能の概要について説明いたします。
Kubernetesのダッシュボード
ここでは管理用のダッシュボードについて説明いたします。
Kubernetesの永続ストレージ
ここでは永続ストレージについて説明いたします。
Rancher〜Kubernetesの管理ソフトウェア〜
ここでは、Kubernetesの管理ソフトウェアのRancherについて紹介します。
GitLab〜Dockerのプロジェクト管理とレジストリ〜
GitLabは、ウェブ型のGitリポジトリマネージャーです。ここではGitLabのコンテナレジストリについて説明いたします。
DRBD-SDSとKubernetes
ここではDRBD-SDSを利用することでサービスの冗長化を実現させる手法について説明いたします。
Falco〜コンテナの侵入・改ざん検知ツール〜
ここではKubernetesを代表するコンテナ環境をターゲットにしているコンテナランタイムセキュリティソフトウェアのFalcoについて説明いたします。
Trivy〜コンテナイメージの脆弱性診断ツール〜
Trivyは、コンテナイメージの脆弱性診断ツールです。ここではTrivyの機能や特徴などについて説明いたします。
コンテナ型仮想化に関連したOSS
ここでは、コンテナ型仮想化に関連したOSSを紹介いたします。

Kubernetesのレプリカセットとデプロイメントの先頭へ