我在 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 工作。