spring cloud kubernetes之serviceaccount permisson报错

spring boot项目引用spring-cloud-starter-kubernetes

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-kubernetes</artifactId>
            <version>1.0.0.RELEASE</version>
        </dependency>

在访问this.discoveryClient.getServices()时,报错:Are you missing serviceaccount permission? 如下图:

查看报错详细信息:Forbidden! configured service account doesn't have access. Service account may have been revoked pod *** is forbidden: User ""  cannt get pods in the namespace "default"

意思就是说这个kubernetes 的这个serviceaccount没有权限,怎么给serviceaccount赋权限呢?
这个叫涉及到了kubernetes这个clusterrolebing了,通过clusterrolebing 把serviceaccount和cluseterRole绑定,clusterRole里面和和具体来定义权限,不过这个工作应该交交运维来做,不属于开发的范围,

我们只需要在deployment的yaml中指定serviceaccount即可,如没有指定serviceaccount则是default:default,指的是default空间下的default这个serviceaccount. 

注意serviceaccount与container同级。

参考:https://stackoverflow.com/questions/47973570/kubernetes-log-user-systemserviceaccountdefaultdefault-cannot-get-services

猜你喜欢

转载自www.cnblogs.com/hankuikui/p/10488515.html