kubectl-如何通过命令行将服务规范类型编辑为LoadBalancer?

Raj*_*man 4 kubernetes kubectl

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

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

有办法吗..?

Avn*_*ngh 10

kubectl edit svc <service_name> -n <namespace>

i - 编辑服务

ESC, :wq - 更新您的服务

使用kubectl patch svc <service_name> -p '{"spec": ....}',如果你不想要的提示。


jax*_*orm 8

您无法删除现有端口,但可以添加HTTPs端口,也可以使用kubectl补丁程序更改类型

例:

kubectl patch svc <my_service> -p '{"spec": {"ports": [{"port": 443,"targetPort": 443,"name": "https"},{"port": 80,"targetPort": 80,"name": "http"}],"type": "LoadBalancer"}}'
Run Code Online (Sandbox Code Playgroud)

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

ports:
  - port: 443
    targetPort: 443
    name: "https"
  - port: 80
    targetPort: 80
    name: "http"
  type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)

然后执行:

kubectl patch svc <my_service> --patch "$(cat patch.yaml)"
Run Code Online (Sandbox Code Playgroud)