无法在K8 RBAC环境中访问大使



在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密钥签名的客户端证书。

  1. 在k8s中为插件创建一个ServiceAccount
  2. 创建绑定到ServiceAccount的RBAC配置文件(即Role/RoleBinding或ClusterRole/ClusterRoleBinding(
  3. 配置插件以在访问URLhttps://12.197.35.74/时使用ServiceAccount的令牌

Kubernetes API服务器是您的Kubernete集群的大脑。您应该将对它的访问限制在绝对最低限度,使用标准网络和防火墙机制限制从集群外部访问API服务器,并使用Kubernetes网络策略限制从集群内部访问。

看看:kube apiserver错误,kubernetes api服务器,kube apiserver禁止消息,systemanonymous无法获取路径。

相关内容

  • 没有找到相关文章

最新更新