You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IBM Cloud的OpenShift上创建带HTTPS的LoadBalancer服务

如何在IBM Cloud OpenShift集群中创建带HTTPS的LoadBalancer服务

首先明确:OpenShift Route与自定义LoadBalancer Service是两种独立的服务暴露机制,若你同时配置了两者可能引发冲突,建议根据需求选择其一。以下是创建自定义HTTPS LoadBalancer Service的步骤及问题排查方案:

一、排查现有配置问题

  • 确认你的Service配置中,spec.ports.targetPort是否与后端Pod实际监听的HTTPS端口一致(通常为443)
  • 检查Service的Endpoints状态:执行oc describe service <your-lb-service-name>,确认Endpoints列表中存在对应Pod的IP及端口信息,若为空则说明标签选择器与Pod不匹配
  • 验证后端Pod是否正常监听443端口:进入Pod执行netstat -tulpn | grep 443,确认服务已启动并监听目标端口

二、正确创建HTTPS LoadBalancer Service

根据TLS终止的位置,分为两种配置方式:

方式1:后端Pod终止TLS(证书部署在Pod内)

此方式下,LoadBalancer仅转发443端口的TCP流量到Pod,由Pod内的服务处理SSL加密。

创建Service的YAML示例:

apiVersion: v1
kind: Service
metadata:
  name: https-lb-service
  annotations:
    # 若需要指定IBM Cloud公开IP类型,添加此注解
    service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: public
spec:
  type: LoadBalancer
  ports:
    - name: https
      protocol: TCP
      port: 443          # LoadBalancer对外暴露的端口
      targetPort: 443    # 后端Pod监听的HTTPS端口
  selector:
    app: your-app-label  # 替换为你的Pod标签,确保与Pod的metadata.labels匹配

应用配置:

oc apply -f https-lb-service.yaml

方式2:IBM Cloud LoadBalancer层终止TLS(证书部署在LB)

此方式下,由IBM Cloud的LoadBalancer处理SSL终止,解密后将HTTP流量转发到Pod的80端口(或自定义端口)。

  1. 先将SSL证书上传至IBM Cloud Certificate Manager,获取证书的CRN(格式为crn:v1:bluemix:public:cloudcerts:...)
  2. 创建带注解的Service YAML:
apiVersion: v1
kind: Service
metadata:
  name: https-lb-termination
  annotations:
    service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: public
    service.kubernetes.io/ibm-load-balancer-ssl-cert: "你的证书CRN"
    service.kubernetes.io/ibm-load-balancer-ssl-ports: "443"
    # 可选:强制将HTTP(80)流量重定向到HTTPS(443)
    service.kubernetes.io/ibm-load-balancer-redirect-http-to-https: "true"
spec:
  type: LoadBalancer
  ports:
    - name: https
      protocol: TCP
      port: 443
      targetPort: 80    # 后端Pod监听的HTTP端口
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
  selector:
    app: your-app-label

应用配置后,等待IBM Cloud LoadBalancer完成证书配置,通常需要数分钟。

三、验证配置有效性

  1. 获取LoadBalancer的外部IP:
oc get service <your-lb-service-name>
  1. 测试HTTPS端口监听:
nc -zv <LOAD_BALANCER_IP> 443
  1. 访问服务验证:
curl -v https://<LOAD_BALANCER_IP>

若使用LB层终止TLS,需确保DNS记录已指向该外部IP,避免证书域名不匹配问题。

内容的提问来源于stack exchange,提问作者skira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:10:31