8.6 イングレスの作成

次のコマンドを実行して、イングレスを作成します:

  1. $WORKDIRに移動します:
    cd $WORKDIR
  2. 次のhelmコマンドを実行して、イングレスを作成します:
    helm install oam-nginx kubernetes/charts/ingress-per-domain \
    --namespace <domain_namespace> \
    --values kubernetes/charts/ingress-per-domain/values.yaml
    
    例:
    helm install oam-nginx kubernetes/charts/ingress-per-domain \
    --namespace oamns \
    --values kubernetes/charts/ingress-per-domain/values.yaml
    出力は次のようになります:
    NAME: oam-nginx
    LAST DEPLOYED: <DATE>
    NAMESPACE: oamns
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
  3. 次のコマンドを実行して、イングレスが正常に作成されたことを示します:
    kubectl get ing -n <domain_namespace>
    kubectl get ing -n oamns
    hostname.enabled: falseの場合、出力は次のようになります:
    NAME                 CLASS    HOSTS   ADDRESS   PORTS   AGE
    accessdomain-nginx   nginx    *                 80      5s
    hostname.enabled: trueの場合、出力は次のようになります:
    NAME                 CLASS   HOSTS                   ADDRESS   PORTS   AGE
    oamadmin-ingress     nginx   admin.example.com                 80      14s
    oamruntime-ingress   nginx   runtime.example.com               80      14s
  4. 次のコマンドを実行して、イングレスを確認します:
    kubectl describe ing <ingress> -n <domain_namespace>
    例:
    kubectl describe ing accessdomain-nginx -n oamns
    accessdomain-nginxの出力は次のようになります:
    Name:             accessdomain-nginx
    Labels:           app.kubernetes.io/managed-by=Helm
    Namespace:        oamns
    Address:          10.109.22.22
    Ingress Class:    nginx
    Default backend:  <default>
    
    Rules:
      Host        Path  Backends
      ----        ----  --------
      *
                  /console                        accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /consolehelp                    accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /rreg/rreg                      accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /em                             accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /management                     accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /oamconsole                     accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /dms                            accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /oam/services/rest              accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /iam/admin/config               accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /iam/admin/diag                 accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /iam/access                     accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                  /oam/admin/api                  accessdomain-adminserver:7001 (10.244.1.200:7001)
                  /oam/services/rest/access/api   accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                  /access                         accessdomain-cluster-policy-cluster:15100 (10.244.2.126:14150)
                  /oam                            accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                  /                               accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
    Annotations:  meta.helm.sh/release-name: oam-nginx
                  meta.helm.sh/release-namespace: oamns
                  nginx.ingress.kubernetes.io/enable-access-log: false
                  nginx.ingress.kubernetes.io/proxy-buffer-size: 2000k
    Events:       <none>
       Type    Reason  Age   From                      Message
      ----    ------  ----  ----                      -------
      Normal  Sync    33s   nginx-ingress-controller  Scheduled for sync
    oamadmin-ingressの出力は次のようになります:
    Name:             oamadmin-ingress
    Labels:           app.kubernetes.io/managed-by=Helm
    Namespace:        oamns
    Address:          10.109.22.22
    Ingress Class:    nginx
    Default backend:  <default>
    Rules:
      Host                                    Path  Backends
      ----                                    ----  --------
      admin.example.com
                                              /console                        accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /consolehelp                    accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /rreg/rreg                      accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /em                             accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oamconsole                     accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /dms                            accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oam/services/rest              accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /iam/admin/config               accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oam/admin/api                  accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /iam/admin/diag                 accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oam/services                   accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /iam/admin                      accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oam/services/rest/11.1.2.0.0   accessdomain-adminserver:7001 (10.244.1.200:7001)
                                              /oam/services/rest/ssa          accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /access                         accessdomain-cluster-policy-cluster:14150 (10.244.2.126:15100)
    Annotations:                              meta.helm.sh/release-name: oam-nginx
                                              meta.helm.sh/release-namespace: oamns
                                              nginx.ingress.kubernetes.io/affinity: cookie
                                              nginx.ingress.kubernetes.io/enable-access-log: false
                                              nginx.ingress.kubernetes.io/ingress.allow-http: true
                                              nginx.ingress.kubernetes.io/proxy-buffer-size: 2000k
                                              nginx.ingress.kubernetes.io/ssl-redirect: false
    Events:
      Type    Reason  Age   From                      Message
      ----    ------  ----  ----                      -------
      Normal  Sync    32s   nginx-ingress-controller  Scheduled for sync
    
    oamruntime-ingressの出力は次のようになります:
    Name:             oamruntime-ingress
    Labels:           app.kubernetes.io/managed-by=Helm
    Namespace:        oamns
    Address:          10.109.22.22
    Ingress Class:    nginx
    Default backend:  <default>
    Rules:
      Host                                    Path  Backends
      ----                                    ----  --------
      runtime.example.com
                                              /ms_oauth                           accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /oam/services/rest/auth             accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /oam/services/rest/access           accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /oamfed                             accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /otpfp/                             accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /oauth2                             accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /oam                                accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /.well-known/openid-configuration   accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /.well-known/oidc-configuration     accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /CustomConsent                      accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
                                              /iam/access                         accessdomain-cluster-oam-cluster:14100 (10.244.2.127:14100)
    Annotations:                              meta.helm.sh/release-name: oam-nginx
                                              meta.helm.sh/release-namespace: oamns
                                              nginx.ingress.kubernetes.io/affinity: cookie
                                              nginx.ingress.kubernetes.io/enable-access-log: false
                                              nginx.ingress.kubernetes.io/proxy-buffer-size: 2000k
    Events:
      Type    Reason  Age                    From                      Message
      ----    ------  ----                   ----                      -------
      Normal  Sync    3m34s (x2 over 4m10s)  nginx-ingress-controller  Scheduled for sync
    
  5. 新しいイングレスがドメインのサーバー・ポッドに正常にルーティングされていることを確認するには、次のコマンドを実行して、OAM管理コンソールにリクエストを送信します:
    • SSLの場合:
      curl -v -k https://${HOSTNAME}:${PORT}/oamconsole
      
    • 非SSLの場合:
      curl -v http://${HOSTNAME}:${PORT}/oamconsole
      

    使用する${HOSTNAME}:${PORT}は、hostName.enabledに設定された値によって異なります。

    hostName.enabled: falseの場合、イングレス・コントローラがインストールされているホスト名およびポートを使用します(http://oam.example.com:30777など)。

    hostName.enabled: trueを使用している場合、管理ホスト名を介してのみアクセスできます(https://admin.example.com/oamconsoleなど)。

    ノート:

    管理URLを介してアクセスできるのは、それが現在アクセス可能であり、イングレス・ホストおよびポートに正しくルーティングされている場合のみです。
    例:
    curl -v http://oam.example.com:30777/oamconsole
    出力は次のようになります302 Moved Temporarilyというメッセージが表示されます:
    > GET /oamconsole HTTP/1.1
    > Host: oam.example.com:30777
    > User-Agent: curl/7.61.1
    > Accept: */*
    >
    < HTTP/1.1 302 Moved Temporarily
    < Date: <DATE>
    < Content-Type: text/html
    < Content-Length: 333
    < Connection: keep-alive
    < Location: http://oam.example.com:30777/oamconsole/
    < X-Content-Type-Options: nosniff
    < X-Frame-Options: DENY
    <
    <html><head><title>302 Moved Temporarily</title></head>
    <body bgcolor="#FFFFFF">
    <p>This document you requested has moved
    temporarily.</p>
    <p>It's now at <a href="http://oam.example.com:30777/oamconsole/">http://oam.example.com:30777/oamconsole/</a>.</p>
    </body></html>
    * Connection #0 to host oam.example.com left intact

前述の内容の確認後、ドメイン・アプリケーションにアクセスできることを確認します。「ドメインURLの検証」を参照してください。