kubectl - 如何通过命令行将服务规范类型编辑为 LoadBalancer?
kubectl - How to edit service spec type to LoadBalancer via command line?
我有一个 clusterIP 类型的 k8s 服务..我需要通过 CLI 更改以下配置
- http 端口到 https 端口
- 端口号
- 负载均衡器的类型
有什么办法吗..?
您无法删除现有端口,但您可以添加 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)"
kubectl edit svc <service_name> -n <namespace>
i - 编辑服务
ESC, :wq - 更新您的服务
如果您不需要提示,请使用 kubectl patch svc <service_name> -p '{"spec": ....}'
。
原方案不适用于powershell。以下是我们需要做的才能让它发挥作用。
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 用例。
Bash:
kubectl patch svc <my_service> -p '{"spec": {"ports": [{"port": 443,"targetPort": 443,"name": "https"},{"port": 80,"targetPort": 80,"name": "http"}],"type": "LoadBalancer"}}'
我有一个 clusterIP 类型的 k8s 服务..我需要通过 CLI 更改以下配置
- http 端口到 https 端口
- 端口号
- 负载均衡器的类型
有什么办法吗..?
您无法删除现有端口,但您可以添加 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)"
kubectl edit svc <service_name> -n <namespace>
i - 编辑服务
ESC, :wq - 更新您的服务
如果您不需要提示,请使用 kubectl patch svc <service_name> -p '{"spec": ....}'
。
原方案不适用于powershell。以下是我们需要做的才能让它发挥作用。
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 用例。
Bash:
kubectl patch svc <my_service> -p '{"spec": {"ports": [{"port": 443,"targetPort": 443,"name": "https"},{"port": 80,"targetPort": 80,"name": "http"}],"type": "LoadBalancer"}}'