1

我知道k3d可以通过 神奇地做到这一点k3d cluster create myname --token MYTOKEN --agents 1,但我试图弄清楚如何“手动”做最简单的版本。我想创建一个类似的服务器:

 docker run -e K3S_TOKEN=MYTOKEN rancher/k3s:latest server

并连接一个类似的代理:

 docker run -e K3S_TOKEN=MYTOKEN -e K3S_URL=https://localhost:6443 rancher/k3s:latest agent

有谁知道这里需要转发哪些端口?我该如何设置?几乎我尝试的所有事情,代理都会抱怨端口 6444 已经在使用中,即使我尽可能多地禁用了服务器的任何组合--no-deploy servicelb --disable-agent --no-deploy traefik

随意禁用除服务器和代理之外的所有内容,我试图让这个超级简单,但现在只是把我的头撞到墙上。谢谢!

4

1 回答 1

2

容器必须“看到”彼此。Docker 默认隔离网络,因此代理容器中的“localhost”就是代理容器本身。

可能的解决方案:在没有网络隔离的情况下运行两个容器,使用--net=host将服务器的 API 端口映射到主机--port并使用代理容器中的主机 IP 或使用 docker-compose。

此处描述了 docker-compose 的工作示例:https ://www.trion.de/news/2019/08/28/kubernetes-in-docker-mit-k3s.html

于 2021-07-19T15:50:49.823 回答