如何kubernetesdynamic暴露我的docker端口?
我有一个在端口5000上运行puma服务器的ruby应用程序的dockerfile。(它EXPOSE的端口,也使用运行命令来运行puma -p 5000。
在我的deployment.yaml我必须将containerPort
设置为5000以匹配此端口。
这对我来说似乎很奇怪,我的configuration在两个不同的地方列出端口。 如果我需要更改端口,这意味着我正在改变多个地方的configuration,这是违背12因子应用程序的configuration都在同一个地方的原则。
有没有办法只在一个地方设置端口?
在你的deployment.yaml中你实际上不需要指定containerPort
; 所有的端口都被暴露。 从文档 :
端口ContainerPort数组
从容器中公开的端口列表。 在这里公开一个端口给系统提供了关于一个容器使用的networking连接的附加信息,但主要是信息性的。 在这里不指定端口不会阻止该端口被暴露。 任何监听容器内默认“0.0.0.0”地址的端口都可以从networking访问。 无法更新。