库伯内斯。 HTTPS API return`未授权`
Kubernetes. HTTPS API return `Unauthorized`
Kubernetes API 请求 curl https://192.168.0.139 --cacert /home/mongeo/ku-certs/ca.pem
return Unauthorized
请求 curl localhost:8080
效果很好。
我的 kube-proxy 和 kube-apiserver 标准 (coreos+k8s tutorial)
如何通过 HTTPS 获取数据?
您是否指定了 --token-auth-file=<file>
and/or --basic-auth-file=<otherfile>
或其他身份验证模式之一?我不知道 https 端点在没有其中之一的情况下也能工作(也许应该,但显然不能)。查看 https://kubernetes.io/docs/admin/authentication/
curl https://192.168.0.139 —key ./admin-key.pem —cert ./admin.pem —cacert ./ca.pem
API 中有多种验证方法。获得授权的最简单方法是发送带有 "bearer TOKEN_VALUE" 值的身份验证 header。您可以查看服务器上的 Kubernetes API 配置以查找定义的令牌。 header 可以使用 Web 浏览器扩展通过 http 请求发送。
从外部网络访问 Kubernetes API 的一种简单方法是创建一个 SSH tunnel,例如
ssh -L 9000:localhost:8080 roto@master.node
这会将连接从您的本地端口 9000
转发到您服务器上的 localhost:8080
。
只要SSH隧道打开,你就可以在你机器的9000
端口上查询API。
嗨,这是我为令牌所做的,
查找地址服务器Api
打开/etc/kubernetes/kubelet.conf
示例:server: https://10.1.32.120:6443
查找令牌
打开/etc/kubernetes/pki/tokens.csv
示例:4c95a1a22d19b20811,kubeadm-node-csr,07ccbf35-e206-11e6-ab8f-0010184e550e,system:kubelet-bootstrap
- 在这种情况下,令牌是
4c95a1a22d19b20811
- 如果使用邮递员,请添加header
Authorization: Bearer 4c95a1a22d19b20811
终于,我明白了:
lincai@pdbuddy:~/blackbox$ curl -v --cacert ./ca.pem --key ./admin-key.pem --cert ./admin.pem https://xxxx/api/v1/
* Hostname was NOT found in DNS cache
>
< HTTP/1.1 200 OK
Kubernetes API 请求 curl https://192.168.0.139 --cacert /home/mongeo/ku-certs/ca.pem
return Unauthorized
请求 curl localhost:8080
效果很好。
我的 kube-proxy 和 kube-apiserver 标准 (coreos+k8s tutorial)
如何通过 HTTPS 获取数据?
您是否指定了 --token-auth-file=<file>
and/or --basic-auth-file=<otherfile>
或其他身份验证模式之一?我不知道 https 端点在没有其中之一的情况下也能工作(也许应该,但显然不能)。查看 https://kubernetes.io/docs/admin/authentication/
curl https://192.168.0.139 —key ./admin-key.pem —cert ./admin.pem —cacert ./ca.pem
API 中有多种验证方法。获得授权的最简单方法是发送带有 "bearer TOKEN_VALUE" 值的身份验证 header。您可以查看服务器上的 Kubernetes API 配置以查找定义的令牌。 header 可以使用 Web 浏览器扩展通过 http 请求发送。
从外部网络访问 Kubernetes API 的一种简单方法是创建一个 SSH tunnel,例如
ssh -L 9000:localhost:8080 roto@master.node
这会将连接从您的本地端口 9000
转发到您服务器上的 localhost:8080
。
只要SSH隧道打开,你就可以在你机器的9000
端口上查询API。
嗨,这是我为令牌所做的,
查找地址服务器Api
打开
/etc/kubernetes/kubelet.conf
示例:
server: https://10.1.32.120:6443
查找令牌
打开
/etc/kubernetes/pki/tokens.csv
示例:
4c95a1a22d19b20811,kubeadm-node-csr,07ccbf35-e206-11e6-ab8f-0010184e550e,system:kubelet-bootstrap
- 在这种情况下,令牌是
4c95a1a22d19b20811
- 如果使用邮递员,请添加header
Authorization: Bearer 4c95a1a22d19b20811
终于,我明白了:
lincai@pdbuddy:~/blackbox$ curl -v --cacert ./ca.pem --key ./admin-key.pem --cert ./admin.pem https://xxxx/api/v1/
* Hostname was NOT found in DNS cache
>
< HTTP/1.1 200 OK