Azure での OpenShift Container Platform 3.11 デプロイのトラブルシューティング
適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット
OpenShift クラスターが正常にデプロイされない場合は、Azure portal にエラーが出力されます。 この出力が読みにくく、問題を簡単に識別できない場合があります。 この出力にざっと目を通して、終了コード 3、4、または 5 を探してください。 これら 3 つの終了コードの情報を次に示します。
- 終了コード 3: Red Hat サブスクリプション ユーザー名/パスワードまたは組織 ID/ライセンス認証キーが正しくありません
- 終了コード 4: Red Hat のプール ID が正しくないか、エンタイトルメントがありません
- 終了コード 5: Docker シン プールのボリュームをプロビジョニングできません
他のすべての終了コードについては、ssh 経由でホストに接続して、ログ ファイルを表示してください。
OpenShift Container Platform 3.11
Ansible プレイブック ホストに SSH 接続します。 テンプレートまたは Marketplace オファーの場合は、踏み台ホストを使用します。 踏み台ホストから、クラスター内の他のすべてのノード (マスター、インフラストラクチャ、CNS、コンピューティング) に SSH 接続できます。 ログ ファイルを表示するには、root である必要があります。 SSH アクセスでは root は既定で無効になるため、root を使用して他のノードに接続しないでください。
OKD
Ansible プレイブック ホストに SSH 接続します。 OKD テンプレート (バージョン 3.9 以前) では、master-0 ホストを使用します。 OKD テンプレート (バージョン3.10 以降) では、踏み台ホストを使用します。 Ansible プレイブック ホストから、クラスター内の他のすべてのノード (マスター、インフラストラクチャ、CN、コンピューティング) に SSH 接続できます。 ログ ファイルを表示するには、root (sudo su -) である必要があります。 SSH アクセスでは root は既定で無効になるため、root を使用して他のノードに接続しないでください。
ログ ファイル
ホスト準備スクリプト用のログ ファイル (標準エラーと標準出力) は、すべてのホストで /var/lib/waagent/custom-script/download/0
に配置されます。 ホストの準備中にエラーが発生した場合は、これらのログ ファイルを調べてエラーを特定します。
準備スクリプトが正常に実行された場合は、Ansible プレイブック ホストの /var/lib/waagent/custom-script/download/1
ディレクトリ内のログ ファイルを調べる必要があります。 OpenShift の実際のインストール中にエラーが発生した場合は、標準出力ファイルにエラーが表示されます。 この情報を使用して、サポートに連絡してさらに支援を求めてください。
出力例
TASK [openshift_storage_glusterfs : Load heketi topology] **********************
fatal: [mycluster-master-0]: FAILED! => {"changed": true, "cmd": ["oc", "--config=/tmp/openshift-glusterfs-ansible-IbhnUM/admin.kubeconfig", "rsh", "--namespace=glusterfs", "deploy-heketi-storage-1-d9xl5", "heketi-cli", "-s", "http://localhost:8080", "--user", "admin", "--secret", "VuoJURT0/96E42Vv8+XHfsFpSS8R20rH1OiMs3OqARQ=", "topology", "load", "--json=/tmp/openshift-glusterfs-ansible-IbhnUM/topology.json", "2>&1"], "delta": "0:00:21.477831", "end": "2018-05-20 02:49:11.912899", "failed": true, "failed_when_result": true, "rc": 0, "start": "2018-05-20 02:48:50.435068", "stderr": "", "stderr_lines": [], "stdout": "Creating cluster ... ID: 794b285745b1c5d7089e1c5729ec7cd2\n\tAllowing file volumes on cluster.\n\tAllowing block volumes on cluster.\n\tCreating node mycluster-cns-0 ... ID: 45f1a3bfc20a4196e59ebb567e0e02b4\n\t\tAdding device /dev/sdd ... OK\n\t\tAdding device /dev/sde ... OK\n\t\tAdding device /dev/sdf ... OK\n\tCreating node mycluster-cns-1 ... ID: 596f80d7bbd78a1ea548930f23135131\n\t\tAdding device /dev/sdc ... Unable to add device: Unable to execute command on glusterfs-storage-4zc42: Device /dev/sdc excluded by a filter.\n\t\tAdding device /dev/sde ... OK\n\t\tAdding device /dev/sdd ... OK\n\tCreating node mycluster-cns-2 ... ID: 42c0170aa2799559747622acceba2e3f\n\t\tAdding device /dev/sde ... OK\n\t\tAdding device /dev/sdf ... OK\n\t\tAdding device /dev/sdd ... OK", "stdout_lines": ["Creating cluster ... ID: 794b285745b1c5d7089e1c5729ec7cd2", "\tAllowing file volumes on cluster.", "\tAllowing block volumes on cluster.", "\tCreating node mycluster-cns-0 ... ID: 45f1a3bfc20a4196e59ebb567e0e02b4", "\t\tAdding device /dev/sdd ... OK", "\t\tAdding device /dev/sde ... OK", "\t\tAdding device /dev/sdf ... OK", "\tCreating node mycluster-cns-1 ... ID: 596f80d7bbd78a1ea548930f23135131", "\t\tAdding device /dev/sdc ... Unable to add device: Unable to execute command on glusterfs-storage-4zc42: Device /dev/sdc excluded by a filter.", "\t\tAdding device /dev/sde ... OK", "\t\tAdding device /dev/sdd ... OK", "\tCreating node mycluster-cns-2 ... ID: 42c0170aa2799559747622acceba2e3f", "\t\tAdding device /dev/sde ... OK", "\t\tAdding device /dev/sdf ... OK", "\t\tAdding device /dev/sdd ... OK"]}
PLAY RECAP *********************************************************************
mycluster-cns-0 : ok=146 changed=57 unreachable=0 failed=0
mycluster-cns-1 : ok=146 changed=57 unreachable=0 failed=0
mycluster-cns-2 : ok=146 changed=57 unreachable=0 failed=0
mycluster-infra-0 : ok=143 changed=55 unreachable=0 failed=0
mycluster-infra-1 : ok=143 changed=55 unreachable=0 failed=0
mycluster-infra-2 : ok=143 changed=55 unreachable=0 failed=0
mycluster-master-0 : ok=502 changed=198 unreachable=0 failed=1
mycluster-master-1 : ok=348 changed=140 unreachable=0 failed=0
mycluster-master-2 : ok=348 changed=140 unreachable=0 failed=0
mycluster-node-0 : ok=143 changed=55 unreachable=0 failed=0
mycluster-node-1 : ok=143 changed=55 unreachable=0 failed=0
localhost : ok=13 changed=0 unreachable=0 failed=0
INSTALLER STATUS ***************************************************************
Initialization : Complete (0:00:39)
Health Check : Complete (0:00:24)
etcd Install : Complete (0:01:24)
Master Install : Complete (0:14:59)
Master Additional Install : Complete (0:01:10)
Node Install : Complete (0:10:58)
GlusterFS Install : In Progress (0:03:33)
This phase can be restarted by running: playbooks/openshift-glusterfs/config.yml
Failure summary:
1. Hosts: mycluster-master-0
Play: Configure GlusterFS
Task: Load heketi topology
Message: Failed without returning a message.
インストール時に発生する最も一般的なエラーは次のとおりです。
- 秘密キーにパスフレーズが含まれている
- 秘密キーを含むキー コンテナー シークレットが正しく作成されなかった
- サービス プリンシパルの資格情報が正しく入力されなかった
- サービス プリンシパルにリソース グループへの共同作成者アクセス権がない
秘密キーにパスフレーズが含まれている
ssh 接続でアクセス許可が拒否されたというエラーが表示されます。 Ansible プレイブック ホストに ssh 接続して、秘密キーに関するパスフレーズをチェックします。
秘密キーを含むキー コンテナー シークレットが正しく作成されなかった
Ansible プレイブック ホストに秘密キーがコピーされています (~/.ssh/id_rsa)。 このファイルが正しいことを確認します。 Ansible プレイブック ホストからいずれかのクラスター ノードに対して SSH セッションを開くことでテストします。
サービス プリンシパルの資格情報が正しく入力されなかった
テンプレートまたは Marketplace オファーへの入力時に、不適切な情報が指定されました。 サービス プリンシパルの適切な appId (clientId) とパスワード (clientSecret) を使用していることを確認します。 次の azure cli コマンドを実行して確認します。
az login --service-principal -u <client id> -p <client secret> -t <tenant id>
サービス プリンシパルにリソース グループへの共同作成者アクセス権がない
Azure クラウド プロバイダーが有効になっている場合、使用するサービス プリンシパルは、リソース グループへの共同作成者アクセス権が必要です。 次の azure cli コマンドを実行して確認します。
az group update -g <openshift resource group> --set tags.sptest=test
その他のツール
一部のエラーでは、次のコマンドを使用して詳細を取得することもできます。
- systemctl status <service>
- journalctl -xe