クラスターに関する一般的な CLI の問題のデバッグ
仮想プライベート・クラウド クラシック・インフラストラクチャー
CLI の接続の問題またはコマンドの失敗の理由としてよくある理由を次に示します。
ファイアウォールがあるために CLI コマンドを実行できない
CLI からコマンド ibmcloud
、kubectl
、oc
、または calicoctl
を実行すると、失敗します。
ローカル・システムからプロキシーまたはファイアウォール経由での公共のエンドポイントへのアクセスが企業ネットワーク・ポリシーによって禁止されている可能性があります。
このタスクには、クラスターに対する 管理者 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 クラスターにアクセスします。
- コンソールでクラスターとワーカー・ノードの詳細を表示するか、
cluster ls
コマンドまたはworker ls
コマンドを使用して、クラスターとワーカー・ノードの更新が提供されているか確認します。 更新が提供されている場合は、クラスターとワーカー・ノードを最新バージョンに更新します。 - 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
を実行して、再試行してください。