配置公网 IP

英博云支持通过公网 IP 的方式,对外暴露服务。

配置公网IP的操作均为 K8S Native 方式,您需要通过 kubectl 命令进行操作,关于 kubectl 工具,具体参考这里

注意:

  • 本文档仅限于为普通 K8S 工作负载配置公网 IP,为开发机(ContainerServer)配置公网 IP,为请参考这里

使用 Service 分配公网 IP

英博云支持用k8s native的方式为服务分配公网IP,通过定义 LoadBalancer 类型的 Service 实现,一个示例如下:

---
apiVersion: v1
kind: Service
metadata:
  name: sglang-svc
  namespace: default
spec:
  type: LoadBalancer
  ports:
    - port: 9080
      targetPort: 8080
      protocol: TCP
  selector:
    app: sglang

查看公网 IP 的地址

可以通过如下如下命令查看公网 IP:

% kubectl get svc sglang-svc -owide
NAME          TYPE           CLUSTER-IP      EXTERNAL-IP    PORT(S)          AGE   SELECTOR
sglang-svc   LoadBalancer   10.233.xx.xx   117.74.xx.xx   9080:31740/TCP   15s   app=sglang

其中EXTERNAL-IP字段为公网IP的值。

释放公网 IP

若希望释放公网 IP,建议删除 Service,示例如下:

kubectl delete svc sglang-svc

注意:

  • 将Service类型改为ClusterIP或者NodePort,也可以释放公网IP,但是要注意,把yaml中的NodePort的具体端口删除,否则可能因为端口冲突,导致释放失败。
  • 用修改Service类型的方式释放公网IP时,建议通过kubectl describe service sglang-svc查看k8s事件,确保没有错误,表示类型修改成功。