ストレージの管理および PVC の作成に必要な権限は何ですか?
永続ボリュームのクレームに関する権限エラーのトラブルシューティングを行う。
仮想プライベートクラウド クラシック・インフラストラクチャー
PVC を作成した場合に、PVC が保留中のままになります。 oc describe pvc <pvc_name> を実行すると、以下のようなエラー・メッセージが表示されます :
User doesn't have permissions to create or manage Storage
クラスターの storage-secret-store Kubernetes シークレットに保管されている IAM API キーまたは IBM Cloud インフラストラクチャー API キーに、永続ストレージをプロビジョンするために必要な許可の一部がありません。
クラスターの storage-secret-store Kubernetes シークレットに保管されている IAM キーまたは IBM Cloud インフラストラクチャー API キーを取得して、正しい API キーが使用されていることを確認します。
-
以下のコマンドを実行して、
storage-secret-storeシークレットに格納されているAPIキーを取得する。コマンド例
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode出力例
[Bluemix] iam_url = "https://iam.cloud.ibm.com" iam_client_id = "bx" iam_client_secret = "bx" iam_api_key "IAM-API-KEY" refresh_token = "" pay_tier = "paid" containers_api_route = "https://us-south.containers.cloud.ibm.com" encryption = true containers_api_route_private = "https://private.us-south.containers.cloud.ibm.com" [Softlayer] encryption = true softlayer_username = "" softlayer_api_key = "" softlayer_endpoint_url = "https://api.service.softlayer.com/rest/v3" softlayer_iam_endpoint_url = "https://api.service.softlayer.com/mobile/v3" softlayer_datacenter = "dal10" softlayer_token_exchange_endpoint_url = "https://iam.cloud.ibm.com" [VPC] g2_token_exchange_endpoint_url = "https://iam.bluemix.net" g2_riaas_endpoint_url = "https://us-south.iaas.cloud.ibm.com" g2_riaas_endpoint_private_url = "https://us-south.private.iaas.cloud.ibm.com" g2_resource_group_id = "............" g2_api_key = ".............." encryption = true provider_type = "g2" iks_token_exchange_endpoint_private_url = "https://private.us-south.containers.cloud.ibm.com"CLI 出力の
Bluemix.iam_api_keyセクションに、IAM API キーがリストされます。 同時にSoftlayer.softlayer_api_keyが空の場合は、IAM API キーを使用してインフラストラクチャー許可が決定します。 IAM API キーは、リソース・グループおよびリージョンの IAM の管理者プラットフォーム・アクセス役割を必要とする最初のアクションを実行するユーザーによって自動的に設定されます。Softlayer.softlayer_api_keyに別の API キーが設定されている場合、このキーが IAM API キーよりも優先されます。Softlayer.softlayer_api_keyは、クラスター管理者がibmcloud oc credentials-setコマンドを実行すると設定されます。 -
サポートに連絡する必要がある場合は、以下のコマンドを使用してクラスター・シークレットから認証情報を取り出し、キーを見つけてハッシュ化することができます。 このステップにより、誤ってAPIキーをサポートケースに貼り付けてしまうことを防ぐことができます。 以下のコマンドを実行して、クラスターに保存されている現在のキーを取得します。
oc get secret -n kube-system storage-secret-store -o custom-columns=:.data.slclient\\.toml | base64 -d | grep g2_api_key | md5sum -
資格情報を変更する場合は、使用される API キーを更新します。
- アカウントにログインします。 該当する場合は、適切なリソース・グループをターゲットにします。 クラスターのコンテキストを設定します。
- IAM API キーを更新するには、
ibmcloud oc api-key resetコマンドを使用します。 IBM Cloud インフラストラクチャーのキーを更新する場合は、ibmcloud oc credential setコマンドを使用します。 storage-secret-storeKubernetes シークレットが更新されるまで約 10 分から 15 分待機して、キーが更新されたことを確認します。
oc get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode ``` -
API キーが正しい場合は、キーに永続ストレージをプロビジョンするための正しい許可があることを確認します。
- API キーの許可を確認のために、アカウント所有者に連絡します。
- アカウント所有者として、 IBM Cloud コンソールのナビゲーションから [管理 ] > [アクセス (IAM) ] を選択します。
- **「ユーザー」**を選択し、使用する API キーを持つユーザーを確認します。
- アクション・メニューから、**「ユーザーの詳細の管理」**を選択します。
- **「クラシック・インフラストラクチャー」**タブに移動します。
- **「アカウント」カテゴリーを展開し、「ストレージの追加/アップグレード (StorageLayer)」**の許可が割り当てられていることを確認します。
- **「サービス」カテゴリーを展開し、「ストレージ管理」**の許可が割り当てられていることを確認します。
-
失敗した PVC を削除します。
oc delete pvc <pvc_name> -
PVC を再作成します。
oc apply -f pvc.yaml