在RBAC环境中部署Ambassador并使用节点端口创建服务
[root@-1 xxxxx]# kb get svc -n ambassador
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ambassador NodePort 172.18.0.216 12.197.35.74 80:31270/TCP,443:31729/TCP 17h
尝试访问UIhttps://12.197.35.74/,低于错误
{
"kind": "Status",
"apiVersion": "v1",
"metadata": { },
"status": "Failure",
"message": "forbidden: User "system:anonymous" cannot get path "/"",
"reason": "Forbidden",
"details": { },
"code": 403
}
看起来我错过了一些与RBAC有关的东西,任何帮助都非常感谢
此错误表示您无权访问API服务器,因为它不知道您是谁。这很好,否则任何人都可以操纵你的集群。
最新的kubernetes部署工具在集群上启用了RBAC。Ambassador在访问https://12.197.35.74/
时降级为catch-all用户system:anonymous
。该用户在kube apiserver上几乎没有权限。
最重要的是,大使需要通过kube-apiserver进行身份验证——要么使用承载令牌,要么使用由k8s集群的CA密钥签名的客户端证书。
- 在k8s中为插件创建一个ServiceAccount
- 创建绑定到ServiceAccount的RBAC配置文件(即Role/RoleBinding或ClusterRole/ClusterRoleBinding(
- 配置插件以在访问URL
https://12.197.35.74/
时使用ServiceAccount的令牌
Kubernetes API服务器是您的Kubernete集群的大脑。您应该将对它的访问限制在绝对最低限度,使用标准网络和防火墙机制限制从集群外部访问API服务器,并使用Kubernetes网络策略限制从集群内部访问。
看看:kube apiserver错误,kubernetes api服务器,kube apiserver禁止消息,systemanonymous无法获取路径。