1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/fabedge-fabedge

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
FAQ.md 18 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 05:05 ca482b1

Часто задаваемые вопросы (ЧАВО)

Является ли FabEdge ещё одной реализацией CNI?

Не совсем, хотя это и не является другой реализацией CNI для общего использования. FabEdge предназначен для решения проблем сетевой связи в вычислении на краю сети. На стороне облачной среды он всё ещё зависит от Flannel или Calico для обеспечения сетевой связи. Однако на стороне края сети работу выполняет FabEdge. Возможно, однажды мы сможем сделать так, чтобы Flannel или Calico работали на стороне края сети.

Какие реализации CNI могут работать вместе с FabEdge?

На данный момент FabEdge может работать только с Flannel и Calico. FabEdge может работать в режиме vxlan у Flannel, а также в режимах vxlan или IPIP у Calico. Кроме того, при работе с Calico нельзя использовать etcd как хранилище данных для Calico.

Какова размерность PodCIDR для каждого узла края сети? Можно ли её изменять? Как?

Это зависит от ваших настроек Kubernetes и используемого CNI:

  • Flannel. Flannel сам по себе не распределяет PodCIDR для рабочих узлов, вместо этого он использует поле PodCIDR каждого узла, которое распределяется Kubernetes. В этом случае FabEdge будет также использовать PodCIDR узлов. Если вы хотите изменить размер, вам придётся установить его во время развертывания Kubernetes.* Calico. Calico сам распределяет PodCIDR для каждого узла, но поскольку FabEdge не может изменять настройки Calico, мы решили распределять PodCIDR для узлов краевой сети самостоятельно. Именно поэтому вам нужно указывать значение параметра edge-pod-cidr. Чтобы изменить размер PodCIDR, вам следует установить параметр edge-cidr-mask-size: ```shell curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s --
    --cluster-name beijing
    --cluster-role host
    --cluster-zone beijing
    --cluster-region beijing
    --connectors beijing
    --edges edge1,edge2,edge3
    --connector-public-addresses 10.22.45.16
    --cni-type calico
    --edge-pod-cidr 10.234.0.0/16 \ # address space for edge pods, should not overlap with Calico --edge-cidr-mask-size 26 \ # this is the network mask size --chart fabedge/fabedge

Если вы выберете ручное развертывание FabEdge, вы можете взять за основу следующий пример файла values.yaml.

cluster:
  name: beijing
  role: host
  region: beijing
  zone: beijing
  cniType: "calico"
  # configuration of IP address range for container nodes and size of the network mask
  edgePodCIDR: "10.234.0.0/16"
  edgeCIDRMaskSize: 26
  
  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

agent:
  args:
    ENABLE_PROXY: "true"
    ENABLE_DNS: "true"

При предоставлении примеров конфигураций скрипты или ручная установка не будут запрошены. Кроме того, некоторые параметры можно настроить только в режиме ручной установки, а пример скриптовой установки не предоставляется.

Могут ли облачные ноды и краевые ноды общаться друг с другом по умолчанию? Можно ли отключить эту функцию?

Да, облачные ноды и краевые ноды могут общаться между собой по умолчанию, но эту функцию нельзя отключить.

Обрабатывает ли узел-коннектор трафик облачно-краевой связи? Есть ли одиночная точка отказа?

Да, в настоящее время нет решения для обеспечения высокой доступности для узла-коннектора, мы продолжаем работать над этим.

Включен ли режим краево-краевой связи по умолчанию?

Нет, FabEdge использует зашифрованный туннель для обеспечения связи между различными доступными сетями. Однако, этот процесс потребляет некоторое количество ресурсов для создания зашифрованных туннелей. Так как не все краевые ноды требуют взаимодействия, FabEdge предлагает использовать Community CRD для управления связью между краевыми нодами, чтобы избежать неоправданного использования ресурсов. Для получения информации о том, как использовать Community, обратитесь к этому разделу.

Возможна ли краево-краевая связь через сети?

Да, однако до версии FabEdge v0.8.0 это работало некорректно. С версии v0.8.0 мы внедрили функцию пробивания дырок (hole-punching), которая позволяет краевым нодам создавать зашифрованные туннели через различные сети. Эта функция отключена по умолчанию, её можно включить следующим образом:

curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s -- \
        --cluster-name пекин \
        --cluster-role хост \
        --cluster-zone пекин \
        --cluster-region пекин \
        --connectors пекин \
        --edges edge1,edge2,edge3 \
        --connector-public-addresses 10.22.45.16 \
        --connector-as-mediator true  \ # включение функции пробивания дырок
        --chart fabedge/fabedge

или:```yaml cluster: name: beijing role: host region: beijing zone: beijing cniType: "flannel"

Enables hole-punching functionality

connectorAsMediator: true connectorPublicAddresses:

  • 10.22.45.16

clusterCIDR:

  • 10.233.64.0/18 serviceClusterIPRange:
  • 10.233.0.0/18

agent: args: ENABLE_PROXY: "true" ENABLE_DNS: "true"


## Нужно ли создавать туннели между узлами, расположенными в одной сети, чтобы они могли общаться друг с другом?

По умолчанию да, но если эти узлы используют один и тот же маршрутизатор, попробуйте использовать функцию автоматической сети, которая работает аналогично режиму host-gw плагина Flannel. Каждый узел края использует UDP мультикаст для поиска своих параллелей в рамках одного маршрутизатора и генерирует маршруты для контейнеров края. Включение этой функции осуществляется следующим образом:

```yaml
cluster:
  name: beijing
  role: host
  region: beijing
  zone: beijing
  cniType: "flannel"

  connectorPublicAddresses:
  - 10.22.46.33
  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

agent:
  args:
    ENABLE_PROXY: "true"
    ENABLE_DNS: "true"

    # Enables automatic network configuration
    AUTO_NETWORKING: "true"
    # Multicast address used by the agent for multicasting; this value also serves as the default and limits the multicast range to the router, usually it does not need to be changed.
    MULTICAST_ADDRESS: "239.40.20.81:18080"
    # Multicast token, each edge node can communicate with other nodes that have the same token
    MULTICAST_TOKEN: "SdY3MTJDHKUkJsHU"
```## Могут ли узлы разных кластеров общаться друг с другом? Я могу использовать SSH для доступа к узлам?

Нет, FabEdge не реализует коммуникацию между узлами, что несколько усложняет ситуацию. С другой стороны, мы не хотим, чтобы меры безопасности между отдельными сетями были нарушены из-за использования FabEdge.

FabEdge не предоставляет возможности SSH.

## Как контейнеры края обращаются к службам?

Это зависит от вашего фреймворка краевой вычислительной системы:

* OpenYurt/SuperEdge. Они будут иметь свои собственные пакеты `coredns` и `kube-proxy`, работающие на узлах края, а FabEdge обеспечивает только сетевую связь.
* KubeEdge. До версии v0.8.0, FabEdge практически ничего не делал для этого, но вы можете самостоятельно развернуть `coredns` и `kube-proxy` на узлах края. С версии v0.8.0, FabEdge интегрировал `coredns` и `kube-proxy` в `fabedge-agent`.

На данный момент интегрированный в `fabedge-agent` `coredns` имеет версию 1.8.0, а `kube-proxy` — 1.22.5. Если вам нужно использовать другие версии `coredns` и `kube-proxy`, вы можете отключить их.

```shell
curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s -- \
    --cluster-name beijing \
    --cluster-role хост \
    --cluster-zone beijing \
    --cluster-region beijing \
    --connectors beijing \
    --edges edge1,edge2,edge3 \
    --connector-public-addresses 10.22.45.16 \
    --enable-proxy false \ # отключить kube-proxy
    --enable-dns false \ # отключить coredns
    --chart fabedge/fabedge

или

cluster:
  name: beijing
  role: хост
  region: beijing
  zone: beijing
  cniType: "flannel"
```  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

agent:
  args:
    ENABLE_PROXY: "false"
    ENABLE_DNS: "false"

## Область моего кластера не является cluster.local, что мне делать?

Если ваш кластер использует KubeEdge, вам потребуется указать домен вашего кластера при установке FabEdge:

```yaml
cluster:
  name: beijing
  role: хост
  region: beijing
  zone: beijing
  cniType: "flannel"

  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

agent:
  args:
    ENABLE_PROXY: "true"
    ENABLE_DNS: "true"
    # Настройте домен кластера
    DNS_CLUSTER_DOMAIN: "ваш.домен"

Я не хочу использовать метку node-role.kubernetes.io/edge для маркировки узлов края

По умолчанию FabEdge использует метку node-role.kubernetes.io/edge для распознавания узлов края, но вы можете использовать любую метку, которую пожелаете, просто предоставьте её при установке FabEdge:

cluster:
  name: beijing
  role: хост
  region: beijing
  zone: beijing
  cniType: "flannel"

  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

  # Настройте метки, используемые для распознавания узлов края. Формат ключ=значение, значение может быть пустым
  edgeLabels:
    - edge-node=
    # Здесь указано включенное значение метки, иногда вы можете захотеть запускать fabedge-agent только на некоторых узлах края,
    # вы можете присвоить метку fabedge-enable=true этим узлам.
    - fabedge-enable=true
  # Вы также можете использовать различные метки для маркировки узлов соединителя
  connectorLabels:
    - connector-node=
```agent:
  args:
    ENABLE_PROXY: "false"
    ENABLE_DNS: "false"

Не изменяйте эти параметры после установки FabEdge, иначе FabEdge может работать некорректно.## Я не могу использовать порты 500 и 4500 как публичные порты для коннектора, что мне делать?

Не беспокойтесь, начиная с версии FabEdge v0.8.0, вы можете настроить публичный порт коннектора. Это стоит отметить, так как это не меняет порты прослушивания коннектора strongswan, а лишь изменяет порт, который использует strongswan узлов для установки туннелей. Кроме того, нет необходимости отображать публичный сетевой порт для 500. Когда туннель создается с использованием непубличного порта 500, используется только порт 4500, поэтому требуется отобразить только порт 4500 коннектора. Конфигурация следующая:

curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s -- \
	--cluster-name beijing  \
	--cluster-role host \
	--cluster-zone beijing  \
	--cluster-region beijing \
	--connectors beijing \
	--edges edge1,edge2 \
	--connector-public-addresses 10.40.20.181 \
	--connector-public-port 45000 \ 
	--chart fabedge/fabedge

или

cluster:
  name: beijing
  role: host
  region: beijing
  zone: beijing
  cniType: "flannel" 
  
  # Настройка публичного порта коннектора
  connectorPublicPort: 45000
  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

agent:
  args:
    ENABLE_PROXY: "true" 
    ENABLE_DNS: "true"

Стоит также отметить, что использование этой функции может повлиять на производительность связи, подробнее см. NAT Traversal.## Почему в односвязном сценарии запущены fabdns и service-hub, можно ли их удалить?

Если вы установите FabEdge с помощью скрипта, они будут установлены автоматически. Если у вас всего один кластер, лучше отключить их.

curl https://fabedge.github.io/helm-chart/scripts/quickstart.sh | bash -s -- \
	--cluster-name beijing  \
	--cluster-role host \
	--cluster-zone beijing  \
	--cluster-region beijing \
	--connectors beijing \
	--edges edge1,edge2 \
	--connector-public-addresses 10.40.20.181 \
	--enable-fabdns false \
	--chart fabedge/fabedge

или

cluster:
  name: beijing
  role: host
  region: beijing
  zone: beijing
  cniType: "flannel" 
  
  connectorPublicAddresses:
  - 10.22.45.16

  clusterCIDR:
  - 10.233.64.0/18
  serviceClusterIPRange:
  - 10.233.0.0/18

агент: аргументы: ENABLE_PROXY: "true" ENABLE_DNS: "true"

fabDNS:

отключите fabdns и сервис-хуб

создать: false


## Можно ли использовать одинаковые сетевые адреса для каждого кластера в многокластерной сценарии?

Нет, не только сетевые адреса контейнерной сети, но также сетевые адреса хоста должны быть уникальными. Даже если у вас всего один кластер, убедитесь, что сетевые адреса не будут совпадать.


## Я хочу настроить strongswan, как мне это сделать?

Извините, в настоящее время FabEdge не предоставляет способа для этого. Вы можете создать свой образ strongswan и настроить его внутри образа.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/fabedge-fabedge.git
git@api.gitlife.ru:oschina-mirror/fabedge-fabedge.git
oschina-mirror
fabedge-fabedge
fabedge-fabedge
main