【问题标题】:kubectl - How to edit service spec type to LoadBalancer via command line?kubectl - 如何通过命令行将服务规范类型编辑为 LoadBalancer?
【发布时间】:2018-07-27 13:35:17
【问题描述】:

我有一个 clusterIP 类型的 k8s 服务。我需要通过 CLI 更改以下配置

  1. http 端口转 https 端口
  2. 端口号
  3. 负载均衡器的类型

有没有办法做到这一点..?

【问题讨论】:

  • 源代码管理中是否有原始的 YAML 规范?最好的方法是在那里编辑它,提交它,然后kubectl apply -f。

标签: kubernetes kubectl


【解决方案1】:

您无法删除现有端口,但您可以添加 HTTPS 端口并使用 kubectl patch 更改类型

例子:

kubectl patch svc <my_service> -p '{"spec": {"ports": [{"port": 443,"targetPort": 443,"name": "https"},{"port": 80,"targetPort": 80,"name": "http"}],"type": "LoadBalancer"}}'

如果您不想在命令行上创建 JSON,请创建一个 yaml 文件,如下所示:

ports:
  - port: 443
    targetPort: 443
    name: "https"
  - port: 80
    targetPort: 80
    name: "http"
  type: LoadBalancer

然后做:

kubectl patch svc <my_service> --patch "$(cat patch.yaml)"

【讨论】:

    【解决方案2】:

    kubectl edit svc &lt;service_name&gt; -n &lt;namespace&gt;

    i - 编辑服务

    ESC, :wq - 更新你的服务

    如果您不想收到提示,请使用kubectl patch svc &lt;service_name&gt; -p '{"spec": ....}'。

    【讨论】:

    • 太棒了..这应该被标记为正确答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 2018-06-02
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多