如何在 Kitura 服务器中获取 Kubernetes 外部 IP
Posted
技术标签:
【中文标题】如何在 Kitura 服务器中获取 Kubernetes 外部 IP【英文标题】:How to get Kubernetes external ip inside Kitura server 【发布时间】:2018-05-16 19:05:28 【问题描述】:我使用kitura create
搭建了一个新项目,因此它附带了 CloudEnvironment,我升级到了版本 (7.1)。
我正在将 Kitura (2.3) 作为 Docker 映像部署到 IBM Kubernetes。
我的问题是:如何在 Kitura 中获取 Kubernetes 外部 ip 地址?
我遇到问题的部分是cloudEnv.url + "/callback"
,当部署到 Kubernetes 时是 localhost:8080/callback
,但我需要它是真正的 ip:port。
到目前为止,我已经弄清楚了如何编写 Kubernetes 配置以将一些值传递给 Docker 容器,但是 CloudEnvironment 没有接收它们,并且我找不到 CloudEnvironment 的任何相关文档。
【问题讨论】:
【参考方案1】:https://github.com/IBM-Swift/CloudEnvironment
CloudEnvironment(以前称为 CloudConfiguration)是一个便捷的 Swift 包,用于从各种云计算环境(例如但不限于 Cloud Foundry 和 Kubernetes)访问映射到 JSON 对象的环境变量。例如,要获取访问 Cloudant 数据库的凭据,在 Cloud Foundry 中运行时需要解析
VCAP_SERVICES
环境变量,而在 Kubernetes 中运行时要获取相同的凭据,可能需要解析名为 @ 的环境变量987654324@。换言之,获取特定环境值的路径可能因云环境而异。通过利用这个包,你可以让你的 Swift 应用程序在获取这些值时与环境无关。使用 CloudEnvironment 可以让您从应用程序的源代码中抽象出这些低级细节。
您在名为 mappings.json 的文件中指定查找键和搜索模式。该文件必须存在于 Swift 项目根文件夹下的 config 文件夹中。您将使用该文件,因此应用可以获取环境变量。
Here's a starter kit using a Swift Kitura server and clicking the Deploy to Cloud button will set up an example of everything on Kube automatically.
【讨论】:
以上是关于如何在 Kitura 服务器中获取 Kubernetes 外部 IP的主要内容,如果未能解决你的问题,请参考以下文章
在 Kitura 中使用 Microsoft SQL Server