IBM Cloud Docs
クラスターに関する一般的な CLI の問題のデバッグ

クラスターに関する一般的な CLI の問題のデバッグ

仮想プライベート・クラウド クラシック・インフラストラクチャー

CLI の接続の問題またはコマンドの失敗の理由としてよくある理由を次に示します。

ファイアウォールがあるために CLI コマンドを実行できない

CLI からコマンド ibmcloudkubectloc、または calicoctl を実行すると、失敗します。

ローカル・システムからプロキシーまたはファイアウォール経由での公共のエンドポイントへのアクセスが企業ネットワーク・ポリシーによって禁止されている可能性があります。

CLI コマンドでの TCP アクセスを許可します

このタスクには、クラスターに対する 管理者 IBM Cloud IAM プラットフォーム・アクセス役割が必要です。

kubectl または oc コマンドが機能しない

kubectl コマンドまたは oc コマンドをクラスターに対して実行すると、コマンドが以下のようなエラー・メッセージで失敗します。

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

クラスターのバージョンとは異なるバージョンの kubectl があります。

Kubernetes サポートしていませんkubectl サーバー バージョンから 2 バージョン以上離れたクライアント バージョン (n +/- 2)。 コミュニティー Kubernetes クラスターを使用している場合は、Red Hat OpenShift バージョンの kubectl を使用している可能性もあります。これは、コミュニティー Kubernetes クラスターに対しては機能しません。

クラスター・サーバー・バージョンと比較してクライアント kubectl バージョンを確認するには、oc version --short を実行します。

クラスターのバージョンに一致する CLI のバージョンをインストール します。

異なるバージョンやコンテナプラットフォーム( Red Hat OpenShift など)で複数のクラスタをお持ちの場合は、 kubectl バージョンのバイナリファイルをそれぞれ別のディレクトリにダウンロードしてください。 その後、操作するクラスターの kubectl バージョンに一致する kubectl バイナリー・ファイル・ディレクトリーを指すように、ローカル・コマンド・ライン・インターフェース (CLI) プロファイルで別名をセットアップすることができます。あるいは、brew switch kubernetes-cli <major.minor> などのツールを使用することもできます。

ポッドに接続しようとするとタイムアウトになる

oc exec によるログインや、oc logs によるログの取得などで、ポッドに接続しようとすると、 ポッドは正常であるのに、以下のようなエラー・メッセージが表示されます。

Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out

VPNサーバーで設定上の問題が発生しており、内部アドレスからポッドにアクセスできない。

始める前に、Red Hat OpenShift クラスターにアクセスします。

  1. コンソールでクラスターとワーカー・ノードの詳細を表示するか、cluster ls コマンドまたは worker ls コマンドを使用して、クラスターとワーカー・ノードの更新が提供されているか確認します。 更新が提供されている場合は、クラスターとワーカー・ノードを最新バージョンに更新します
  2. VPNポッドを削除して再起動します。 別の VPN ポッドがスケジュールされます。 その**「状況」「実行中」**になったら、これまで接続できなかったポッドに接続してみてください。
    oc delete pod -n kube-system -l app=vpn
    

Red Hat OpenShift クラスタにログインしようとすると500エラーが発生する。 oc login

oc login から Red Hat OpenShift クラスタに初めてログインしようとした際に、以下のようなエラーメッセージが表示された場合。

$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y

Error from server (InternalError): Internal error occurred: unexpected response: 500

IAM ユーザー役割に対する最近の変更の一部は、まだ Red Hat OpenShift クラスターに同期されていません。

IAM ユーザー情報を Red Hat OpenShift クラスターに同期します。 初期ユーザー同期が実行された後、さらに RBAC 同期が自動的に行われます。

始める前に

Red Hat OpenShift クラスターにアクセスします

ユーザーの IAM 情報を同期するには、以下の 2 つのオプションがあります:

  • Red Hat OpenShift コンソールからクラスタにログインします。
  • ibmcloud oc cluster config --cluster CLUSTER コマンドを実行して、クラスターのコマンド・ライン・コンテキストを設定します。

機能 ID または別のユーザーに対して API キーを使用する場合は、必ず正しいユーザーでログインしてください。

影響を受けるユーザーが IAM 同期を完了した後、クラスター管理者は、oc get users コマンドを使用してユーザーをリストすることにより、そのユーザーがクラスター内に存在することを確認できます。

プロジェクトが欠落しているか、oc コマンドと kubectl コマンドが失敗する

仮想プライベート・クラウド クラシック・インフラストラクチャー

アクセスできるすべてのプロジェクトが表示されるわけではありません。 oc コマンドまたは kubectl コマンドを実行しようとすると、以下のようなエラーが表示されます。

No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched

cluster-admin クラスターの役割を必要とするコマンドを実行するには、クラスター用の admin 構成ファイルをダウンロードする必要があります。

ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin を実行して、再試行してください。