我使用 Terraform 和 Ansible 在 AWS 上创建了一个 EKS 集群,并在 DigitalOcean 上创建了 Nexus 存储库。
另外我还没有为 Nexus 存储库创建任何 SSL,所以它是“http”。
通常,将 [insecure-registries:...] 条目添加到自托管节点的 docker 配置文件中就足够了,但我第一次使用 EKS,并且无权访问工作节点的配置,因为它们位于私有子网内。
如何在使用 EKS 时实现相同的目标?因为当我尝试从该 Nexus Repo 中提取图像时出现以下错误。我尝试使用 --insecure-skip-tls-verify 创建 docker registy secret 并将其与 POD yml 一起传递,但没有成功。
Failed to pull image "164.XX.XX.XX:8083/checkoutservice:latest": rpc error: code = Unknown desc = Error response from daemon: Get "https://164.XX.XX.XX:8083/v2/": http: server gave HTTP response to HTTPS client
更新1:好的,我已成功在 Nexus 服务器上安装 nginx 作为反向代理,并为其创建了 SSL。现在的问题是如何让 EKS 解析该域名。我尝试更改 core-dns pod 的配置映射,但目前没有成功。你有什么建议吗?
更新2:情况已解决。我需要在公共子网中创建一个 Bastion 服务器,通过 SSH 进入工作节点,并将我的自签名 Nexus 服务器证书的 CA 导入到 /etc/ssl/certs/,并使用相关域名修改 /etc/hosts 文件,然后重新启动 docker。