機械翻訳について

ポート転送の使用

目次

概要

WebLogic Kubernetes Operatorバージョン3.3.2以降、またはIstio-enabledドメインを使用している場合、kubectl port-forwardコマンドを使用して、WebLogic Server管理コンソール、リモート・コンソールおよびWLSTの外部アクセスを設定できます。 この方法は、WebLogicのポートをパブリック・ネットワークに公開せずに、プライベート・ローカル・ネットワークからWebLogicを管理する場合に特に便利です。

ステップは、次のとおりです。

  1. 「ポート転送アクセス用の管理サーバー・ネットワーク・チャネル」を設定します。
  2. WLSTアクセスを設定していて、ポート転送ローカル・ポートがWebLogic管理サーバー・ポッドのポート番号と同じにならない場合は、「ローカル・ポートとリモート・ポートが一致しない場合にWLSTアクセスを有効にします」で追加の設定ステップを参照してください。
  3. 最初に「ポート転送ノートと警告」を確認し、次に「ポート転送コマンド」を実行します。
  4. WebLogic Server管理コンソール、リモート・コンソールまたはWLSTを、ポート転送コマンドのローカル・アドレスとともに使用します。
  5. 最後に、「ポート転送の終了」です。

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

ポート転送アクセスのための管理サーバー・ネットワーク・チャネルの設定

kubectl port-forwardコマンドがWebLogic管理サーバー・ポッドと通信できるようにするには、オペレータが管理サーバー構成を変更して、既存の管理プロトコル対応ポートごとにlocalhostアドレスでネットワーク・チャネル(ネットワーク・アクセス・ポイント)を追加する必要があります。 この動作は、バージョンおよびドメインのリソース構成によって異なります:

  • Istioがドメインで有効になっていない場合、オペレータ・バージョン3.3.2以降、またはIstio 1.10以降を実行しているIstio対応ドメインの場合、この動作は、domain.spec.adminServer.adminChannelPortForwardingEnabledドメイン・リソース属性を使用してドメイン・リソースで構成できます。

    この属性は、オペレータ・バージョン4.0以降ではデフォルトで有効になり、4.0より前のバージョンではデフォルトで無効になっています。

    この属性の詳細は、kubectl explain domain.spec.adminServer.adminChannelPortForwardingEnabledコマンドを実行するか、ドメイン・リソースschemaを参照してください。

  • 1.10より前のバージョンのIstioを実行しているドメインにWLSTアクセスが必要な場合は、次の属性で構成されたWebLogic管理サーバーに追加のネットワーク・チャネルを追加する必要があります:

    • t3として定義されるプロトコル。
    • localhostで定義されたリスニング・アドレス。 (ノート): アドレスをlocalhostに設定するのは、自己文書化のみを目的としています。 住所は任意の値に設定でき、オペレータは必須値にオーバーライドします。)
    • リスニング・ポート。 ノート: v1.10より前のIstioバージョンで使用するために作成された追加のネットワーク・チャネルで定義されているポートと競合しないポート値を選択します。 詳細は、「v1.10より前のIstioバージョン用のネットワーク・チャネルを追加しました」を参照してください。
    • このネットワーク・チャネルのHTTPプロトコルを有効にします。
    • external listen addressまたはexternal listen portを設定「しない」でください。

1.10より前のIstioバージョンを実行しているIstio対応ドメインの場合、コンソールのみのアクセスが必要な場合は、WebLogic管理サーバーにネットワーク・チャネルを追加する必要はありません。

たとえば、管理サーバーのチャネルPortForwardのWebLogicドメインconfig.xmlファイルのスニペットを次に示します。

<server>
  <name>admin-server</name>
  <network-access-point>
    <name>PortForward</name>
    <protocol>t3</protocol>
    <listen-address>localhost</listen-address>
    <listen-port>7890</listen-port>
    <http-enabled-for-this-protocol>true</http-enabled-for-this-protocol>
  </network-access-point>
</server>

Model in Image (MII)およびDomain in Image (DII)の場合は、管理サーバー用のチャネルPortForwardのスニペット・モデル構成を次に示します。

topology:
    ...
    Server:
        'admin-server':
            ListenPort: 7001
            NetworkAccessPoint:
                PortForward:
                    Protocol: 't3'
                    ListenAddress: 'localhost'
                    ListenPort: '7890'
                    HttpEnabledForThisProtocol: true

ドメインがすでに実行中で、構成を変更した場合は、そのイントロスペクタ・ジョブを再実行し、構成の変更を有効にするために管理ポッドが再起動することを確認する必要があります。

IstioがドメインまたはIstio 1.10以降を実行しているIstio対応ドメインで有効化されて「いない」場合、管理チャネルのポート転送が有効になると、オペレータは次のネットワーク・チャネル(ネットワーク・アクセス・ポイントとも呼ばれる)をWebLogic管理サーバー・ポッドに自動的に追加します:

説明 チャネル名 リスニング・アドレス ポート プロトコル
管理ポートまたは管理チャネルが構成されておらず、非SSLデフォルト・チャネルが存在する場合 internal-t3 localhost サーバー・リスニング・ポート t3
管理ポートまたは管理チャネルが構成されておらず、SSLデフォルト・チャネルが存在する場合 internal-t3s localhost サーバーSSLリスニング・ポート t3s
管理ポートが有効な場合 internal-admin localhost WebLogic管理ポート admin
1つ以上のカスタム管理チャネルが構成されている場合 internal-admin${index} ($ {index}は1から始まり、カスタム管理チャネルごとに1ずつ増える数値) localhost カスタム管理ポート admin

管理サーバー・ポッドへのポート転送

「ポート転送アクセスのための管理サーバー・ネットワーク・チャネルの設定」がある場合は、kubectl port-forwardコマンドを実行してそのようなチャネルにアクセスできます。 次のコマンドを実行するとします。

  • デフォルトでは、コマンドを実行するマシン上のlocalhostで選択したポートを開きます。
  • このロケーションからのトラフィックをポッドのアドレスとポートに転送します。 管理アクセスには、管理サーバー・ポッドのポートに転送する必要があります
    管理トラフィックを受け入れます。

ポート転送は、リモート・ポッドおよびコマンドが実行されているかぎり発生します。 コマンドを終了すると、転送が停止し、ローカル・ポートとアドレスが解放されます。 ポッドがサイクルまたはシャットダウンした場合、フォワーディングは停止し、フォワーディングを再開するには、ポッドが回復した後にコマンドを再実行する必要があります。

kubectl port-forwardコマンドの構文は次のとおりです:

kubectl port-forward K8S_RESOURCE_TYPE/K8S_RESOURCE_NAME [options] LOCAL_PORT:REMOTE_PORT_ON_RESOURCE

詳細な使用方法については、Kubernetesリファレンス・ドキュメントのport-forwardを参照し、kubectl port-forward -hを実行します。

例、ノートおよび警告については、「ポート転送の例」および「ポート・フォワード・ノートと警告」を参照してください。

ポート転送の例

たとえば、WebLogicドメインに次のものがあるとします:

  • ドメインUID domain1
  • ネームスペースmynamespace
  • 非SSLリスニング・ポート7001でリスニングするadmin-serverという名前の管理サーバー
  • 管理サーバーに管理ポートまたは管理チャネルが構成されていません

また、このドメインには「ポート転送アクセスのための管理サーバー・ネットワーク・チャネルの設定」があり、次のいずれかのコマンドを実行してローカル・ポート32015を管理サーバー・ポッドに転送できます:

kubectl port-forward pods/domain1-admin-server -n mynamespace 32015:7001

または

kubectl port-forward service/domain1-admin-server -n mynamespace 32015:7001

コマンド出力は次のようになります:

Forwarding from 127.0.0.1:32015 -> 7001

この例では、次のようになります。

  • kubectl port-forwardコマンドを実行するマシン上のブラウザを使用して、http://localhost:32015/console URLでWebLogic Server管理コンソールにアクセスできます。

  • kubectl port-forwardコマンドを実行するマシンでWLSTを使用して、次のようにt3://localhost:32015に接続できます:

    $ $ORACLE_HOME/oracle_common/common/bin/wlst.sh
    
    Initializing WebLogic Scripting Tool (WLST) ...
    
    Welcome to WebLogic Server Administration Scripting Shell
    
    Type help() for help on available commands
    
    wls:/offline> connect('myadminuser','myadminpassword','t3://localhost:32015')
    Connecting to t3://localhost:32015 with userid myadminuser ...
    Successfully connected to Admin Server "admin-server" that belongs to domain "base_domain".
    
    Warning: An insecure protocol was used to connect to the server.
    To ensure on-the-wire security, the SSL port or Admin port should be used instead.
    
    wls:/base_domain/serverConfig/> exit()
    

ポート・フォワード・ノートと警告

  • セキュリティ警告: ポート・フォワード接続では、WebLogic T3またはKubernetesクラスタの外部の管理チャネルを公開できます。 ドメインのセキュリティに関する考慮事項については、「外部ネットワーク・アクセスのセキュリティ」を参照してください。

  • 管理ポートまたはSSLポートの操作: 管理サーバーでWebLogic管理ポートが構成および有効化されている場合は、ポッドの他のポートではなく、このポートに転送する必要があります。 この場合、管理コンソール・アクセスにはセキュアなhttpsプロトコルを使用し、WLSTアクセスにはt3sプロトコルを使用する必要があります。 同様に、SSLポートに転送する場合は、管理コンソールのhttpsおよびt3sプロトコルとWLSTアクセスをそれぞれ使用する必要があります。

  • ポッド失敗および再起動からのリカバリ: ポッド・インスタンスに失敗が発生したり再起動すると、ポート・フォワード接続が終了します。 同じコマンドを再実行して、新しい転送セッションを確立し、転送を再開できます。

  • ローカル・ポートがリモート・ポートと異なる場合のWLSTの使用: WLSTアクセスを設定していて、ポート転送ローカル・ポートがWebLogic管理サーバー・ポッドのポート番号と同じにならない場合は、ローカル・ポートとリモート・ポートが一致しない場合のWLSTアクセスの有効化で追加の設定ステップを参照してください。

  • ポート転送用のカスタム・ローカルIPアドレスの指定:

    ポート転送にカスタムのローカルIPアドレスを指定すると、WLSTまたはブラウザをport forwardコマンドとは異なるマシンで実行できます。

    kubectl port-forwardコマンドの--addressオプションを使用すると、localhostの代わりに、またはそれに加えて特定のIPアドレスをリスニングできます。

    --addressオプションは、数値IPアドレスまたはローカル・ホスト(コンマ区切り)のみを値として受け入れます。

    たとえば、管理コンソールへのアクセスをhttp://my-ip-address:32015/consoleで有効にするには、次のコマンドを使用します:

    kubectl port-forward --address my-ip-address pods/domain1-admin-server -n mynamespace 32015:7001
    

    ヘルプおよび例については、kubectl port-forward -hを参照してください。

  • オプションで、kubectl port-forwardにローカル・ポートを選択:

    port forwardコマンドにローカル・ポートを指定しない場合は、次のようになります:

    kubectl port-forward pods/domain1-admin-server -n mynamespace :7001
    

    このコマンドでは、使用されていないローカル・ポート番号が検索され、その出力は次のようになります:

    Forwarding from 127.0.0.1:63753 -> 7001
    

    また、管理コンソールにはhttp://localhost:63753/console URLを使用してアクセスできます。

ローカル・ポートとリモート・ポートが一致しない場合のWLSTアクセスの有効化

ローカル(転送された)ポート番号が管理ポート番号と同じでない場合、WLSTアクセスはデフォルトで機能せず、管理サーバー・ログにBEA-000572 RJVMエラーが表示されることがあります:

<Aug 30, 2021 9:33:24,753 PM GMT> <Error> <RJVM> <BEA-000572> <The server rejected a connection attempt JVMMessage from: '-2661445766084484528C:xx.xx.xx.xxR:-5905806878036317188S:domain1-admin-server:domain1:admin-server' to: '0B:xx.xx.xx.xx:[-1,-1,32015,-1,-1,-1,-1]' cmd: 'CMD_IDENTIFY_REQUEST', QOS: '102', responseId: '-1', invokableId: '-1', flags: 'JVMIDs Sent, TX Context Not Sent, 0x1', abbrev offset: '114' probably due to an incorrect firewall configuration or administrative command.><

問題を回避するには、ドメイン・リソースYAMLの-Dweblogic.rjvm.enableprotocolswitch=trueシステム・プロパティを使用して、管理サーバーのJAVA_OPTIONS環境変数を構成します。 このスイッチの詳細については、MOS 'Doc 860340.1 'を参照してください。

ポート転送の終了

ポート・フォワード接続は、kubectl port-forwardコマンドの実行中にのみアクティブになります。

port forwardコマンドを実行している端末でCTRL+Cキーを押すと、ポート・フォワード接続を終了できます。

バックグラウンドでコマンドを実行すると、kill -9 <pid>コマンドを使用してプロセスを強制終了できます。 例えば:

$ ps -ef | grep port-forward
oracle   27072 25312  1 21:45 pts/3    00:00:00 kubectl -n mynamespace port-forward pods/domain1-admin-server 32015:7001
oracle   27944 11417  0 21:45 pts/1    00:00:00 grep --color=auto port-forward
$ kill -9 27072