python - 使用 python 客户端访问 Kubernetes 集群
问题描述
我有我的 kubernetes 集群,它部署在云中,我有一个本地代理,我应该使用它来从我的桌面连接我的 k8s 集群。通过运行代理,我可以毫无问题地使用 kubectl 访问我的集群。现在我想看看我是否可以单独使用 python 客户端实用程序来消除 kubectl 命令行实用程序。
因此,在我的第一个要求中,我消除了 kubectl,并且可以使用以下代码访问我的集群。问题是,我的访问令牌仅在 15 分钟内有效,发布后我必须使用 kubectl 运行我的代理才能在我的 kubeconfig 文件中更新我的刷新令牌,这样我就可以在接下来的 15 分钟内使用它。
所以我的问题并寻求一些建议,1.有什么方法可以通过使用 kubernetes python 客户端和本地代理来完全消除 kubectl。2. 如何自动获取刷新的令牌,这样我就不必每 15 分钟运行一次代理。
任何想法/文档/示例表示赞赏。
from kubernetes import client, config
def main():
try:
#config.load_kube_config('kubeconfig',persist_config=True)
config.load_kube_config('kubeconfig')
kube_host = config.kube_config.Configuration._default.host+":443"
kube_api_key = config.kube_config.Configuration._default.api_key
aConfiguration = client.Configuration()
# Specify the endpoint of your Kube cluster
aConfiguration.host = kube_host
aConfiguration.verify_ssl = False
aConfiguration.api_key = kube_api_key
aApiClient = client.ApiClient(aConfiguration)
# Do calls
v1 = client.CoreV1Api(aApiClient)
api_response = v1.list_namespaced_pod('default')
print(api_response)
except Exception as e:
print("Exception when calling CoreV1Api->list_namespaced_pod: %s\n" % e)
if __name__ == '__main__':
main()
解决方案
这是答案:https ://stackoverflow.com/a/48377444/5936468
您可以创建一个服务帐户并将其令牌用于身份验证
推荐阅读
- web2py - 我可以使用虚拟字段在 web2py 中显示链接表的值吗?
- json - 将属性添加到反序列化 Json 类
- function - 闭包函数 - 返回全局变量?
- apache-kafka - 为什么卡夫卡不适合我?
- excel - 使用下拉列表过滤 Excel 表格
- python - 在 Python 中将分类值列转换为其统计值
- javascript - 在 PhantomJS/Sinon 中存根 Promise
- json - PostgreSql 和 jsonb 与对象数组内的数组
- kotlin - 如何在离线环境中运行 Gradle kotlin-dsl 插件?
- python - 在与主处理程序相同的目录中安装 python 模块