【发布时间】:2019-12-18 05:16:04
【问题描述】:
我正在尝试在 K8s 上部署 free5GC (cluster version)。 这个软件的问题是有些服务在启动之前必须知道其他服务IP。我在 docker-compose 中解决了这个问题,在每个 docker 容器内执行一个脚本,并使用其他服务 IP 作为参数。 这是我的 docker-compose.yaml:
version: '3'
networks:
testing_net:
ipam:
driver: default
config:
- subnet: 172.28.0.0/16
services:
mongo:
container_name: mongo
image: mongo
networks:
testing_net:
ipv4_address: ${mongo_ip}
webui:
container_name: webui
image: j0lama/free5gc-webui
depends_on:
- mongo
ports:
- '80:3000'
extra_hosts:
- "mongo:${mongo_ip}"
networks:
testing_net:
ipv4_address: ${webui_ip}
hss:
container_name: hss
command: bash -c "./hss_setup.sh ${mongo_ip} ${hss_ip} ${amf_ip}"
image: j0lama/free5gc-hss
depends_on:
- mongo
networks:
testing_net:
ipv4_address: ${hss_ip}
amf:
container_name: amf
command: bash -c "./amf_setup.sh ${mongo_ip} ${hss_ip} ${amf_ip} ${smf_ip}"
image: j0lama/free5gc-amf
depends_on:
- mongo
- hss
ports:
- '36412:36412'
networks:
testing_net:
ipv4_address: ${amf_ip}
smf:
container_name: smf
command: bash -c "./smf_setup.sh ${smf_ip} ${upf_ip} ${pcrf_ip}"
image: j0lama/free5gc-smf
depends_on:
- mongo
- hss
- amf
networks:
testing_net:
ipv4_address: ${smf_ip}
pcrf:
container_name: pcrf
command: bash -c "./pcrf_setup.sh ${mongo_ip} ${smf_ip} ${pcrf_ip}"
image: j0lama/free5gc-pcrf
depends_on:
- mongo
- hss
- amf
- smf
networks:
testing_net:
ipv4_address: ${pcrf_ip}
upf:
container_name: upf
command: bash -c "./upf_setup.sh ${upf_ip}"
image: j0lama/free5gc-upf
depends_on:
- mongo
- hss
- amf
- smf
- pcrf
networks:
testing_net:
ipv4_address: ${upf_ip}
有了这个,我可以正确设置集群的所有组件。 我已经尝试过 kompose 实用程序,但不起作用。
对 Kubernetes 有什么建议或替代方案吗?
感谢您的帮助。
【问题讨论】:
-
您的工具是否进行 DNS 查找? Docker Compose 和 Kubernetes 都提供内部 DNS 系统,您可以使用这些系统来引用其他容器,而无需手动指定 IP 地址。
标签: docker kubernetes docker-compose