機械翻訳について

トラブルシューティング

ポッド・エラー詳細の取得

WebLogicドメインの作成中に次のメッセージが表示される場合があります: "the job status is not Completed!"

status on iteration 20 of 20
pod domain1-create-weblogic-sample-domain-job-nj7wl status is Init:0/1
The create domain job is not showing status completed after waiting 300 seconds.
Check the log output for errors.
Error from server (BadRequest): container "create-weblogic-sample-domain-job" in pod "domain1-create-weblogic-sample-domain-job-nj7wl" is waiting to start: PodInitializing
[ERROR] Exiting due to failure - the job status is not Completed!

次に示すように、kubectl describe podを実行すると、さらにエラーの詳細を取得できます:

$ kubectl describe pod <your-pod-name>

出力例を次に示します:

$ kubectl describe pod domain1-create-weblogic-sample-domain-job-nj7wl
Events:
Type     Reason       Age                  From                                        Message
----     ------       ----                 ----                                        -------
Normal   Scheduled    4m2s                 default-scheduler                           Successfully assigned default/domain1-create-weblogic-sample-domain-job-qqv6k to aks-nodepool1-58449474-vmss000001
Warning  FailedMount  119s                 kubelet, aks-nodepool1-58449474-vmss000001  Unable to mount volumes for pod "domain1-create-weblogic-sample-domain-job-qqv6k_default(15706980-73cb-11ea-b804-b2c91b494b00)": timeout expired waiting for volumes to attach or mount for pod "default"/"domain1-create-weblogic-sample-domain-job-qqv6k". list of unmounted volumes=[weblogic-sample-domain-storage-volume]. list of unattached volumes=[create-weblogic-sample-domain-job-cm-volume weblogic-sample-domain-storage-volume weblogic-credentials-volume default-token-zr7bq]
Warning  FailedMount  114s (x9 over 4m2s)  kubelet, aks-nodepool1-58449474-vmss000001  MountVolume.SetUp failed for volume "wls-azurefile" : Couldn't get secret default/azure-secrea

管理コンソールへのアクセスに失敗

この失敗の一般的な理由と、調査に役立つヒントをいくつか示します。

  • WebLogicドメインの作成ジョブが失敗しました

    デプロイ・ログを確認し、kubectl describe pod podnameで失敗の詳細を見つけてください。 「ポッド・エラーの詳細を取得しています」に進んでください。

  • サーバーの起動プロセスはまだ実行中です

    kubectl get svcでチェックし、domainUID-admin-serverdomainUID-managed-server1およびdomainUID-managed-server2がリストされていない場合は、管理サーバーが起動するまで待機する必要があります。

次の出力は、管理サーバーが起動した場合の例です。

$ kubectl get svc
NAME                               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)              AGE
domain1-admin-server               ClusterIP      None          <none>          30012/TCP,7001/TCP   7m3s
domain1-admin-server-ext           NodePort       10.0.78.211   <none>          7001:30701/TCP       7m3s
domain1-admin-server-external-lb   LoadBalancer   10.0.6.144    40.71.233.81    7001:32758/TCP       7m32s
domain1-cluster-1-lb               LoadBalancer   10.0.29.231   52.142.39.152   8001:31022/TCP       7m30s
domain1-cluster-cluster-1          ClusterIP      10.0.80.134   <none>          8001/TCP             1s
domain1-managed-server1            ClusterIP      None          <none>          8001/TCP             1s
domain1-managed-server2            ClusterIP      None          <none>          8001/TCP             1s
internal-weblogic-operator-svc     ClusterIP      10.0.1.23     <none>          8082/TCP             9m59s
kubernetes                         ClusterIP      10.0.0.1      <none>          443/TCP              16m

サービスは稼働しているが、WLS管理コンソールがまだ使用できない場合は、kubectl describe domainを使用してドメイン・ステータスを確認します。

$ kubectl describe domain domain1

cluster-1のステータスがServersReadyおよびAvailableであることを確認します。 admin-servermanaged-server1およびmanaged-server2のステータスは、RUNNINGである必要があります。 それ以外の場合、クラスタはまだ完全に準備できている可能性があります。

「サンプルのステータスを表示するには、ここをクリックしてください。」

ドメインのデバッグ

ドメインYAMLファイルのデプロイ後にModel in Imageの問題をデバッグするための推奨事項については、「デバッグ」を参照してください。

WSL2の不正なタイムスタンプ

WSL2で実行している場合は、「タイムスタンプの問題が不正です」というエラーにより、Azure CLIがブロックされる可能性があります。 次のエラーが表示されることがあります。

$ kubectl get pod
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2020-11-25T15:58:10+08:00 is before 2020-11-27T04:25:04Z

次のコマンドを実行して、WSL2システム時間を更新できます:

# Fix the outdated systime time
$ sudo hwclock -s
# Check systime time
$ data
Fri Nov 27 13:07:14 CST 2020

オペレータ・インストールのタイムアウト

オペレータのインストール中にタイムアウトが発生し、次のエラーが表示される場合があります:

$ helm install weblogic-operator weblogic-operator/weblogic-operator \
   --namespace sample-weblogic-operator-ns \
   --set serviceAccount=sample-weblogic-operator-sa \
--wait
Error: timed out waiting for the condition

メイン・ブランチで作業していることを確認します。 オペレータを削除して再度インストールしてください。

$ helm uninstall weblogic-operator -n sample-weblogic-operator-ns
release "weblogic-operator" uninstalled

メインをチェックアウトし、オペレータをインストールします。

$ cd weblogic-kubernetes-operator
$ git checkout main
$ helm install weblogic-operator weblogic-operator/weblogic-operator \
   --namespace sample-weblogic-operator-ns \
   --set serviceAccount=sample-weblogic-operator-sa \
   --wait

WebLogic Image Toolの失敗

WITのバージョンが1.9.8より古い場合、Dockerビルド・キットが有効になっていると、./imagetool/bin/imagetool.shの実行中にエラーが発生します。

次の警告メッセージが表示されます:

failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to parse stage name "WDT_BUILD": invalid reference format: repository name must be lowercase

このエラーを解決するには、新しいバージョンのWITにアップグレードするか、次のコマンドを使用してDockerビルド・キットを無効にし、imagetoolコマンドを再度実行します。

$ export DOCKER_BUILDKIT=0
$ export COMPOSE_DOCKER_CLI_BUILD=0

WebLogic Kubernetes Operatorのインストール失敗

現在、オペレータのインストールをブロックする2つのケースに対応しています:

  • AKSクラスタ内のシステムポッドは保留中です。
  • オペレータ・イメージは使用できません。

次のステップに従って、エラーを掘り下げます。

AKSクラスタ・システム・ポッドは保留中です

AKSクラスタ内のシステムポッドが保留中の場合、オペレータのインストールはブロックされます。

これはエラー例で、警告メッセージは「ポッドのスケジュールに使用できるノードがありません」です。

$ kubectl get pod -A
NAMESPACE                     NAME                                        READY   STATUS    RESTARTS   AGE
default                       weblogic-operator-c5c78b8b5-ssvqk           0/1     Pending   0          13m
kube-system                   coredns-79766dfd68-wcmkd                    0/1     Pending   0          3h22m
kube-system                   coredns-autoscaler-66c578cddb-tc946         0/1     Pending   0          3h22m
kube-system                   dashboard-metrics-scraper-6f5fb5c4f-9f5mb   0/1     Pending   0          3h22m
kube-system                   kubernetes-dashboard-849d5c99ff-xzknj       0/1     Pending   0          3h22m
kube-system                   metrics-server-7f5b4f6d8c-bqzrn             0/1     Pending   0          3h22m
kube-system                   tunnelfront-765bf6df59-msj27                0/1     Pending   0          3h22m
sample-weblogic-operator-ns   weblogic-operator-f86b879fd-v2xrz           0/1     Pending   0          35m
$ kubectl describe pod weblogic-operator-f86b879fd-v2xrz -n sample-weblogic-operator-ns
Events:
  Type     Reason            Age                 From               Message
  ----     ------            ----                ----               -------
  Warning  FailedScheduling  71s (x25 over 36m)  default-scheduler  no nodes available to schedule pods

このエラーが発生した場合は、AKSクラスタを削除して新しいクラスタを作成します。

kubectl get pod -Aを実行して、すべてのシステム・ポッドが実行されていることを確認します。

$ kubectl get pod -A
NAMESPACE                     NAME                                        READY   STATUS    RESTARTS   AGE
kube-system                   coredns-79766dfd68-ch5b9                    1/1     Running   0          3h44m
kube-system                   coredns-79766dfd68-sxk4g                    1/1     Running   0          3h43m
kube-system                   coredns-autoscaler-66c578cddb-s5qm5         1/1     Running   0          3h44m
kube-system                   dashboard-metrics-scraper-6f5fb5c4f-wtckh   1/1     Running   0          3h44m
kube-system                   kube-proxy-fwll6                            1/1     Running   0          3h42m
kube-system                   kube-proxy-kq6wj                            1/1     Running   0          3h43m
kube-system                   kube-proxy-t2vbb                            1/1     Running   0          3h43m
kube-system                   kubernetes-dashboard-849d5c99ff-hrz2w       1/1     Running   0          3h44m
kube-system                   metrics-server-7f5b4f6d8c-snnbt             1/1     Running   0          3h44m
kube-system                   omsagent-8tf4j                              1/1     Running   0          3h43m
kube-system                   omsagent-n9b7k                              1/1     Running   0          3h42m
kube-system                   omsagent-rcmgr                              1/1     Running   0          3h43m
kube-system                   omsagent-rs-787ff54d9d-w7tp5                1/1     Running   0          3h44m
kube-system                   tunnelfront-794845c84b-v9f98                1/1     Running   0          3h44m
WebLogic Kubernetes Operator ErrImagePull

ポッド・ステータスからErrImagePullのエラーが発生した場合は、docker pullを使用してオペレータ・イメージを確認します。 エラーが発生した場合は、3.1.1より大きいバージョンに切り替えることができます。

$ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:<version>
# Example: pull 3.1.1.
$ docker pull ghcr.io/oracle/weblogic-kubernetes-operator:3.1.1
3.1.1: Pulling from oracle/weblogic-kubernetes-operator
980316e41237: Pull complete
c980371d97ea: Pull complete
db19c8ff0d12: Pull complete
550f44317ae5: Pull complete
be2e701f5ee0: Pull complete
1cb891615559: Pull complete
4f4fb700ef54: Pull complete
Digest: sha256:6b060ec1989fcb26e1acb0d0b906d81fce6b8ec2e0a30fa2b9d9099290eb6416
Status: Downloaded newer image for ghcr.io/oracle/weblogic-kubernetes-operator:3.1.1
ghcr.io/oracle/weblogic-kubernetes-operator:3.1.1

サブスクリプションの所有者ではないため、ACRをアタッチできません

ACRを作成できず、サービス・プリンシパルを使用している場合は、「サービス・プリンシパルによるAzure Container Registry認証」の説明に従って手動ロール割当てを使用してACRへのアクセス権を付与できます。

まず、AKSクラスタの作成時に使用されるサービス・プリンシパルのobjectIdを見つけます。 ファイルに保存するように指示されたaz ad sp create-for-rbacからの出力が必要になります。 出力内では、nameプロパティの値が必要です。 httpで開始されます。 このコマンドを使用してobjectIdを取得します。

$ az ad sp show --id http://<your-name-from-the-saved-output> | grep objectId
"objectId": "nror4p30-qnoq-4129-o89r-p60n71805npp",

次に、このコマンドを使用して、acrpullロールをそのサービス・プリンシパルに割り当てます。

$ az role assignment create --assignee-object-id <your-objectId-from-above> --scope $AKS_PERS_RESOURCE_GROUP --role acrpull
{
  "canDelegate": null,
  "condition": null,
...
  "type": "Microsoft.Authorization/roleAssignments"
}

その後、エラーが発生したコマンドを再試行します。

仮想マシン・サイズはサポートされていません

AKSクラスタの作成時に次のエラーが発生した場合は、リージョンで使用可能なVMサイズを使用してください。

$ az aks create \
   --resource-group $AKS_PERS_RESOURCE_GROUP \
   --name $AKS_CLUSTER_NAME \
   --node-count 2 \
   --generate-ssh-keys \
   --nodepool-name nodepool1 \
   --node-vm-size Standard_DS2_v2 \
   --location $AKS_PERS_LOCATION \
   --service-principal $SP_APP_ID \
   --client-secret $SP_CLIENT_SECRET
BadRequestError: Operation failed with status: 'Bad Request'. Details: Virtual Machine size: 'Standard_DS2_v2' is not supported for subscription subscription-id in location 'eastus'. The available VM sizes are 'basic_a0,basic_a1,basic_a2,basic_a3,basic_a4,standard_a2'. Please refer to aka.ms/aks-vm-sizes for the details.
ResourceNotFoundError: The Resource 'Microsoft.ContainerService/managedClusters/wlsaks1613726008' under resource group 'wlsresourcegroup1613726008' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix

例に示すように、standard_a2を使用できます。そのサイズのCPUおよびメモリーに注意し、メモリー要件を満たしていることを確認してください。

exec /weblogic-operator/scripts/introspectDomain.sh: exec format error

このエラーは、imagetool.shコマンドを実行して、Apple Siliconを使用してmacOSの下にDockerイメージをビルドした場合に発生します。 これはサポートされていません。 「WebLogic Image Tool問題トラッカでのこの問題」を参照してください。