3 Kubernetes環境でのContainerized Advanced Management Consoleのデプロイ
デプロイメントを開始する前に、前提条件がすべて満たされていることを確認してください。
詳細は、「環境の設定」を参照してください。
Kubernetesコントローラ・マシン(クラスタのHelmパッケージおよびkubectlが構成されているマシン上)に作業ディレクトリを作成します。必要なすべてのアーティファクト(Helmパッケージ、custom-values.yaml
ファイル、jks
ファイルなど)をこの作業ディレクトリに配置します。この作業ディレクトリから、helm install、updateやuninstallおよびkubectl createやdeleteを実行できます。HelmのCLIコマンドの完全なリストについては、『Helm Commands』を参照してください。
データベースの構成
MySQLまたはOracleデータベース(オンプレミスまたはDBaaS)がインストールおよび構成されていることを確認します。
AMC Helmチャートを介したWebLogicデータ・ソース設定には、DBサービス・ロケータ、名前およびユーザー資格証明を指定する必要があります。
WebLogic Kubernetes Operatorのデプロイ
- オペレータのポッドが実行中かどうかを確認します。オペレータのポッドが起動して実行されるまで時間がかかる場合があります。
kubectl get pods -n <operator-namespace> --watch
コマンド例:$ kubectl get pods -n wko-ns --watch
予想される出力:NAME READY STATUS RESTARTS AGE weblogic-operator-75c85f5649-l6cbx 1/1 Running 0 107s
- オペレータのポッド・ログを表示して、オペレータが稼働中かどうかを確認します:
kubectl logs -n <operator-namespace> -c weblogic-operator deployments/weblogic-operator
コマンド例:$ kubectl logs -n wko-ns -c weblogic-operator deployments/weblogic-operator
KubernetesシークレットおよびConfigMapの作成
シークレットは、パスワード、トークン、キーなどの機密データを含むオブジェクトです。ConfigMapは、非機密データをキーと値のペアで格納するオブジェクトです。
Kubernetesシークレットの作成
パスワード、認証トークン、sshキーなどの機密情報をKubernetesのシークレットに格納して管理できます。機密情報は、コンテナ・イメージで直接使用するよりもシークレットに格納する方が安全で柔軟です。
シークレットを作成して、ユーザー資格証明、データベース接続情報、LDAPサーバー資格証明、メール・サーバー構成などを格納できます。各シークレットの名前は一意である必要があり、これはcustom-values.yaml
ファイルで更新されます。シークレットは、デプロイメント中にこのファイルを介して参照されます。
次の例に示すように、シークレットを作成します。例に示されている資格証明およびネームスペースはサンプル値です。これらの値は要件に応じて変わります。
# Create Secret for WLS Admin Credentials
$ kubectl create secret generic amc-wls-credentials \
--from-literal=username=weblogic \
--from-literal=password='Welcome@123' \
-n amc-ns
##Create Secret for Database Connection
$ kubectl create secret generic amc-ds-credentials \
--from-literal=username=amc2 \
--from-literal=password='amc2' \
-n amc-ns
##Create Secret for mail session in Weblogic
$ kubectl create secret generic amc-mail-credentials \
--from-literal=username=first.last@example.com \
--from-literal=password='mailserverpassword' \
-n amc-ns
##Create Secret for connecting to LDAP server, LDAP Server integration from WLS
$ kubectl create secret generic amc-ldap-credentials \
--from-literal=password='AMC2Admin$' \
-n amc-ns
シークレット名は、custom-values.yaml
ファイルで更新されます。サンプルのcustom-values.yamlファイルを参照してください。
ConfigMapの作成
ConfigMapsは、暗号化されていない機密でない構成情報を格納および共有する場合に役立ちます。構成ファイル、コマンドライン引数、環境変数、ポート番号およびその他の構成アーティファクトをバインドします。
ConfigMapを使用して、環境固有の構成をオーバーライドできます。
Containerized AMCのWLSは、デフォルトのデモ・アイデンティティ・キーストア証明書およびデモ・トラスト・キーストア証明書で構成されています。デプロイ時にデフォルト構成を上書きする場合は、カスタム・アイデンティティおよびJava標準信頼方法を使用します。詳細なステップは、キーストアの構成に関する項を参照してください。ただし、デフォルト構成を上書きするには、有効なアイデンティティ・キーストアが必要です。
次の例に示すように、ConfigMapを作成してキーストア・ファイルを追加します。値は要件に応じて変更します。
# For Reusing existing JKS or Overriding default JKS Certificate
$ kubectl create configmap amc-keystore --from-file=<path>/amckeystore.jks -n amc-ns
ConfigMapの詳細およびファイル名をcustom-values.yaml
ファイルに指定します。キーストアおよび別名に関連付けられたパスワードのシークレットを作成し、custom-values.yaml
ファイルでシークレット名を更新することもできます。
$ kubectl create secret generic amc-jks-credentials \
--from-literal=password='keystore_password' \
-n amc-ns
AMC Helmチャートの構成
AMC Helmチャートは必ずGitHubからダウンロードしてください。WKOで必要とされるドメイン・リソース・ファイルを含むKubernetesマニフェスト・リソースは、Helmチャートとしてパッケージ化されます。
WKOで必要とされるドメイン・リソース・ファイルを含むKubernetesマニフェスト・リソースは、Helmチャートとしてパッケージ化されます。AMC HelmチャートをGitHubからダウンロードし、ローカル・パスからインストールします。Containerized AMCのデプロイに必要な構成パラメータは、AMC Helmチャートに含まれるデフォルトのvalues.yaml
の一部です。
構成可能なパラメータ
デフォルト値はAMC Helmチャートで構成されます。
HelmチャートはGitHubからダウンロードできます。
この表は、AMC Helmチャートで構成されるデフォルト値を示しています。
表3-1 AMC Helmチャートの構成可能な値
構成キー | サブキー(ある場合) | 説明 | デフォルト(ある場合) | 必須かオプションか | 使用できる値の範囲 |
---|---|---|---|---|---|
namespace |
AMCドメインが含まれる必要があるKubernetesネームスペース。 | amc | 必須 | ||
domain |
WebLogic Kubernetes Operatorが管理するドメイン名。 | amc-domain |
オプション | ||
image |
repo |
AMCコンテナ・イメージをホストするリポジトリ。 | なし | 必須 | |
tag |
AMCコンテナ・イメージのタグ。 | なし | 必須 | ||
pullPolicy |
イメージ・プルのポリシー。 | IfNotPresent |
オプション | Always、IfNotPresent、Never | |
pullSecrets |
AMCコンテナ・イメージをホストするコンテナ・レジストリを使用したイメージ・プル認証用。 | なし | オプション | ||
weblogicCredentials |
secretsName |
WebLogicサーバーの資格証明を含むKubernetesシークレットの名前。 | <domain-name>-weblogic-credentials |
選択したオプションによって異なります |
次のいずれかのシナリオ: (a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
username |
WebLogic管理サーバーに使用されるユーザー名。 | なし | 選択したオプションによって異なります | ||
password |
WebLogic管理サーバーに使用されるパスワード。 | なし | 選択したオプションによって異なります | ||
weblogicSSLCertificateOverride |
enabled |
WebLogicサーバーで使用するデフォルトのSSL証明書をオーバーライドする場合に有効にします。 | false |
オプション | |
configmapName |
ConfigMapは、AMCネームスペースのjks ファイルから事前に作成する必要があります。名前はこのフィールドに対して更新する必要があります。
|
必須(有効な場合) | |||
keystore: filename |
構成マップの作成に使用されるjks ファイルの名前。
|
必須(有効な場合) | |||
keystore:secretsName |
キーストア・パスワードを含むKubernetesのシークレットの名前。 | <domain-name>-weblogic-keystore-credentials |
選択したオプションによって異なります | 次のいずれかのシナリオ:
(a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
|
keystore:password |
キーストアのプレーン・テキスト・パスワード。 | 選択したオプションによって異なります | |||
keystorealias:alias |
jks 内の別名。
|
必須(有効な場合) | |||
keystorealias:secretsName |
キーストア別名パスワードを含むKubernetesシークレットの名前。 | <domain-name>-weblogic-keystorealias-credentials |
選択したオプションによって異なります | 次のいずれかのシナリオ:
(a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
|
keystorealias:password |
選択したオプションによって異なります | ||||
replicaCount |
スピン・アップする管理対象サーバー・ポッドの数。 ノート: 管理対象サーバーの自動スケーリングはまだサポートされていません。 |
2 | 必須 | 2から10 | |
restartVersion |
この値を増分すると、デプロイメントのアップグレード時にドメインの再起動およびイントロスペクトが強制されます。 | 1 | オプション | ||
extraEnv |
JAVA_OPTIONS |
WebLogicコンテナに適用されるJavaオプション(メモリー、プロキシなど)。 | -Xmx2g-Xms512m - Dweblogic.StdoutDebugEnabled=false |
オプション | |
USER_MEM_ARGS |
WebLogicコンテナに提供されるユーザー・メモリー引数。 | -XX:+UseContainerSupport |
オプション | ||
resources |
limits |
WebLogicコンテナのCPUまたはメモリーのKubernetesリソース制限を設定します。 | 管理サーバー・メモリーの場合は3Gi 、管理対象サーバー・メモリーの場合は5Gi
|
オプション | |
requests |
WebLogicコンテナのCPUまたはメモリーに対するKubernetesリソース・リクエストを設定します。 | 管理サーバーと管理対象サーバーの両方のメモリーの場合は1Gi
|
オプション | ||
isVersionUpgrade |
AMCバージョンのアップグレードの場合はtrueに設定します。 | false |
オプション | ||
database |
type |
データベースのタイプ。 | mysql |
必須 | mysql、oracle |
name |
データベースの名前。 | amc2 |
必須 | ||
credentials.secretsName |
データベース接続の資格証明を含むKubernetesシークレットの名前。 | <domain-name>-datasource-credentials |
選択したオプションによって異なります | 次のいずれかのシナリオ:
(a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
|
credentials.username |
データベース接続のユーザー名。 | なし | 選択したオプションによって異なります | ||
credentials.password |
データベース接続のパスワード。 | なし | 選択したオプションによって異なります | ||
host |
データベース・インスタンスが実行されているホスト名。 | なし | 必須 | ||
port |
データベース・インスタンスが実行されているポート番号。 | 3306 | 必須 | ||
isOracle11 |
AMCのデータベースとしてOracle 11gを使用している場合に有効にします。 | false |
オプション | ||
use_cj_driver_mysql8 |
com.mysql.cj.jdbc.Driver の使用を有効にします。
|
false |
オプション | MySQL8およびWLS 12.2.1.4を使用している場合にのみ有効にします | |
nodePort |
enabled |
true に設定すると、NodePortサービスが有効化されます。
|
false |
オプション | |
adminserver |
Kubernetes NodePortサービスを使用してクラスタ外にアクセスするためのWebLogic管理サーバー・インタフェースを公開するポート番号。 | ランダムなポート割当て | オプション | ||
managedserver |
Kubernetes NodePortサービスを使用してクラスタ外にアクセスするためのAMCインタフェースを公開するポート番号。 | ランダムなポート割当て | オプション | ||
loadBalancer |
enabled |
ノート: LoadBalancerサービスがContainerized AMCに対して有効になると、オプションを無効にしても維持されます。これは、割り当てられた外部IPアドレスを保持するために行われます。このサービスが誤って削除されないようにしてください。誤って削除されると、AMCサービスにアクセスできなくなります。 ノート: |
false |
オプション | |
port |
Kubernetes LoadBalancerサービスを使用してクラスタ外にアクセスするためのAMCインタフェースを公開するポート番号。 | 8002 | 必須(有効な場合) | ||
annotations |
LoadBalancerサービスの注釈。 | なし | オプション | ||
mailServer |
enabled |
メール・サーバー構成を有効にするには、true に設定します。
|
false |
オプション | |
properties |
メール・サーバーの設定。 | なし | 必須(有効な場合) | ||
credentials.secretsName |
メール・サーバー接続の資格証明を含むKubernetesシークレットの名前。 | <domain-name>-mailserver-credentials |
選択したオプションによって異なります | 次のいずれかのシナリオ:
(a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
|
credentials.username |
メール・サーバー接続のユーザー名。 | なし | 選択したオプションによって異なります | ||
credentials.password |
メール・サーバー接続のパスワード。 | なし | 選択したオプションによって異なります | ||
ldap |
enabled |
LDAPサーバー構成を有効にするには、true に設定します。
|
false |
オプション | |
credentials.secretsName |
LDAP接続の資格証明を含むKubernetesシークレットの名前。 | <domain-name>-ldap-credentials |
選択したオプションによって異なります | 次のいずれかのシナリオ:
(a): ユーザーは、同じネームスペースにキーとして (b): ユーザーは |
|
credentials.password |
LDAPサーバー接続のパスワード。 | なし | 選択したオプションによって異なります | ||
host |
LDAPサーバーのホスト名です。 | なし | 必須(有効な場合) | ||
port |
LDAPサービスのポート番号。 | 389 | オプション | ||
enableSSL |
LDAPにSSLを使用するには、true に設定します。
|
false |
オプション | ||
principal |
LDAPプリンシパル | なし | 必須(有効な場合) | ||
userbaseDN |
ユーザーのベース・ドメイン名(DN)。 | なし | 必須(有効な場合) | ||
groupbaseDN |
グループのベース・ドメイン名(DN)。 | なし | 必須(有効な場合) |
Containerized Advanced Management Consoleのデプロイ
AMCデプロイメントを続行する前にWKOが正常にデプロイされていることを確認してください。
kubectl get events -n <amc-namespace> --watch
kubectl get all -n <amc-namespace> -o wide
$ kubectl get events -n amc-ns --watch
$ kubectl get all -n amc-ns -o wide
しばらくすると、ポッドとサービスの詳細が表示され、サーバー・ステータスがRunning
と表示されます。
Containerized AMCへのアクセス
Containerized AMCには、custom-values.yaml
の構成に応じて、NodePortサービスまたはLoadBalancerサービス(あるいはその両方)を使用してアクセスできます。
AMCをKubernetes環境にデプロイし、コマンドkubectl get all -n amc-ns
を使用してデプロイメントのステータスを確認すると、完全なノードおよびサーバーの情報が表示されます。次に出力の例を示します。
図3-1 サーバーの詳細
内部ポートおよび外部ポートを含む、サーバーおよびノードの詳細が表示されます。
LoadBalancerサービスを使用したContainerized AMCへのアクセス
LoadBalancerサービス・タイプで、外部IPおよびポート番号を書き留めます。この値を使用して、Containerized AMCにアクセスするためのURLを作成できます。この例では、Containerized AMCにアクセスするためのURLはhttps://203.0.113.10:6503/amcwebui/login.html
です。
NodePortサービスを使用したContainerized AMCへのアクセス
NodePortサービス・タイプでは、KubernetesノードのIPアドレス/ホスト名、および各NodePortサービスに対してマップされた外部ポート番号を使用して、管理サーバーおよびAMCサーバーのURLを作成できます。
- 管理サーバー:
http://<kubernetes-node>:30720/console/login/LoginForm.jsp
- AMCサーバー:
https://<kubernetes-node>:30721/amcwebui/login.html
次のコマンドを実行して、KubernetesノードのIPアドレスを取得します:
kubectl get nodes -o wide
custom-values.yaml
ファイルに指定されている資格証明を使用してログインできます。
ノート:
- NodePortサービスではなく、LoadBalancerサービスを使用してContainerized AMCにアクセスすることをお薦めします。
custom-values.yaml
ファイルでLoadBalancerサービスのみが有効になっている場合、WebLogic管理サーバー・コンソールにはアクセスできません。管理サーバー・コンソールにアクセスする必要がある場合は、NodePortサービスも有効にします。
Containerized AMCの初期化
初期化中に、ホスト名(またはホストIP)を指定する必要があります。このホスト名(またはホストIP)は、すべてのエージェントがサーバーとの通信に使用します。
デフォルトでは、AMC初期化ウィザードはSSL証明書のCN(共通名)からサーバー・ホスト名をフェッチします。ただし、CN名はContainerized AMCの有効なサーバー・ホスト名ではない場合があります。したがって、初期化中に、Containerized AMCにアクセスするための有効なサーバー・ホスト名を指定します。また、指定後にホスト名(またはホストIP)を変更する必要がないことを確認してください。
たとえば、次のスクリーン・ショットに示すように、ホスト名はデフォルトでSSL証明書からフェッチされます。これは有効なホスト名ではありません。Containerized AMCがサーバーと通信するには、有効なホスト名またはIPを指定する必要があります。
図3-2 Containerized AMCの初期化