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

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

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

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

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

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

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

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

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

kubectl コマンドが機能しない

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

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

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

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

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

kubectl コマンドがタイムアウトする

kubectl execkubectl attachkubectl proxykubectl port-forwardkubectl logs などのコマンドを実行すると、以下のメッセージが表示されます。

<workerIP>:10250: getsockopt: connection timed out
kubectl -n kube-system logs metrics-server-65fc69c6b7-f682d -c metrics-server
Error from server: Get “https://10.38.193.213:10250/containerLogs/kube-system/metrics-server-65fc69c6b7-f682d/metrics-server”: EOF
kubectl -n kube-system exec -it metrics-server-65fc69c6b7-f682d -c metrics-server -- sh
Error from server: error dialing backend: EOF

ご使用のクラスター・バージョンに対応する以下のステップを確認して実行します。

  • バージョン 1.21 以降では、マスター・ノードとワーカー・ノードの間の Konnectivity VPN 接続が正しく機能しません。
  • クラスターのプライベートとパブリックの両方のサービス・エンドポイントを有効にする。
  • アカウントでサービス・エンドポイントまたは VRF を有効にしていない。

アカウントで VRF とサービス・エンドポイントが有効になっているかどうかを調べるには、ibmcloud account show を実行してください。 以下の出力を検索します。

VRF Enabled:                        true
Service Endpoint Enabled:           true

クラシック・クラスターでパブリック・サービス・エンドポイントとプライベート・サービス・エンドポイントの両方が有効になっているかどうかを判別するには、ibmcloud ks cluster get -c <cluster_id> を実行します。 以下のような出力を探します。

Public Service Endpoint URL:    https://c105.<REGION>.containers.cloud.ibm.com:<port>
Private Service Endpoint URL:   https://c105.private.<REGION>.containers.cloud.ibm.com:<port>

クラスターがこれらの条件を満たしている場合は、アカウントの サービス・エンドポイントと VRF を有効にします