【发布时间】:2019-04-03 19:47:57
【问题描述】:
我在为 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 禁止”。需要注意的是,我可以对使用 KOPS 部署的集群执行相同的 API 调用。我不确定有什么区别。
【问题讨论】:
-
您是否使用
KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --authentication-token-webhook \ --client-ca-file=/etc/kubernetes/pki/ca.crt参数运行您的kubelet 服务?
标签: kubernetes webhooks