首页 > 解决方案 > kubectl - 如何通过命令行将服务规范类型编辑为 LoadBalancer?

问题描述

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

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

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

标签: kuberneteskubectl

解决方案


您不能删除现有端口,但可以添加 HTTPS 端口并使用kubectl 补丁更改类型

例子:

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)"

推荐阅读