You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04下Python Kubernetes客户端连接被拒,kubectl异常求助

问题:Ubuntu 20.04下Kubernetes Python客户端连接失败,microk8s kubectl正常但原生kubectl报错

环境

  • Ubuntu 20.04 LTS
  • Django应用中使用kubernetes-client/python库
  • 集群环境为microk8s

问题现象

  1. 运行Kubernetes Python客户端代码(仅修改YAML文件路径)时,持续触发连接拒绝错误:

urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192.168.139.242', port=6443):
Max retries exceeded with /apis/apps/v1/namespaces/default/deployments
(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fef64215430>:
Failed to establish a new connection: [Errno 111] Connection refused'))

错误发生在create_from_yaml函数调用处,已确认集群IP和端口正确。

  1. 终端执行microk8s kubectl apply -f video_capturer.yaml可正常部署资源,但直接使用原生kubectl命令报错:

~$ kubectl get all
The connection to the server 192.168.139.242:6443 was refused -
did you specify the right host or port?

代码片段

from kubernetes import client, config, utils

def main():
    config.load_kube_config()
    k8s_client = client.ApiClient()
    yaml_file = 'video_capturer.yaml'
    utils.create_from_yaml(k8s_client, yaml_file, verbose=True)

if __name__ == "__main__":
    main()

原因分析及解决办法

核心原因

原生kubectl和Python Kubernetes客户端默认读取~/.kube/config配置文件,但该文件与microk8s自带kubectl使用的配置不一致,导致连接失败:

  • microk8s的kubectl使用内部专属配置(路径通常为/var/snap/microk8s/current/credentials/client.config)
  • 用户目录下的~/.kube/config要么不存在,要么配置的集群地址不可访问,或者权限不符合要求。

解决步骤

  1. 同步microk8s配置到默认路径
    将microk8s的kubeconfig导出到用户默认配置位置:

    # 先备份原有配置(如有)
    cp ~/.kube/config ~/.kube/config.bak
    # 导出microk8s配置覆盖默认文件
    microk8s config > ~/.kube/config
    
  2. 修复配置文件权限
    kubeconfig需要严格的权限设置(禁止其他用户读写),执行:

    chmod 600 ~/.kube/config
    
  3. 验证配置有效性
    执行原生kubectl命令测试连接:

    kubectl get all
    

    若能正常返回集群资源,再运行Python代码即可正常连接Kubernetes集群。

  4. 可选:临时指定配置路径
    若不想覆盖默认配置,可在Python代码中直接指定microk8s的配置文件路径:

    config.load_kube_config(config_file='/var/snap/microk8s/current/credentials/client.config')
    

    或通过环境变量指定:

    export KUBECONFIG=/var/snap/microk8s/current/credentials/client.config
    python your_script.py
    

内容的提问来源于stack exchange,提问作者Francisco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:55:23