启用Webhook身份验证kubelet api

时间:2018-10-30 17:35:42

标签: kubernetes webhooks

我无法为kubelet API启用Webhook身份验证。我的集群是使用kubeadm部署的。 This post is similar, but not the same issue

我可以使用承载令牌对我的API服务器进行身份验证:

curl -k https://localhost:6443/api --header "Authorization: Bearer $TOKEN"

我无法针对具有相同标头的kubelet api进行身份验证。我已经在API服务器上启用了以下功能:

--authorization-mode=Node,RBAC
--anonymous-auth=false
--runtime-config=authentication.k8s.io/v1beta1=true,authorization.k8s.io/v1beta1=true

在kubelet节点上启用以下功能(通过/var/lib/kubelet/config.yaml)

address: 0.0.0.0
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: false
  webhook:
    cacheTTL: 2m0s
    enabled: true
  x509:
    clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
  mode: Webhook
  webhook:
    cacheAuthorizedTTL: 5m0s
    cacheUnauthorizedTTL: 30s

尽管如此,当卷曲kubelet上的/ metrics端点时,我得到了“ 403 forbidden”。需要注意的是,我可以对使用KOPS部署的集群执行相同的API调用。我不确定有什么区别。

1 个答案:

答案 0 :(得分:0)

403表示您已成功通过身份验证(否则您将获得401错误),如果您被授权访问kubelet指标,则apiserver会检查kubelet(否则它将被允许),它得到了肯定的响应apiserver(否则您将得到500错误),并且apiserver指示未授权经过身份验证的用户访问kubelet指标。

有关要授予访问kubelet API上各个端点所需的权限的详细信息,请参见https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-authentication-authorization/#kubelet-authorization。对于指标,必须授予nodes/metrics apiGroup中的""资源。

相关问题