【问题标题】:Is it possible to deploy kubernetes application through bazel?是否可以通过 bazel 部署 kubernetes 应用程序?
【发布时间】:2019-08-28 17:55:24
【问题描述】:

我想通过 bazel 自动化我的 kubernetes pod 清单文件的部署过程。我已经通过 bazel 中的 k8s_object 获取了 k8s 上下文、集群和 kubeconfig 文件的信息,不知道如何利用它在 k8s 租户中部署我的应用程序。

【问题讨论】:

    标签: kubernetes bazel


    【解决方案1】:

    您需要使用k8s_object 与 Kubernetes 集群进行交互。

    您可以create a Deployment 将您的应用程序部署到集群:

    这是一个例子nginx-deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9
            ports:
            - containerPort: 80
    

    你必须在 bazel k8s_object 中使用 yaml 文件作为模板,所以它看起来像这样: k8s_object(name = "nginx", kind = "create", template = "nginx-deployment.yaml")

    【讨论】:

    • 谢谢克劳!!我有一个与github.com/bazelbuild/rules_k8s#aliasing-eg-k8s_deploy 中提到的环境相同的环境(我认为这与创建 K8s_object 相同)。我将集群更改为我的本地 K8s 集群,部署文件保存在 BUILD.bazel 文件目录中并运行此“bazel run :dev”。在我的 K8s 租户中没有部署任何东西,这只是解决了我的模板并打印到 STDOUT。
    • 您确定您正确配置了集群吗?可以调用其他命令吗?
    • 是的,集群配置正确。但是当我运行“bazel run :dev”时,我可以在github.com/bazelbuild/rules_k8s#resolve 上看到相同的行为。 AFAIK 运行和构建是唯一适用于这种情况的命令。你有这方面的工作例子吗?
    • 如果我没记错的话,你需要使用bazel run :dev.createbazel run :dev.apply
    • 感谢@Crou,这行得通。但是在 'bazel run :dev.create' 之后我遇到了另一个问题。
    猜你喜欢
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多