機械翻訳について

管理コンソールの使用

目次

導入

次のアプローチを使用して、Kubernetesクラスタの外部にあるWebLogic Server管理コンソールにアクセスできます:

NOTES:

  • 本番ユース・ケースでは、Oracleでは、イングレス・パス・ルーティング・ルールおよびSSLポートを使用してWebLogic Server管理コンソールにアクセスすることをお薦めします。

  • ロード・バランサ、NodePortまたはkubectl port-forward設定が想定どおりに動作することを確認するには、「テスト」を参照してください。

  • WebLogic Server管理コンソールを使用して、サーバーを起動または停止したり、クラスタをスケーリングしないでください。 「サーバーの起動と停止」および「スケーリング」を参照してください。

  • ドメイン・ホーム・タイプがDomain in ImageまたはModel in Imageの場合は、管理コンソールを使用してWebLogicドメイン構成を変更しないでください。これらの変更は一時的なもので、サーバーの再起動時に失われます。 「ドメイン・ホーム・ソース・タイプの選択」を参照してください。

Kubernetes NodePort、ロード・バランサ、ポート転送または同様のメソッドで、管理、RMIまたはT3対応のWebLogicチャネルを外部で公開すると、安全でない構成を作成できます。 詳細は、「外部ネットワーク・アクセスのセキュリティ」を参照してください。

ロード・バランサの使用

ロード・バランサからWebLogic Server管理コンソールにアクセスするには、最初にIngressを設定します。 これは、SSLとの組合せで、本番ユースケースのベスト・プラクティス・アプローチです。

次のpath-routingイングレス手順は、同じ外部ロード・バランサ・ポートを介して同じKubernetesクラスタ内の複数のドメインに同時にアクセスする必要がある場合には適用されません。 複数ドメインのユース・ケースについては、「ホスト・ベースのルーティング」サンプルを参照し、ホスト名がDNSサーバーによって解決可能であることを確認してください(例:サンプルのdomain1.orgおよびdomain2.org)。

非SSLポートのイングレス・パス・ルーティング・ルールの構成

次の例では、非SSLポートを介してWebLogic Server管理コンソールにアクセスするためのイングレス・パス・ルーティング・ルールを設定します。

  1. Traefikロード・バランサのpath-routing YAMLファイルを設定します:

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      annotations:
        kubernetes.io/ingress.class: traefik
      name: traefik-pathrouting-1
      namespace: weblogic-domain
    spec:
      routes:
      - kind: Rule
        match: PathPrefix(`/console`)
        services:
        - kind: Service
          name: domain1-adminserver
          namespace: weblogic-domain
          port: 7001
    
  2. WebLogic Server管理コンソールにアクセスするには、ブラウザから次のURLを開きます:

    http://${HOSTNAME}:${LB_PORT}/console
    

    説明:

    • ${HOSTNAME}は、イングレス・ロード・バランサが実行されている場所です。

    • Traefikロード・バランサの使用時に${LB_PORT}を決定するには:

      $ export LB_PORT=$(kubectl -n traefik get service traefik-operator -o jsonpath='{.spec.ports[?(@.name=="web")].nodePort}')

「FMWインフラストラクチャ」ドメインがある場合は、PathPrefix /emのイングレス・パス・ルーティング・ルールを追加し、次のURLを使用してFusion Middleware Control (Enterprise Manager)にアクセスできます:

http://${HOSTNAME}:${LB_PORT}/em

SSLポートのイングレス・パス・ルーティング・ルールを構成し、WebLogic Plugin Enabledを有効にします

次の例では、SSLポートを介してWebLogic Server管理コンソールにアクセスするためのロード・バランサ・ルーティングを設定します。

  1. WebLogic構成でWebLogic Plugin Enabled設定を有効にします:

    WebLogic構成設定WebLogic Plugin Enabledtrueに設定すると、ロード・バランサ・プロキシの存在がWebLogic Serverに通知されます。 この設定を有効にしないと、クライアントIPアドレスが必要な場合やSSLがロード・バランサで終了した場合に予期しない結果が発生します。

    WDTを使用してWebLogicドメインを構成する場合は、モデルYAMLファイルのドメイン・レベルでリソース・セクションを使用します:

    resources:
         WebAppContainer:
             WeblogicPluginEnabled: true
    

    WLSTスクリプトを使用してWebLogicドメインを構成する場合は、次のコマンドを使用します:

    # Configure the Administration Server
    cd('/Servers/AdminServer')
    set('WeblogicPluginEnabled',true)
    ...
    cd('/Clusters/%s' % cluster_name)
    set('WeblogicPluginEnabled',true)
    
  2. イングレス・パス・ルーティング・ルールを構成し、イングレス・リソースをcustomRequestHeaders値で更新します:

    たとえば、Traefikロード・バランサの次のpath-routing YAMLファイルを参照してください。 SSL終了の場合、Traefikはカスタム・ヘッダーWL-Proxy-SSL:trueをWebLogic Serverエンドポイントに渡す必要があります。

    apiVersion: traefik.containo.us/v1alpha1
    kind: IngressRoute
    metadata:
      annotations:
        kubernetes.io/ingress.class: traefik
      name: traefik-console-tls
      namespace: weblogic-domain
    spec:
      entryPoints:
       - websecure
      routes:
      - kind: Rule
        match: PathPrefix(`/console`)
        middlewares:
        - name: tls-console-middleware
          namespace: weblogic-domain
        services:
        - kind: Service
          name: domain1-adminserver
          namespace: weblogic-domain
          port: 7002
    ---
    apiVersion: traefik.containo.us/v1alpha1
    kind: Middleware
    metadata:
      name: tls-console-middleware
      namespace: weblogic-domain
    spec:
      headers:
        customRequestHeaders:
          WL-Proxy-SSL: "true"
        sslRedirect: true
    
  3. HTTPSポートを使用して、WebLogic Server管理コンソールにアクセスします:

    KubernetesサービスからSSLポートを取得します:

    # Get the ingress controller secure web port
    $ SSLPORT=$(kubectl -n traefik get service traefik-operator -o jsonpath='{.spec.ports[?(@.name=="websecure")].nodePort}')
    

    ブラウザから次のURLを使用して、WebLogic Server管理コンソールにアクセスします:

    https://${HOSTNAME}:${SSLPORT}/console
    

    「FMWインフラストラクチャ」ドメインがある場合は、PathPrefix /emのイングレス・パス・ルーティング・ルールを追加し、次のURLを使用してFusion Middleware Control (Enterprise Manager)にアクセスできます:

    https://${HOSTNAME}:${SSLPORT}/em
    

管理サーバーNodePortの使用

次のステップを使用して、WebLogic Server管理コンソールにアクセスするようにNodePortを構成します:

  1. WebLogic管理サーバー構成を更新して、HTTPプロトコルを使用してネットワーク・アクセス・ポイント(カスタム・チャネル)を追加し、domain.spec.adminServer.adminService.channels属性を使用してこのチャネルをNodePortサービスで公開します。

    管理サーバーでのNodePortの設定例については、NodePortの使用」を参照してください。 管理サーバー上のNodePortサービスの詳細は、「ドメイン・リソース」ドキュメントを参照してください。

  2. ブラウザから次のURLを使用して、WebLogic Server管理コンソールにアクセスします:

    http://hostname:adminserver-NodePort/console
    

    adminserver-NodePortは、Kubernetesクラスタ外部の管理サーバーのポート番号です。

    「FMWインフラストラクチャ」ドメインがある場合は、次のURLを使用してFusion Middleware Control (Enterprise Manager)にアクセスすることもできます:

    http://hostname:adminserver-NodePort/em
    

kubectl port-forward接続の使用

Kubernetes port forwardコマンドは、開発ユースケースに便利です。ただし、本番ユースケースでは「推奨されない」です。 専用ローカル・ポートで外部トラフィックを受け入れ、このトラフィックをKubernetesクラスタ内の特定のポッドおよびポートに転送する、Kubernetesクラスタの外部のローカル・プロセスを作成します。 複数のドメインがある場合、各ドメインには専用のポート転送コマンドと個別のローカル・ポートが必要です。

  1. 次の「手順」に従って、ローカル・ポート(Kubernetesの外部)を管理サーバー・ポッドの管理ポートに転送します。

    ノート: ポート転送コマンドとは異なるマシン上のブラウザからWebLogic Server管理コンソールにアクセスする場合は、ポート転送コマンドで、コマンドを実行しているマシンの外部からアクセス可能なIPアドレスを持つ--addressパラメータを指定する必要があります。

  2. ブラウザで、次のURLを使用します:

    http://${HOSTNAME}:${LOCAL_PORT}/console
    

    説明:

    • ${HOSTNAME}は、kubectl port-forwardコマンドが実行されているマシンのDNSアドレスまたはIPアドレスです。 これは、--addressパラメータを使用してカスタマイズでき、デフォルトでlocalhostまたは127.0.0.1です。

    • ${LOCAL_PORT}は、kubectl port-forwardコマンドラインで指定されたローカル・ポートです。

    「FMWインフラストラクチャ」ドメインがある場合は、次のURLを使用してFusion Middleware Control (Enterprise Manager)にアクセスすることもできます:

    http://${HOSTNAME}:${LOCAL_PORT}/em
    

テスト

WebLogic Server管理サーバーURLが正しいことを確認し、ロード・バランサNodePortまたはkubectl port-forwardが期待どおりに動作していることを確認するには、ブラウザと同じロケーションで次のcurlコマンドを実行します:

$ curl http://${HOSTNAME}:${LB_PORT}/console > /dev/null && echo "Connection succeeded."
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   271  100   271    0     0  90333      0 --:--:-- --:--:-- --:--:-- 90333
Connection succeeded.

成功すると、コマンドからの出力にConnection succeededメッセージが表示されます。