openyurtio / raven

provide layer 3 and layer 7 network connectivity among pods in different physical regions
Apache License 2.0
57 stars 37 forks source link

请问 边缘局域网需要有公网ip吗? #19

Closed hhstu closed 2 years ago

njucjc commented 2 years ago

目前至少需要一个出公网的IP

hhstu commented 2 years ago

我们目前的场景是,云在 阿里云,阿里云可以有公网 ip, 边在停车场,停车场目前没有公网 ip,仅仅是 4G 网。也就是目前还无法使用 raven 打通云边容器网络对吧

rambohe-ch commented 2 years ago

我们目前的场景是,云在 阿里云,阿里云可以有公网 ip, 边在停车场,停车场目前没有公网 ip,仅仅是 4G 网。也就是目前还无法使用 raven 打通云边容器网络对吧

@hhstu A public ip should be provided on cloud nodes or edge nodes. so i think this case can be supported now because cloud nodes have a public ip.

hhstu commented 2 years ago

我在配置上还是有点蒙蔽,可否再补充三个场景的 demo:

所有场景中边缘节点不具备公网 ip

guangxuli commented 2 years ago

Hi guys, I also have the same question, whether the edge node needs to have a public IP, or the edge node needs to be able to access the public IP of the cloud. @rambohe-ch

njucjc commented 2 years ago
  1. 场景一master是在nat后的话暂时还不支持
  2. 场景二和三看描述都是可支持的,总体的原则是将所有私网IP内部可达的节点用一个Gateway CR来管理,有公网IP的endpoint的natEnable值设为false即可,比如场景二,我假设master直接内网可达,worker之间也是内网可达,那么相应的Gateway CR可以像下面这样写:
    
    $ cat <<EOF | kubectl apply -f -
    apiVersion: raven.openyurt.io/v1alpha1
    kind: Gateway
    metadata:
    name: gw-master
    spec:
    backend: libreswan
    endpoints:
    - nodeName: master-1
      privateIP: <master-ip-1>
      natEnabled: false # 看是否有Bi-directional公网ip,有为false,无为true
    - nodeName: master-2
      privateIP: <master-ip-2>
      natEnabled: false # 看是否有Bi-directional公网ip,有为false,无为true
    - nodeName: master-3
      privateIP: <master-ip-3>
      natEnabled: false # 看是否有Bi-directional公网ip,有为false,无为true
    ---
    apiVersion: raven.openyurt.io/v1alpha1
    kind: Gateway
    metadata:
    name: gw-worker
    spec:
    backend: libreswan
    endpoints:
    - nodeName: worker-1
      privateIP: <worker-ip-1>
      natEnabled: false  # 看是否有Bi-directional公网ip,有为false,无为true

apiVersion: raven.openyurt.io/v1alpha1 kind: Gateway metadata: name: gw-edge spec: backend: libreswan endpoints:

EOF

BSWANG commented 2 years ago

There is two type of Public IP:

The cloud node need bi-direction Public IP , the edge node just need Egress-only Public IP.

Reference in new is

BSWANG commented 2 years ago

我们目前的场景是,云在 阿里云,阿里云可以有公网 ip, 边在停车场,停车场目前没有公网 ip,仅仅是 4G 网。也就是目前还无法使用 raven 打通云边容器网络对吧

4G网是有出公网IP的,这种是可以打通到云上的双向公网IP,也是可以打通容器网络的。

hhstu commented 2 years ago

publicIP 目前是必填,这设计有问题吗? @njucjc

njucjc commented 2 years ago

publicIP 目前是必填,这设计有问题吗? @njucjc

看错了吧,目前PublicIP不是必填,看一下这个Gateway的spec里enpoint的punlicIP是可选填 对于作为每个节点池gateway角色的endpoint我们会自动探测它的公网IP

hhstu commented 2 years ago

https://github.com/openyurtio/raven-controller-manager/blob/main/config/setup/all_in_one.yaml 看下这个 openapi 校验 @njucjc

njucjc commented 2 years ago

https://github.com/openyurtio/raven-controller-manager/blob/main/config/setup/all_in_one.yaml 看下这个 openapi 校验 @njucjc

crd的yaml不是用的这个,运行make push的时候会重新生成,详情看一下README

hhstu commented 2 years ago

https://github.com/openyurtio/raven-controller-manager/blob/main/config/setup/all_in_one.yaml 看下这个 openapi 校验 @njucjc

crd的yaml不是用的这个,运行make push的时候会重新生成,详情看一下README

了解,这可以理解为完全面向内测了

hhstu commented 2 years ago

close