Skip to content

如何对外提供服务

以下为您演示如何通过LoadBalancer方式公网访问您的服务。需通过登录集群后台操作,用kubectl命令来操作允许公网访问。

⚠️ 注意
公网IP为计费资源,如不再使用,请及时释放!

操作步骤

⚠️ 注意
对外提供服务需要您登录集群,通过后台操作。集群连接请参考:连接集群

  1. 编辑需要提供公网访问的服务。下述演示通过LoadBalancer‌,为demo1分配公网ip访问服务 。
bash
demo@demoMacBook-Pro  % kubectl get containerservers.apps.ebcloud.com
NAME    STATUS    AGE   ENABLE-DOCKER
demo1   Running   20h   false
  1. 编辑服务demo1的yaml文件,命令如下。文件内容很多,找到network字段,以下是yaml文件的部分截取
bash
demo@demoMacBook-Pro  % kubectl edit containerservers.apps.ebcloud.com demo1
# 原yaml部分截取,需要修改network部分
jupyterAccess:
  enable: true
  port: 8888
  token: neFroeabn9nVHFMD1lSoGINYdKitnmFCfTWHMHChxUYyAFOS
network: {} #这块内容是需要修改的
power: "ON"
resources:
  cpu:
    count: "10"#---------------------network字段改为如下内容---------------## 原文件内容省略无需修改
network:
  public: true
  tcp:
    ports:
    - 88 # 这个端口是服务的target port端口。可添加多个
    - 77 # 多个端口的演示,如果不需要则不用加这一行。# 原文件内容省略
  1. 保存上述文件后,查看可用的外网IP
bash
demo@demoMacBook-Pro  % kubectl get containerservers.apps.ebcloud.com -o wide
NAME    STATUS    AGE   ENABLE-DOCKER   SERVER-POD              SSH-ACCESS                                     EXTERNAL-IP    SERVER-CLUSTER-IP   DIND-CLUSTER-IP
demo1   Running   13m   false           cs-f3076-6cee4-server   ssh -p 35321 root@ssh-cn-huabei1.ebcloud.com   117.78.61.74   10.233.73.169
  1. 访问
bash
# 浏览器访问117.78.61.74:88

取消对外提供服务

操作步骤:

  1. 编辑服务demo1的yaml文件,在之前修改的network字段中,修改public得true改为false
bash
demo@demoMacBook-Pro  % kubectl edit containerservers.apps.ebcloud.com demo1
# network字段部分改为如下部分
  原文件内容省略无需修改
  network:
    public: false #修改为false
    tcp:
      ports:
      - 88
      - 77
  1. 检查,EXTERNAL-IP字段,IP消失则成功。
bash
demo@demoMacBook-Pro  % kubectl get containerservers.apps.ebcloud.com -o wide
  NAME    STATUS    AGE   ENABLE-DOCKER   SERVER-POD              SSH-ACCESS                                     EXTERNAL-IP    SERVER-CLUSTER-IP   DIND-CLUSTER-IP
  demo1   Running   13m   false           cs-f3076-6cee4-server   ssh -p 35321 root@ssh-cn-huabei1.ebcloud.com                    10.233.73.169