Kubernetes 启用kubelet服务器承载令牌身份验证 问题

Kubernetes 启用kubelet服务器承载令牌身份验证 问题,kubernetes,Kubernetes,我试图使用承载令牌在kubelet服务器上启用身份验证(非X.509客户端证书身份验证),但无法理解工作流 我试过的 根据文档页面,使用--authentication token webhook标志启动kubelet可启用承载令牌身份验证。我可以通过使用Controller Manager创建的默认机密之一向kubelet REST API发送请求来确认: $MY_TOKEN=“$(kubectl get secret default-TOKEN-kw7mk\ -o jsonpath='{$.

我试图使用承载令牌在kubelet服务器上启用身份验证(X.509客户端证书身份验证),但无法理解工作流

我试过的 根据文档页面,使用
--authentication token webhook
标志启动kubelet可启用承载令牌身份验证。我可以通过使用Controller Manager创建的
默认
机密之一向kubelet REST API发送请求来确认:

$MY_TOKEN=“$(kubectl get secret default-TOKEN-kw7mk\
-o jsonpath='{$.data.token}'| base64-d)”
$curl-sS-o/dev/null-D-\
--cacert/var/run/kubernetes/kubelet.crt\
-H“授权:持票人$MY_代币”\
https://host-192-168-0-10:10250/pods/
HTTP/1.1200ok
内容类型:application/json
日期:2017年6月30日星期五格林尼治标准时间22:12:29
传输编码:分块
但是,通过API服务器(通常使用kubectl
日志
exec
命令)使用与上述相同的承载令牌与kubelet进行的任何通信都会出现以下故障:

$ kubectl --token="$MY_TOKEN" -n kube-system logs \
      kube-dns-2272871451-sc02r -c kubedns

error: You must be logged in to the server (the server has asked for the client to provide credentials ( pods/log kube-dns-2272871451-sc02r))
我需要澄清的地方 我最初的假设是API服务器只是将它从客户机接收到的承载令牌直接传递给kubelet,但我上面的小实验证明了我不是这样

我看到文档中提到了一个名为
--身份验证令牌webhook config file
的标志,但我不确定如何使用它,或者它是否与根据kubelet对API服务器进行身份验证相关

当前配置 我的kubelet跑步时:

  --anonymous-auth=false
  --authorization-mode=Webhook
  --authentication-token-webhook
  --cadvisor-port=0
  --cluster-dns=10.0.0.10
  --cluster-domain=cluster.local
  --read-only-port=0
  --kubeconfig=/etc/kubernetes/kubeconfig-kubelet
  --pod-manifest-path=/etc/kubernetes/manifests
  --require-kubeconfig
我的API服务器运行于:

  --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota,DefaultTolerationSeconds
  --anonymous-auth=false
  --authorization-mode=AlwaysAllow
  (+ tls flags)

当调用需要从API服务器到kubelet通信的API服务器时,该通信使用API服务器的客户端凭据完成,该客户端凭据仅支持对kubelet的x509身份验证

中的“X509客户端证书身份验证”部分列出了用于向API服务器提供用于联系kubelet的凭据的标志


API服务器webhook身份验证选项与kubelet auth无关

“仅支持x509身份验证”回答了我的问题。您能否在回答中澄清
--身份验证令牌webhook
的目的?是否打算让第三方应用程序(如监控)直接轮询kubelet API?是的,主要是使用度量、统计和日志收集端点