【问题标题】:Certificate of K3S clusterK3S集群证书
【发布时间】:2020-08-19 10:44:54
【问题描述】:

我在 CI/CD 管道的 docker(-compose) 容器中使用 K3S 集群来测试我的应用程序代码。但是我对集群的证书有问题。我需要使用外部地址在集群上进行通信。我的 docker-compose 脚本如下所示

version: '3'
services:
  server:
    image: rancher/k3s:v0.8.1
    command: server --disable-agent 
    environment:
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml
    - K3S_KUBECONFIG_MODE=666
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    # get the kubeconfig file
    - .:/output
    ports:
#    - 6443:6443
     - 6080:6080
     - 192.168.2.110:6443:6443

  node:
    image: rancher/k3s:v0.8.1
    tmpfs:
    - /run
    - /var/run
    privileged: true
    environment:
    - K3S_URL=https://server:6443
    - K3S_CLUSTER_SECRET=somethingtotallyrandom
    ports:
      - 31000-32000:31000-32000

volumes:
  k3s-server: {}

从 python 访问集群给了我

MaxRetryError: HTTPSConnectionPool(host='192.168.2.110', port=6443): Max retries exceeded with url: /apis/batch/v1/namespaces/mlflow/jobs?pretty=True (Caused by SSLError(SSLCertVerificationError("hostname '192.168.2.110' doesn't match either of 'localhost', '172.19.0.2', '10.43.0.1', '172.23.0.2', '172.18.0.2', '172.23.0.3', '127.0.0.1', '0.0.0.0', '172.18.0.3', '172.20.0.2'")))

这是我的两(三)个问题

  • 如何在证书生成中添加额外的 IP 地址?我希望服务器命令中的 --bind-address 触发 taht
  • 如果提供 --http-listen-port 未达到预期结果,我该如何依靠 http
  • 任何其他关于如何启用与集群通信的建议

更改 python 代码并不是一个真正的选择,因为我希望保持代码不变以进行测试。 (通过 kubeconfig 回退 http 工作。

【问题讨论】:

    标签: docker k3s


    【解决方案1】:

    解决方法是使用参数tls-san

    server --disable-agent --tls-san 192.168.2.110
    

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 2021-10-12
      • 2019-12-16
      • 1970-01-01
      • 2016-10-03
      • 1970-01-01
      • 2021-03-08
      • 2021-08-30
      • 2019-05-25
      相关资源
      最近更新 更多