Azure AKS 上的“kubectl logs”产生错误“Forbidden (user=system:anonymous ..)”

Azure AKS 上的“kubectl logs”产生错误“Forbidden (user=system:anonymous ..)”

每当我尝试kubectl logs在 Azure 上运行时,都会出现以下错误:

来自服务器的错误(禁止):禁止(用户 = 系统:匿名,动词 = 获取,资源 = 节点,子资源 = 代理)( pods/log )

kubectl execkubectl attach大多数 helm 命令都会返回类似的错误:

错误:无法升级连接:禁止(用户=系统:匿名,动词=创建,资源=节点,子资源=代理)

这是默认的 Azure Aks 安装。从 1.8.10 升级到 1.9.x 后出现问题

kubectl api-versions

入场注册.k8s.io/v1alpha1 入场注册.k8s.io/v1beta1 apiextensions.k8s.io/v1beta1 apiregistration.k8s.io/v1beta1 apps/v1 apps/v1beta1 apps/v1beta2 身份验证.k8s.io/v1 身份验证.k8s.io/v1beta1 授权.k8s.io/v1 授权.k8s.io/v1beta1 自动缩放/v1 自动缩放/v2beta1 批次/v1 批次/v1beta1 证书.k8s.io/v1beta1 事件.k8s.io/v1beta1 扩展/v1beta1 网络.k8s.io/v1 政策/v1beta1 rbac.authorization.k8s.io/v1 rbac.authorization.k8s.io/v1beta1 存储.k8s.io/v1 storage.k8s.io/v1beta1 v1

kubectl version

客户端版本:version.Info{Major:“1”,Minor:“9”,GitVersion:“v1.9.1”,GitCommit:“3a1c9449a956b6026f075fa3134ff92f7d55f812”,GitTreeState:“clean”,BuildDate:“2018-01-04T11:52:23Z”,GoVersion:“go1.9.2”,编译器:“gc”,平台:“linux / amd64”}

服务器版本:version.Info{Major:“1”,Minor:“9”,GitVersion:“v1.9.6”,GitCommit:“9f8ebd171479bec0ada837d7ee641dec2f8c6dd1”,GitTreeState:“clean”,BuildDate:“2018-03-21T15:13:31Z”,GoVersion:“go1.9.3”,编译器:“gc”,平台:“linux/amd64”}

答案1

我设法通过应用这个 yaml 来创建一种解决方法:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: anonymous-logs-role
rules:
- apiGroups: [""]
  resources: ["nodes/proxy"]
  verbs: ["create", "get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: anonymous-logs-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: anonymous-logs-role
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: User
  name: system:anonymous

这样,日志、执行和附加工作就完成了,并且 api 服务器不会暴露任何信息。不确定是否有任何缺点...

答案2

此命令将赋予您的用户(您)集群管理员角色。

kubectl create clusterrolebinding me-cluster-admin \
    --clusterrole=cluster-admin \
    --user=system:anonymous

相关内容