This site will be decommissioned on January 30th 2025. After that date content will be available at techdocs.broadcom.com.

サンプルのアプリケーションの展開

このチュートリアルでは、シンプルな hello-world アプリケーションを Tanzu Kubernetes Grid (TKG) ワークロード クラスタに展開し、外部 IP アドレスを介して公開してから、ブラウザからオンラインでアクセスする方法について説明します。

前提条件

サンプル アプリケーションを展開するには、以下が必要です。

ワークロード クラスタへのアプリケーションの展開

サンプルの構成 YAML ファイルをコピーし、ワークロード クラスタに適用して、hello-world アプリケーションを展開します。

  1. 次の構成を使用して、hello-world アプリケーションの YAML ファイルを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
     labels:
       app.kubernetes.io/name: load-balancer-example
     name: hello-world
    spec:
     replicas: 5
     selector:
       matchLabels:
         app.kubernetes.io/name: load-balancer-example
     template:
       metadata:
         labels:
           app.kubernetes.io/name: load-balancer-example
       spec:
         containers:
         - image: gcr.io/google-samples/node-hello:1.0
           name: hello-world
           ports:
           - containerPort: 8080
    

    ワークロード クラスタで Windows Custom Machine Images の説明に従って Windows イメージを使用している場合は、次の spec.template.spec.tolerations を追加して、上記の containers でインデントします。

         tolerations:
         - value: "windows"
           key: os
           operator: Equal
           effect: "NoSchedule"
         nodeSelector:
           kubernetes.io/os: windows
    
  2. YAML ファイルを load-balancer-example.yaml という名前で保存します。

  3. 次のコマンドを実行して、kubectl をワークロード クラスタのコンテキストに設定します。

    kubectl config use-context CLUSTER-admin@CLUSTER
    

    ここで、CLUSTER はワークロード クラスタの名前です。

  4. ワークロード クラスタにアプリケーションを展開します。

    kubectl apply -f load-balancer-example.yaml
    

    出力は次のようになります。

    deployment.apps/hello-world created
    

アプリケーションの公開

ブラウザからアプリケーションにアクセスできるように、アプリケーションの外部 IP アドレスを公開するサービス オブジェクトを作成します。

  1. my-service という名前のサービス オブジェクトを作成します。

    kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
    

    出力は次のようになります。

    service/my-service exposed
    

アプリケーションへのアクセス

外部 IP アドレスを使用してブラウザから hello-world アプリケーションにアクセスします。

  1. LoadBalancer Ingress および TargetPort の値を、次の手順で使用するコマンドの出力から記録します。

    kubectl describe services my-service
    

    出力は次のようになります。

    Name:                     my-service
    Namespace:                default
    Labels:                   app.kubernetes.io/name=load-balancer-example
    Annotations:              <none>
    Selector:                 app.kubernetes.io/name=load-balancer-example
    Type:                     LoadBalancer
    IP Families:              <none>
    IP:                       100.67.254.91
    IPs:                      100.67.254.91
    LoadBalancer Ingress:     10.186.21.200
    Port:                     <unset>  8080/TCP
    TargetPort:               8080/TCP
    NodePort:                 <unset>  32202/TCP
    Endpoints:                100.96.1.15:8080,100.96.1.16:8080,100.96.1.17:8080 + 2 more...
    Session Affinity:         None
    External Traffic Policy:  Cluster
    

    LoadBalancer Ingress が表示されない場合は、このワークロード クラスタ用にロード バランサが構成されていることを確認します。

  2. ブラウザで、https://IP:PORT に移動します。IPLoadBalancer Ingress の値、PORT は前の手順で記録した TargetPort のポート番号の値です。たとえば、https://10.186.21.200:8080です。

    hello-world アプリケーションには次の項目が表示されます。

    Hello Kubernetes!
    

次の手順

アプリケーションが展開されたら、Contour、Fluent Bit、Prometheus、Grafana などのパッケージを使用して、トラフィックの管理、ログの表示、および操作の監視を行うことができます。これらのパッケージをインストールするには、「Tanzu CLI を使用したパッケージのインストールと管理」を参照してください。

Velero を使用してワークロードをバックアップおよびリストアまたは移行するには、「クラスタ ワークロードのバックアップとリストア」を参照してください。

check-circle-line exclamation-circle-line close-line
Scroll to top icon