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



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

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

有办法做到这一点吗。。?

您不能删除现有端口,但可以添加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)"

kubectl edit svc <service_name> -n <namespace>

i-编辑服务

ESC,:wq-更新您的服务

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

原始解决方案不适用于powershell。以下是我们需要做的事情,以使它发挥作用。

kubectl补丁

Powershell:

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

请注意\for powershell用例

重击:

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

最新更新