簡體   English   中英

K8 RBAC環境下無法訪問Ambassador

[英]Unable to access Ambassador in K8 RBAC environment

在 RBAC 環境中部署大使並使用節點端口創建服務

[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。 當大使訪問https://12.197.35.74/時,它被降級為全能用戶system:anonymous 該用戶幾乎沒有 kube-apiserver 的權限。

最重要的是,大使需要使用 kube-apiserver 進行身份驗證 - 使用不記名令牌或由 k8s 集群的 CA 密鑰簽名的客戶端證書。

  1. 在 k8s 中為插件創建一個 ServiceAccount
  2. 創建與 ServiceAccount 相關聯的 RBAC 配置文件(即 Role/RoleBinding 或 ClusterRole/ClusterRoleBinding)
  3. 將插件配置為在訪問 URL https://12.197.35.74/時使用 ServiceAccount 的令牌

Kubernetes API 服務器是 Kubernetes 集群的大腦。 您應該將對其的訪問限制在絕對最低限度,使用標准網絡和防火牆機制限制從集群外部對 API 服務器的訪問,以及使用 Kubernetes 網絡策略從集群內部訪問。

看一看: kube-apiserver-errorkubernetes-api-serverkube-apiserver-forbidden-messagessystemanonymous -cannot-get-path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM