我试图获得对Kubernetes API的远程访问(主要来自我们的Jenkins服务器),因此我们可以执行RESTful操作并且不依赖于kubectl
。理想情况下,我想在Go或Python中执行此操作,但是我尝试过的所有库都没有成功,并且使用urllib2
直接返回各种错误。我已经能够通过curl进行连接(虽然也有一些奇怪的错误),但我希望不必为所有这些形成curl GET/PUT请求。无代理远程访问Kubernetes API
所以我的问题是:是否可以有某种灵魂(也许是Google的某个人?)概述了我需要从远程位置正确验证Kubernetes API服务器的步骤?任何指导都非常感谢,因为我有兴趣了解更多有关x509的信息,但我正在努力将所有的部分组合在一起。
卷曲结构基本工作
这些.PEM文件手动从值~/.kube/config
$ curl --header "Authorization: Bearer $TOKEN" -key key.pem -cacert ca.pem -cert client.pem https://MASTER_IP/api
curl: (6) Could not resolve host: key.pem
curl: (6) Could not resolve host: ca.pem
curl: (6) Could not resolve host: client.pem
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "172.20.0.9:443"
}
]
}
2016年4月14日更新创建 如此看来,我需要将其中一些重命名为.crt文件。在阅读了关于curl的潜在问题之后,我给了wget一个提示,似乎没有问题,甚至没有指定auth头文件。深入了解基于客户端的身份验证。
$ wget -qO- https://MASTER_IP/api --certificate client-decoded.crt --private-key clean-key.pem --ca-certificate ca.crt
{
"kind": "APIVersions",
"versions": [
"v1"
],
"serverAddressByClientCIDRs": [
{
"clientCIDR": "0.0.0.0/0",
"serverAddress": "172.20.0.9:443"
}
]
}
你错过了上--key破折号, - cacert和--cert参数,并且可能还需要将cert指定为./client.pem –