如何解决如何使用 Node.js SDK 创建 Kubernetes 部署
我正在使用 Node.js 构建一个项目,这需要我有一个可以部署到 Kubernetes 的应用程序。我正在开发的服务将采用一些 Kubernetes 清单,向其中添加一些 ENV 变量,然后部署这些资源。
我有一些代码可以使用 SDK 和 createNamespace
和 deleteNamespace
为我创建和销毁命名空间。这部分按照我想要的方式工作,即不需要 Kubernetes YAML 文件。我也想使用 SDK 来创建部署,但我似乎无法让它工作。我找到了一个 createNamespacedDeployment
的代码示例,但是使用 SDK 的 0.13.2
版本我无法让它工作。运行我找到的示例代码时收到此错误消息。
k8sApi.createNamespacedDeployment is not a function
我试图检查 SDK 的 git repo,尽管它很大,但我还没有在其中找到任何可以让我在我的 Node.js 代码中定义部署的东西,我发现最接近的是pod 部署但是这对我不起作用,我需要一个部署。
如何通过 Node.js 创建部署并将其应用于我的 Kubernetes 集群?
解决方法
您可以使用 import { Cluster } from '@c6o/kubeclient'
const cluster = new Cluster({}) // Assumes process.env.KUBECONFIG is set
const result = await cluster.upsert({kind: 'Deployment',apiVersion.. })
if (result.error) ...
Kubernetes 客户端。简单一点:
await cluster
.begin(`Provision Apps`)
.upsertFile('../../k8s/marina.yaml',options)
.upsertFile('../../k8s/store.yaml',options)
.upsertFile('../../k8s/harbourmaster.yaml',options)
.upsertFile('../../k8s/lifeboat.yaml',options)
.upsertFile('../../k8s/navstation.yaml',options)
.upsertFile('../../k8s/apps.yaml',options)
.upsertFile('../../k8s/istio.yaml',options)
.end()
如果您有多个步骤,您也可以使用 fluent API:
{{1}}
我们正在编写文档,但有很多供应商在此处使用此客户端:https://github.com/c6o/provisioners
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。