Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

24.5. Microsoft Azure 外部ロードバランサーのサービスとしての使用

OpenShift Container Platform は、LoadBalancer サービスを使用してサービスを外部に公開することで Microsoft Azure ロードバランサーを利用できます。OpenShift Container Platform は、ロードバランサーを Microsoft Azure で作成し、適切なファイアウォールルールを作成します。

重要

現時点で、Microsoft Azure インフラストラクチャーをクラウドプロバイダーとして使用し、またこれを外部ロードバランサーとして使用する際に追加の変数がこれに組み込まれるというバグがありました。詳細は、以下を参照してください。

前提条件

/etc/origin/cloudprovider/azure.conf にある Azure 設定ファイル が適切なオブジェクトで適切に設定されていることを確認します。/etc/origin/cloudprovider/azure.conf ファイルのサンプルについては、OpenShift Container Platform での Microsoft Azure の手動設定 のセクションを参照してください。

値が追加されたら、すべてのホストで OpenShift Container Platform を再起動します。

# systemctl restart atomic-openshift-node
# master-restart api
# master-restart controllers

24.5.1. ロードバランサーを使用したアプリケーションサンプルのデプロイ

手順

  1. 新規アプリケーションを作成します。

    $ oc new-app openshift/hello-openshift
  2. ロードバランサーサービスを公開します。

    $ oc expose dc hello-openshift --name='hello-openshift-external' --type='LoadBalancer'

    これにより、以下と同様の Loadbalancer サービスが作成されます。

    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: hello-openshift
      name: hello-openshift-external
    spec:
      externalTrafficPolicy: Cluster
      ports:
      - name: port-1
        nodePort: 30714
        port: 8080
        protocol: TCP
        targetPort: 8080
      - name: port-2
        nodePort: 30122
        port: 8888
        protocol: TCP
        targetPort: 8888
      selector:
        app: hello-openshift
        deploymentconfig: hello-openshift
      sessionAffinity: None
      type: LoadBalancer
  3. サービスが作成されたことを確認します。

    $ oc get svc
    NAME                       TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                         AGE
    hello-openshift            ClusterIP      172.30.223.255   <none>          8080/TCP,8888/TCP               1m
    hello-openshift-external   LoadBalancer   172.30.99.54     40.121.42.180   8080:30714/TCP,8888:30122/TCP   4m

    LoadBalancer タイプおよび External-IP フィールドは、サービスが Microsoft Azure ロードバランサーを使用してアプリケーションを公開することを示しています。

これにより、Azure インフラストラクチャーで以下の必要なオブジェクトが作成されます。

  • ロードバランサー:

    az network lb list -o table
    Location    Name         ProvisioningState    ResourceGroup    ResourceGuid
    ----------  -----------  -------------------  ---------------  ------------------------------------
    eastus      kubernetes   Succeeded            refarch-azr      30ec1980-b7f5-407e-aa4f-e570f06f168d
    eastus      OcpMasterLB  Succeeded            refarch-azr      acb537b2-8a1a-45d2-aae1-ea9eabfaea4a
    eastus      OcpRouterLB  Succeeded            refarch-azr      39087c4c-a5dc-457e-a5e6-b25359244422

ロードバランサーが正しく設定されたことを確認するには、外部ホストから以下を実行します。

$ curl 40.121.42.180:8080 1
Hello OpenShift!
1
上記の EXTERNAL-IP 検証手順の値およびポート番号に置き換えます。