2017-12-26 6 views
1

Forbidden!Configured service account doesn't have access. Service account may have been revoked. User "system:serviceaccount:default:default" cannot get services in the namespace "mycomp-services-process"Kubernetesログ、ユーザー「システム:serviceaccount:デフォルト:デフォルトの」I「はMYCOMPサービス・プロセス」の名前空間を作成し、問題をチェックした名前空間に上記の問題については

をサービスを取得することはできません。

しかし、それは、再びこのようなメッセージを示しています。それは全く問題ではありませんとして名前空間を作成

Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. User "system:serviceaccount:mycomp-services-process:default" cannot get services in the namespace "mycomp-services-process"

答えて

3

は、当然のことながら、問題を解決することはできません。

最初のエラーでは、serviceaccountはデフォルトのネームスペースcan not get servicesにデフォルトであり、リスト/取得サービスにアクセスできないため問題があります。だからあなたがする必要があるのは、clusterrolebindingを使ってそのユーザーに役割を割り当てることです。

最小特権のセットに続いて、あなたは、最初のリストサービスへのアクセス権を持つ役割を作成することができます。

kind: ClusterRole 
apiVersion: rbac.authorization.k8s.io/v1 
metadata: 
    namespace: default 
    name: service-reader 
rules: 
- apiGroups: [""] # "" indicates the core API group 
    resources: ["services"] 
    verbs: ["get", "watch", "list"] 

何スニペット上記はない、一覧表示、取得およびサービスを見ることができるclusterroleを作成することです。今、私たちはclusterrolebindingを作成するには、このclusterroleを使用することができます

を(あなたはYAMLファイルを作成し、スペック上で適用する必要があります):上記のコマンドで

kubectl create clusterrolebinding service-reader-pod \ 
    --clusterrole=service-reader \ 
    --serviceaccount=default:default 

service-reader-podがclusterrolebindingの名前であり、それは代入されますservice-reader clusterroleをデフォルトのネームスペースのdefault serviceaccountに変更します。直面している2番目のエラーについても同様の手順を実行できます。

はこの場合、私はclusterroleclusterrolebindingを作成したが、あなたの代わりにrolerolebindingを作成することもできます。確認できます

+1

ありがとうございます。私は上記の解決策を適用した後に進めることができます。 – Murali