Skip to content

Commit

Permalink
modify some documents
Browse files Browse the repository at this point in the history
Signed-off-by: dcwbq <[email protected]>
  • Loading branch information
dcwbq committed Nov 13, 2023
1 parent d85fc9c commit 279fc27
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 39 deletions.
8 changes: 7 additions & 1 deletion docs/reference/EgressClusterPolicy.zh.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
EgressClusterPolicy CRD 用于定义集群级 Egress 策略规则,与 [EgressPolicy](EgressPolicy.zh.md) CRD 类似,但增加了 `spec.appliedTo.namespaceSelector` 属性
EgressClusterPolicy CRD 用于定义集群级 Egress 策略规则,与 [EgressPolicy](EgressPolicy.zh.md) CRD 类似,但增加了 `spec.appliedTo.namespaceSelector` 字段,其他字段与 EgressPolicy 一致

```yaml
apiVersion: egressgateway.spidernet.io/v1beta1
Expand All @@ -12,6 +12,7 @@ spec:
ipv4: ""
ipv6: ""
useNodeIP: false
allocatorPolicy: default
appliedTo:
podSelector:
matchLabels:
Expand All @@ -25,6 +26,11 @@ spec:
destSubnet:
- "10.6.1.92/32"
- "fd00::92/128"
status:
eip:
ipv4: 172.18.1.2
ipv6: fc00:f853:ccd::9
node: egressgateway-worker
```
1. `namespaceSelector` 使用 selector 选择匹配的命名空间列表。在选定的命名空间范围内,使用 `podSelector` 选择匹配的 Pod,然后对这些选中的 Pod 应用 Egress 策略。
39 changes: 20 additions & 19 deletions docs/reference/EgressGateway.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,17 @@ spec:
matchLabels:
egress: "true"
policy: "doing" # (8)
clusterDefault: false # (9)
status:
nodeList: # (9)
- name: "node1" # (10)
status: "Ready" # (11)
epis: # (12)
- ipv4: "10.6.1.55" # (13)
ipv6: "fd00::55" # (14)
policies: # (15)
- name: "app" # (16)
namespace: "default" # (17)
nodeList: # (10)
- name: "node1" # (11)
status: "Ready" # (12)
epis: # (13)
- ipv4: "10.6.1.55" # (14)
ipv6: "fd00::55" # (15)
policies: # (16)
- name: "app" # (17)
namespace: "default" # (18)
```
1. 设置 EgressGateway 可使用的 Egress IP 池的范围;
Expand All @@ -40,13 +41,13 @@ status:
6. 设置 Egress 节点的匹配条件和策略;
7. 通过 Selector 选择一组节点作为 Egress 节点,Egress IP 可在此范围内浮动;
8. EgressGateway 选择 Egress 节点的策略,目前仅支持平均选择;
9. 节点选择器选择的 Egress 节点,以及节点上有效的 Egress IP,以及使用该 Egress IP 的 EgressPolicy;
10. Egress 节点的名称
11. Egress 节点对应的 EgressTunnel 对象的状态
12. Egress 节点上有效的 EIP 信息
13. Egress IPv4,如果 EgressPolicy 和 EgressClusterPolicy 使用节点 IP,则此字段为空
14. Egress IPv6,在双栈情况下,IPv4 和 IPv6 一一对应
15. 哪些策略使用此节点上的有效 Egress IP
16. 使用 Egress IP 的策略名称
17. 使用 Egress IP 的策略的命名空间。

9. 默认为 `false`,当为 `true` 时,作为全局唯一的默认 egw。
10. 节点选择器选择的 Egress 节点,以及节点上有效的 Egress IP,以及使用该 Egress IP 的 EgressPolicy
11. Egress 节点的名称
12. Egress 节点对应的 EgressTunnel 对象的状态
13. Egress 节点上有效的 EIP 信息
14. Egress IPv4,如果 EgressPolicy 和 EgressClusterPolicy 使用节点 IP,则此字段为空
15. Egress IPv6,在双栈情况下,IPv4 和 IPv6 一一对应
16. 哪些策略使用此节点上的有效 Egress IP;
17. 使用 Egress IP 的策略名称;
18. 使用 Egress IP 的策略的命名空间。
40 changes: 21 additions & 19 deletions docs/reference/EgressPolicy.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,40 +7,42 @@ metadata:
namespace: "default"
name: "policy-test"
spec:
egressGatewayName: "eg1" # (1)
egressIP: # (2)
egressGatewayName: "eg1" # (1)
egressIP: # (2)
ipv4: ""
ipv6: ""
useNodeIP: false # (3)
useNodeIP: false # (3)
allocatorPolicy: default # (4)
appliedTo:
podSelector: # (4)
podSelector: # (5)
matchLabels:
app: "shopping"
podSubnet: # (5)
podSubnet: # (6)
- "172.29.16.0/24"
- 'fd00:1/126'
destSubnet: # (6)
destSubnet: # (7)
- "10.6.1.92/32"
- "fd00::92/128"
priority: 100 # (7)
priority: 100 # (8)
status:
eip: # (8)
eip: # (9)
ipv4: 172.18.1.2
ipv6: fc00:f853:ccd:e793::9
node: egressgateway-worker # (9)
ipv6: fc00:f853:ccd::9
node: egressgateway-worker # (10)
```
1. 选择 EgressPolicy 引用的 EgressGateway:
2. Egress IP 表示 EgressPolicy 所使用的 EgressIP 设置:
* 若在创建时定义了 `ipv4` 或 `ipv6` 地址,则从 EgressGateway 的 `.ippools` 中分配一个 IP 地址,若在 policy1 中,申请使用了 IP 地址 `10.6.1.21` 和 `fd00:1` ,然后创建 policy2 中,申请使用了 IP 地址 `10.6.1.21` 和 `fd00:2`,则会报错,此时 policy2 会分配失败;
* 若在创建时定义了 `ipv4` 或 `ipv6` 地址,则从 EgressGateway 的 `.ippools` 中分配一个 IP 地址,若在 policy1 中,申请使用了 IP 地址 `10.6.1.21` 和 `fd00:1` ,然后创建 policy2 中,申请使用了 IP 地址 `10.6.1.21` 和 `fd00:2`,则会报错,此时 policy2 会分配失败,因为已分配的 `ipv4` 与 `ipv6` 地址会一一绑定,再次使用时,需要同时使用。如果只指定一者,会自动使用对应的另一者
* 若未定义 `ipv4` 或 `ipv6` 地址,且 `useNodeIP` 为 true 时,则使用所引用的 EgressGateway 匹配的 Node IP 作为 Egress 地址;
* 若未在创建时定义 `ipv4` 或 `ipv6` 地址,且 `useNodeIP` 为 `false` 时;
* 则自动从 EgressGateway 的 `.ranges` 中分配一个 IP 地址(开启 IPv6 时,请求分配一个 IPv4 和 一个 IPv6 地址)。
* `egressGatewayName` 不能为空。
3. 支持使用节点 IP 作为 Egress IP(只允许选择一种);
4. 以 Label 的方式选择需要应用 EgressPolicy 的 Pod;
5. 通过直接指定 Pod 的网段选择需要应用 EgressPolicy 的 Pod(4 和 5 不能同时使用)
6. 指定访问 Egress 的目标地址,若未指定目标地址,则以下策略将生效:对于那些目标地址不属于集群内部 CIDR 的请求,将全部转发到 Egress 节点。
7. 策略的优先级。
8. 该 EgressPolicy 所分配到的 EgressIP
9. 该 EgressPolicy 的 EgressIP 所在的节点,同时也是该 EgressPolicy 的网关节点
4. 默认为 `default` 模式,若未在创建时定义 `ipv4` 或 `ipv6` 地址,且 `useNodeIP` 为 `false` 时;
* 为 `default` 时,则使用 EgressGateway 的 `.ippools.ipv4DefaultEIP/ipv6DefaultEIP` 值作为 EIP
* 为 `rr` 时,则从 EgressGateway 的 `.ippools` 中随机分配一个未使用的 IP 地址(开启 IPv6 时,请求分配一个 IPv4 和 一个 IPv6 地址)。如果所有 IP 地址都被使用时,则 EIP 分配失败。
5. 以 Label 的方式选择需要应用 EgressPolicy 的 Pod;
6. 通过直接指定 Pod 的网段选择需要应用 EgressPolicy 的 Pod(4 和 5 不能同时使用)
7. 指定访问 Egress 的目标地址,若未指定目标地址,则以下策略将生效:对于那些目标地址不属于集群内部 CIDR 的请求,将全部转发到 Egress 节点。
8. 策略的优先级(未实现,保留字段)。
9. 该 EgressPolicy 所分配到的 EgressIP。
10. 该 EgressPolicy 的 EgressIP 所在的节点,同时也是该 EgressPolicy 的网关节点。

1 comment on commit 279fc27

@weizhoublue
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.