当前位置: 首页 > 知识库问答 >
问题:

如何在Kubernetes Python客户端中指定ca_bundle

常甫
2023-03-14

我试图使用Kubernetes Python客户机连接到我的Kubernetes集群。API在由我的CA签名的SSL证书后面。如果我试图访问任何API,我会得到一个关于证书验证失败的SSL错误。

from kubernetes import client, config
config.load_kube_config()

这在我测试的客户端上不起作用,但是kubectl在我的PC上起作用,所以我检查了一下,发现。kube/config文件没有指定CA证书。我把它加进去,然后就起作用了。

apiVersion: v1
clusters:
- cluster:
    api-version: v1
    certificate-authority: /path/to/ca_chain.crt
    server: "https://my-kubernetes-cluster"
    ...

如果您不想在主机上创建。kube/config文件,我还能够找出如何手动构建配置。

from kubernetes import client
from kubernetes.client import Configuration, ApiClient
config = Configuration()
config.api_key = {'authorization': 'Bearer <api_key>'}
config.host = 'https://my-kubernetes-cluster'
config.ssl_ca_cert = "/path/to/ca_chain.crt"

api_client = ApiClient(configuration=config)
v1 = client.CoreV1Api(api_client)

v1.list_pod_for_all_namespaces(watch=False)

共有1个答案

桑思远
2023-03-14

似乎有两个答案:

  1. RESTClientObject中的注释表明他们正在使用urllib3并有指向其文档的指针,这意味着您显然可以在主机OS级别进行这样的更改
  2. RestClientObject接受与SSL管理相关的Kwarg,包括关闭SSL验证的功能(如果您感兴趣的话)。提到的配置变量直接从apiclient.__init__
  3. 传递
 类似资料:
  • 问题内容: 我有一个证书文件,该位置是:并且我想将该证书用于我的tls配置,以便我的http客户端在与其他服务器通信时使用该证书。我当前的代码如下: 那么,如何在我的TLS配置中分配证书?我可以在http://golang.org/pkg/crypto/tls/#Config中看到证书设置,有人可以建议如何在此处配置我的证书位置吗? <-是错误的,因为我正在传递string。对吗?我没有任何其他文

  • 莴苣支持这种开箱即用的群集/分片吗?如果是,如何将其配置为使用客户端散列?

  • 在构建Retor Netty应用程序时,我得到了两个相似的指标。但是它们之间到底有什么区别呢? vs. 我不知道他们在测量响应时间的方式/位置上有什么不同。哪种方法测量的时间更长并不一致。 Http客户端指标测量时间更长 ReactorNetty指标延长了时间

  • 我需要一个推送消息服务器的方案。 现在我选择AutobahnJs+AutobahnPython方案。 AutobahnJs库使用html5的websocket连接AutobahnPython使用的服务器 在javascript中,使用订阅通道,每个客户端使用相同的订阅通道。clientD将消息发布到通道(与订阅通道相同),服务器将消息传递给订阅该通道的所有客户端。 这里有一个问题,我需要应用程序(

  • 这可能是一个简单的问题,但我无法解决。 我使用Slack Python Api在频道中提到用户,我在这里指的是文档,https://api.slack.com/methods/chat.postMessage,我的代码很简单, 这将向频道发送消息,但我找不到任何提及用户的选项。我试图在信息中加入,例如 该消息将被发布,但以纯文本形式发布,而不是真正提及某人。顺便说一句,我正在使用测试令牌。(或者也

  • 我是Vert.x的新手,对Kafka来说相对较新。 如何设置我的Vert.x KafkaProducer来导出Prometheus指标? 目前,我可以启用Prometheus度量,如<code>vertx_http_server_request_bytes_max</code>并通过Web服务器查看它们: 在使用Vert. x之前,我可以使用Apache KafkaProducer并绑定Kafka