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

如何禁用Kubernetes API Server的TLS证书与认证?附当前配置

禁用Kubernetes API Server的TLS证书与认证

首先得跟你提一句——强烈不建议在生产环境里这么干!禁用TLS认证意味着所有API通信都是明文传输,随便抓个包就能拿到敏感数据,中间人攻击也能轻易得手,风险拉满。这种操作也就适合测试环境临时调试用用。

基于你给出的kube-apiserver配置,我帮你梳理下需要调整的地方:

具体配置修改步骤

  1. 启用非安全端口
    你已经设置了--insecure-bind-address=127.0.0.1(限制本地访问,这点做得还不错),但默认非安全端口(通常是8080)是关闭的,得显式打开它:

    - --insecure-port=8080
    

    要是你需要外部机器也能访问,把--insecure-bind-address改成0.0.0.0就行,但这会让风险进一步放大,谨慎操作。

  2. 清理所有TLS相关参数

    • 把etcd的连接从HTTPS改成HTTP,原来的--etcd-servers=https://172.16.1.7:2379要换成:
      - --etcd-servers=http://172.16.1.7:2379
      
    • 删掉etcd的TLS证书配置,比如你写的--etcd-cafile=/etc/etcd...,如果还有--etcd-cert-file、--etcd-key-file这类参数也一并删掉。
    • 要是你的配置里还有API Server自身的TLS证书参数(比如--tls-cert-file、--tls-private-key-file、--client-ca-file),也必须全部移除——这些是开启HTTPS认证的核心配置,留着的话TLS还是会生效。
  3. 修改后的完整配置参考

    apiVersion: v1
    kind: Pod
    metadata:
      name: kube-apiserver
      namespace: kube-system
    spec:
      hostNetwork: true
      containers:
      - name: kube-apiserver
        image: "bcmt-registry:5000/gcr.io/google-containers/kube-apiserver-amd64:v1.9.2"
        command:
        - /usr/local/bin/kube-apiserver
        - --insecure-bind-address=127.0.0.1
        - --insecure-port=8080
        - --apiserver-count=1
        - --etcd-servers=http://172.16.1.7:2379
    

验证是否生效

改完配置后重启kube-apiserver Pod,然后在本地跑个命令测试:

curl http://127.0.0.1:8080/api/v1/nodes

要是能正常返回节点的JSON数据,说明配置已经生效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:24:08