diff --git a/sig-edge/images/edge-watcher.png b/sig-edge/images/edge-watcher.png index 4ef0a75b..784b3dbd 100644 Binary files a/sig-edge/images/edge-watcher.png and b/sig-edge/images/edge-watcher.png differ diff --git a/sig-edge/images/edge-watcher.svg b/sig-edge/images/edge-watcher.svg new file mode 100644 index 00000000..b6fa7c22 --- /dev/null +++ b/sig-edge/images/edge-watcher.svg @@ -0,0 +1,3 @@ + + +
master3
master3
master2
master2
master1
master1
IPTables CRD
IPTables CRD
IPTablesRules CRD
IPTablesRules CRD
Cluster Edge Nodes' Internal IP
Cluster Edge Nodes' Internal IP
  kind: Node
  metadata:
    ...
    labels:
      kubernetes.io/arch: arm64
      kubernetes.io/hostname: jetson-xavier
      kubernetes.io/os: linux
      node-role.kubernetes.io/agent: ""
      node-role.kubernetes.io/edge: ""
    name: host
    status:
      addresses:
        - address: 192.168.100.1
      type: InternalIP
...
kind: Node...
  kind: Node
  metadata:
    ...
    labels:
      kubernetes.io/arch: arm64
      kubernetes.io/hostname: raspberrypi
      kubernetes.io/os: linux
      node-role.kubernetes.io/agent: ""
      node-role.kubernetes.io/edge: ""
    name: host
    status:
      addresses:
        - address: 192.168.100.2
      type: InternalIP
...
kind: Node...
Edge-Watcher Operator
Edge-Watcher Operator
Watch
Watch
Watch
Watch
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
apiVersion: kubeedge.kubesphere.io/v1alpha1
kind: IPTablesRules
metadata:
  name: edge-watcher
  namespace: kubeedge
spec:
  rules:
  - chain: OUTPUT
    destination_ip: 192.168.10.7
    destination_port: "31003"
    jump: DNAT
    protocol: TCP
    source_ip: 192.168.100.1
    source_port: "10250"
    table: nat
  - chain: OUTPUT
    destination_ip: 192.168.10.7
    destination_port: "31003"
    jump: DNAT
    protocol: TCP
    source_ip: 192.168.100.2
    source_port: "10250"
    table: nat

apiVersion: kubeedge.kubesphere.io/v1alpha1...
System IPTables
System IPTables
Edge-Watcher
Edge-Watcher
Sync
Sync
apiVersion: kubeedge.kubesphere.io/v1alpha1
kind: IPTables
metadata:
  name: iptables
  namespace: kubeedge
spec:
  image: edge-watcher-agent:latest
  imagePullPolicy: IfNotPresent
  nodeSelector:
    node-role.kubernetes.io/master: ""
    node-role.kubernetes.io/worker: ""
apiVersion: kubeedge.kubesphere.io/v1alpha1...
Watch
Watch
apiVersion: v1
kind: Secret
data:
  iptables.conf:
    {
    "iptables": [
        {
            "table": "nat",
            "chain": "OUTPUT",
            "jump": "DNAT",
            "protocol": "TCP",
            "source_ip": "192.168.100.1",
            "source_port": "10250",
            "destination_ip": "192.168.10.7",
            "destination_port": "31003"
        },
        {
            "table": "nat",
            "chain": "OUTPUT",
            "jump": "DNAT",
            "protocol": "TCP",
            "source_ip": "192.168.100.2",
            "source_port": "10250",
            "destination_ip": "192.168.10.7",
            "destination_port": "31003"
        }
    ]
}
apiVersion: v1...
Write
Write
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
System IPTables
System IPTables
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
System IPTables
System IPTables
Watch
Watch
Create
Create
Create
Create
Create
Create
Mount
Mount
Mount
Mount
Mount
Mount
master3
master3
master2
master2
master1
master1
IPTables CRD
IPTables CRD
IPTablesRules CRD
IPTablesRules CRD
Cluster Edge Nodes' Internal IP
Cluster Edge Nodes' Internal IP
  kind: Node
  metadata:
    ...
    labels:
      kubernetes.io/arch: arm64
      kubernetes.io/hostname: jetson-xavier
      kubernetes.io/os: linux
      node-role.kubernetes.io/agent: ""
      node-role.kubernetes.io/edge: ""
    name: host
    status:
      addresses:
        - address: 192.168.100.1
      type: InternalIP
...
kind: Node...
  kind: Node
  metadata:
    ...
    labels:
      kubernetes.io/arch: arm64
      kubernetes.io/hostname: raspberrypi
      kubernetes.io/os: linux
      node-role.kubernetes.io/agent: ""
      node-role.kubernetes.io/edge: ""
    name: host
    status:
      addresses:
        - address: 192.168.100.2
      type: InternalIP
...
kind: Node...
Edge-Watcher Operator
Edge-Watcher Operator
Watch
Watch
Watch
Watch
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
apiVersion: kubeedge.kubesphere.io/v1alpha1
kind: IPTablesRules
metadata:
  name: edge-watcher
  namespace: kubeedge
spec:
  rules:
  - chain: OUTPUT
    destination_ip: 192.168.10.7
    destination_port: "31003"
    jump: DNAT
    protocol: TCP
    source_ip: 192.168.100.1
    source_port: "10250"
    table: nat
  - chain: OUTPUT
    destination_ip: 192.168.10.7
    destination_port: "31003"
    jump: DNAT
    protocol: TCP
    source_ip: 192.168.100.2
    source_port: "10250"
    table: nat

apiVersion: kubeedge.kubesphere.io/v1alpha1...
System IPTables
System IPTables
Edge-Watcher
Edge-Watcher
Sync
Sync
apiVersion: kubeedge.kubesphere.io/v1alpha1
kind: IPTables
metadata:
  name: iptables
  namespace: kubeedge
spec:
  image: edge-watcher-agent:latest
  imagePullPolicy: IfNotPresent
  nodeSelector:
    node-role.kubernetes.io/master: ""
    node-role.kubernetes.io/worker: ""
apiVersion: kubeedge.kubesphere.io/v1alpha1...
Watch
Watch
apiVersion: v1
kind: Secret
data:
  iptables.conf:
    {
    "iptables": [
        {
            "table": "nat",
            "chain": "OUTPUT",
            "jump": "DNAT",
            "protocol": "TCP",
            "source_ip": "192.168.100.1",
            "source_port": "10250",
            "destination_ip": "192.168.10.7",
            "destination_port": "31003"
        },
        {
            "table": "nat",
            "chain": "OUTPUT",
            "jump": "DNAT",
            "protocol": "TCP",
            "source_ip": "192.168.100.2",
            "source_port": "10250",
            "destination_ip": "192.168.10.7",
            "destination_port": "31003"
        }
    ]
}
apiVersion: v1...
Write
Write
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
System IPTables
System IPTables
EdgeWatcher Agent Daemonset
EdgeWatcher Agent Da...
System IPTables
System IPTables
Watch
Watch
Create
Create
Create
Create
Create
Create
Mount
Mount
Mount
Mount
Mount
Mount
Viewer does not support full SVG 1.1
\ No newline at end of file