GKEのクラスタをサービスアカウントに紐付けて作った際、helmを使おうとすると"system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "default"
みたいなエラーが出て焦るなど。キーワードからして付加する権限の問題か?と思い色々いじってみてもダメ。
ふと冷静になってググってみると、どうやらここで言うserviceaccount
というのはKubernetes上のリソースのことらしい。つまり、kube-system
ネームスペースのdefault
というservice account
リソースのことなのだ。kubectl -n kube-system describe serviceaccount/default
で、結局はそいつがAPIの通信を行う上での認証のために手順がいるという話なのだ。
公式Docにも何通りかやり方が示されているが、特に何も考えずエイヤッとやるなら↓だろうか。
$ kubectl create clusterrolebinding add-on-cluster-admin \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:default
clusterrolebinding
なるリソースにadd-on-cluster-admin
という名前でcluster-admin
としてkube-system:default
を読み込むものを用意してやれば良い。
・・・なんかまだまだ知らないリソースがいっぱいあって、Kubernetesは奥が深い。
- 作者: Brendan Burns,Kelsey Hightower,Joe Beda,松浦隼人
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/03/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
昨日眠れなかったし明日は勉強会の発表あるし、今日こそはちゃっちゃと寝ないと・・・