LoginSignup
1
2

More than 3 years have passed since last update.

IBM Cloud Kubernetes Serviceのクラスターオーナーがインフラストラクチャー権限を失った場合の対処方法

Last updated at Posted at 2019-11-22

問題の経緯

IBM Cloud Kubernetes Service(以下、IKS)では、クラスターのオーナーという概念があります。これは、クラスターをオーダーしたときのIBM Cloudユーザーが自動的に設定されます。オーナーは、例えばマスターやワーカーのバージョンアップや、StorageClassによるIBM Cloud Storageの動的プロビジョニングを行う際に、オーナー自身のインフラストラクチャー権限を使用します(その操作の実行ユーザーではないことに注意)。つまりオーナーが適切なインフラストラクチャー権限を持っていないと、これらの作業は失敗します。

さて、このオーナーになってしまっているユーザーがプロジェクトを離任したので、アカウントから消去されたとしましょう。するとその後誰かがバージョンアップ等を行おうとした場合、権限をもったオーナーがいないため、失敗してしまいます。

そして困ったことに、クラスターのオーナーは後から変更できないとサポートから回答がありました。

というわけで、このような状況になってしまった際の回避策です。

対応方法

適切なユーザーの準備

今後の保守作業で、着任や離任に影響を受けない、固定IDのユーザーを用意することをお勧めします。用意出来たらそのユーザーをアカウントに招待し、必要なインフラストラクチャー権限を付与してください。

クラシック・インフラストラクチャー APIキーの生成

そのユーザーでIBM Cloudコンソールにログインし、メニューから「管理」→「アクセス(IAM)」→「IBM Cloud APIキー」に移動します。

すると次のように「クラシック・インフラストラクチャーAPIキーの作成」というボタンがありますので押してください。

image.png

もしこのボタンが表示されていない場合は、すでにAPIキーが生成済のはずです。

APIキーが生成されたら、詳細メニューを開きます。

image.png

APIキーの目玉マークを推すとキーが表示されます。ここで、APIユーザー名とAPIキーの値を控えてください。

image.png

クラスターへのAPIキーの設定

クラスターの管理権限をもつユーザーでIBM Cloud CLIを使用します。次のコマンドを実行します。

$ ibmcloud ks credential set classic --infrastructure-api-key ${APIキー} --infrastructure-username ${APIユーザー名}
$ ibmcloud ks api-key-reset

最後のapi-key-resetは忘れないようにしてください。これを打たないと反映されません。

設定反映の確認

設定はすぐには反映されません。次のコマンドを定期的に実行します。

kubectl get secret storage-secret-store -n kube-system -o yaml | grep slclient.toml: | awk '{print $2}' | base64 --decode

すると次のように表示されると思います。

[Softlayer]
 encryption = true
 softlayer_username = ""
 softlayer_api_key = ""

定期的にコマンドを打ち続け、次のような表示になれば設定反映は完了です。体感的には数分~10分近くかかった気がします。

[Softlayer]
 encryption = true
 softlayer_username = "${APIユーザー名}"
 softlayer_api_key = "${APIキー}"
 softlayer_endpoint_url = "https://api.service.softlayer.com/rest/v3"

これで、これ以降はクラスターのバージョンアップやストレージの動的プロビジョン時には、このAPIキーが使われるようになります。

以上です。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2