如何在 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 可以让您从应用程序的源代码中抽象出这些低级细节。

您在名为 ma​​ppings.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 服务器的资源文件?

在 Kitura 中使用 Microsoft SQL Server

如何在kitura应用程序中调用mysql存储过程

Kitura iOS 服务器

将域指向在 OS X 服务器上运行的 Web 应用程序(例如 Kitura、完美、蒸汽服务器)

Swift Package Manager 无法解析 1.4 以上的 Kitura 版本