Kubernetes 启用kubelet服务器承载令牌身份验证 问题
我试图使用承载令牌在kubelet服务器上启用身份验证(非X.509客户端证书身份验证),但无法理解工作流 我试过的 根据文档页面,使用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='{$.
--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?是的,主要是使用度量、统计和日志收集端点