K8 RBAC环境无法访问Ambassador
Unable to access Ambassador in K8 RBAC environment
在 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
试图访问 UI https://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.
的权限
bottom-line 是,大使需要使用 kube-apiserver 进行身份验证 - 使用不记名令牌或由 k8s 集群的 CA 密钥签名的客户端证书。
- 在 k8s 中为插件创建一个 ServiceAccount
- 创建绑定到 ServiceAccount
的 RBAC 配置文件(即 Role/RoleBinding 或 ClusterRole/ClusterRoleBinding)
- 配置插件以在访问 URL
https://12.197.35.74/
时使用 ServiceAccount 的令牌
Kubernetes API 服务器是 Kubernetes 集群的大脑。您应该将对它的访问限制在绝对最低限度,使用标准网络和防火墙机制限制从集群外部到 API 服务器的访问,以及使用 Kubernetes 网络策略从集群内部访问。
看看:kube-apiserver-error, kubernetes-api-server, kube-apiserver-forbidden-messages, .
在 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
试图访问 UI https://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.
bottom-line 是,大使需要使用 kube-apiserver 进行身份验证 - 使用不记名令牌或由 k8s 集群的 CA 密钥签名的客户端证书。
- 在 k8s 中为插件创建一个 ServiceAccount
- 创建绑定到 ServiceAccount 的 RBAC 配置文件(即 Role/RoleBinding 或 ClusterRole/ClusterRoleBinding)
- 配置插件以在访问 URL
https://12.197.35.74/
时使用 ServiceAccount 的令牌
Kubernetes API 服务器是 Kubernetes 集群的大脑。您应该将对它的访问限制在绝对最低限度,使用标准网络和防火墙机制限制从集群外部到 API 服务器的访问,以及使用 Kubernetes 网络策略从集群内部访问。
看看:kube-apiserver-error, kubernetes-api-server, kube-apiserver-forbidden-messages,