目的
IBM Cloud Kubernetes Serviceのオーダ時に一部権限が足りない場合、サービスの作成は完了するものの、一部エラーとなり、事後対応が必要になる場合がある。今回はContainerRegistryに関するエラーとなった場合の対応方法を記載する。
エラー内容
対応の流れ
- IAM権限の付与
- ContainerRegistryに対するIAM権限役割をクラスターに割り当てる
IAM権限の付与
参考URL
名前空間を作成するときに、指定されたリソースへのアクセスが許可されないのはなぜですか?
ドキュメント抜粋
起きている現象
名前空間を作成しようとすると、以下のエラー・メッセージが表示されます。
You are not authorized to access the specified resource.
現象の理由
名前空間を操作するための正しいユーザー権限がありません。 名前空間を追加、割り当て、および削除するには、アカウント・レベルで Container Registry サービスの管理者役割を持っている必要があります。 リソース・グループ (複数可) に対する管理者の役割を持っている場合は、アカウント・レベルの管理者の役割でなければなりません。
修正方法
アカウント・レベルでマネージャーの役割が割り当てられていることを確認する必要があります。 詳しくは、名前空間を操作するためのユーザー許可を参照してください。
ここから権限の付与を実施していく
今回はグループに対してアクセス権限を追加する
管理 -> **アクセス(IAM)**を選択
アクセスグループ -> グループ名 -> 右側の・・・を選択 -> グループの管理を選択
検索メニューにて、Container Registryを選択し、次へ
すべてのリソースを選択
リソースグループ等で制限すると動作しない
役割とアクションにて、サービスアクセスの管理者にチェックを入れる
ContainerRegistryに対するIAM権限役割をクラスターに割り当てる
参考ページ
デフォルトのイメージ・プル・シークレットのセットアップ
イメージ・プル・シークレットの更新
まずは、IKSのクラスターIDを確認するために、IKSのポータルページから確認する
IBMCloud CLIにて以下コマンドを実行する
ibmcloud ks cluster pull-secret apply --cluster <cluster_name_or_ID>
実行例
% ibmcloud ks cluster pull-secret apply --cluster cmosgidt0i0xxxxxxx
OK
Creating the image pull secrets in namespace 'default'. The process might take a few minutes to complete.
以上で、IBM Cloud Container Registry icr.io ドメインからイメージをプルするコンテナーをデプロイが可能となる。