本文へジャンプします。

【重要なお知らせ】サービス統合に基づくサービス名称の読み替えのお願い(2024年4月1日)

2024年4月1日をもって、「ニフクラ」は、「FJcloud-V」に統合し、名称を変更しました。
当サイトのアドレス(ドメイン名)に含まれる「nifcloud.com」は現時点では変更はございませんが、
各ページに記載の「ニフクラ」「NIFCLOUD」「nifcloud」は、「FJcloud-V」に読み替えていただきますようお願いいたします。

ニフクラ ユーザーガイド

クラウド トップ>Catalog>ユーザーガイド>Anthos(GKE Enterprise) CCMを利用してニフクラ ロードバランサー(L4)を接続する

Anthos(GKE Enterprise):CCMを利用してニフクラ ロードバランサー(L4)を接続する

クラスターにnifcloud-cloud-controller-manager(CCM)をインストールし、ニフクラ ロードバランサー(L4)を接続する方法を説明します。

ステップ1:CCMを有効にしてクラスターを作成

本手順では、管理クラスターにロードバランサー(L4)を接続する方法を説明していますが、ユーザークラスターでも同様の手順で接続できます。

  1. コントロールパネルにログインし、Catalogのダッシュボードへ移動します。

  2. リソースグループを作成します。 リソースグループの作成方法は以下をご確認ください。
    Anthos(GKE Enterprise):クイックスタート ステップ4:リソースグループ作成

  3. 作成したリソースグループに対し、CCMを有効にしてクラスターの初期設定をします。

    初期設定

  4. 設定完了までしばらく待ちます。

ステップ2:Secretリソース作成

  1. 管理ワークステーションにSSHログインします。

  2. Secretのyamlを作成します。

    下記のような secret.yaml を作成します。指定するアクセスキー、シークレットアクセスキーの取得方法は、API活用ガイド の「認証情報の取得方法」を参照してください。

    apiVersion: v1
    kind: Secret
    metadata:
      name: nifcloud-cloud-controller-manager-secret
      namespace: kube-system
    stringData:
      access_key_id: <アクセスキー>
      secret_access_key: <シークレットアクセスキー>
  3. Secretのyamlの適用します。

    作成した secret.yaml をクラスターに適用します。

    $ kubectl apply -f secret.yaml

ステップ3:Helmインストール

  1. https://helm.sh/ja/docs/intro/install/ の手順に従い、管理ワークステーションへHelmをインストールします。

    $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 \
        && chmod 700 get_helm.sh \
        && ./get_helm.sh
  2. helm コマンドが利用可能か確認します。下記のコマンドでバージョン情報が出力されれば、正常にHelmのインストールができています。

    $ helm version
    version.BuildInfo{Version:"v3.15.2", GitCommit:"1a500d5625419a524fdae4b33de351cc4f58ec35", GitTreeState:"clean", GoVersion:"go1.22.4"}

ステップ4:CCMインストール

  1. Helmリポジトリにnifcloud-cloud-controller-managerを追加します。

    $ helm repo add nifcloud-cloud-controller-manager https://nifcloud.github.io/nifcloud-cloud-controller-manager
    $ helm repo update
  2. クラスターを作成したリージョンを指定して、CCMをインストールします。 リージョンを指定する名前は、ニフクラAPI(エンドポイント) > コンピューティング を参照してください。

    $ helm upgrade --install nifcloud-cloud-controller-manager nifcloud-cloud-controller-manager/nifcloud-cloud-controller-manager \
      --namespace kube-system \
      --set nifcloud.region=<リージョン> \
      --set nifcloud.accessKeyId.secretName=nifcloud-cloud-controller-manager-secret \
      --set nifcloud.accessKeyId.key=access_key_id \
      --set nifcloud.secretAccessKey.secretName=nifcloud-cloud-controller-manager-secret \
      --set nifcloud.secretAccessKey.key=secret_access_key

ステップ5:Deploymentの作成

  1. アプリケーション用Deploymentのyaml作成します。

    下記のような deployment.yaml を作成します。下記の例は「Hello Kubernetes!」を返却するだけのシンプルなアプリケーションです。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: hello
    spec:
      selector:
        matchLabels:
          run: hello
      replicas: 3
      template:
        metadata:
          labels:
            run: hello
        spec:
          containers:
          - name: hello
            image: gcr.io/google-samples/node-hello:1.0
            ports:
            - containerPort: 8080
  2. Deploymentのyamlを適用します。

    作成した deployment.yaml をクラスターに適用します。

    $ kubectl apply -f deployment.yaml
  3. Podの動作を確認します。

    下記で適用したアプリケーションのPodのSTAUSが、Runningになることを確認します。

    $ kubectl get pod
    NAME                     READY   STATUS    RESTARTS   AGE
    hello-5c74f54cf7-89hbh   1/1     Running   0          39s
    hello-5c74f54cf7-lrj9x   1/1     Running   0          39s
    hello-5c74f54cf7-zxf9g   1/1     Running   0          39s

ステップ6:Serviceの作成

  1. type: LoadBalancer Serviceのyamlを作成します。

    アプリケーションに対してロードバランサーを作成するために、下記のような load-balancer.yaml を作成します。

    apiVersion: v1
    kind: Service
    metadata:
      name: hellolb
      labels:
        run: hello
    spec:
      type: LoadBalancer
      ports:
        - port: 80
          protocol: TCP
          targetPort: 8080
          name: http
      selector:
        run: hello
  2. Serviceのyamlを適用します。

    作成した load-balancer.yaml を適用します。適用すると、設定内容に従ってロードバランサー(L4)が作成されます。ロードバランサー(L4)は、別途料金が発生しますのでご注意ください。

    $ kubectl apply -f load-balancer.yaml
  3. Serviceを確認します。

    下記で作成したロードバランサーの情報が確認できます。EXTERNAL-IPに表示されるIP(例ではx.x.x.x)がロードバランサーのIPです。

    $ kubectl get service
    NAME                     TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    hellolb                  LoadBalancer   10.102.213.44   x.x.x.x         80:30374/TCP   5m
    kubernetes               ClusterIP      10.96.0.1       <none>          443/TCP        1h

ステップ7:Serviceにアクセス

  1. ステップ6で作成したロードバランサーのIPに接続すると、作成したアプリケーションからレスポンスが返却されます。

    $ curl http://x.x.x.x
    Hello Kubernetes!


アンケート
アンケートにご協力を
  • ※本ページ記載の金額は、すべて税抜表示です。
  • ※本ページ記載の他社製品名および会社名などは、各社の商標または登録商標です。
  • ※本ページの内容は、2024年8月29日時点の情報です。

推奨画面サイズ 1024×768 以上