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

OSCHINA-MIRROR/kubesphere-openelb

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
deploy_baremetal.md 6.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 15:10 f2d1f5c

Развёртывание Porter в Bare Metal Kubernetes кластере

Английский | 中文

Предварительные требования

  1. Кластер Kubernetes.
  2. Ваш маршрутизатор должен поддерживать протокол BGP.
  3. Если вы хотите включить балансировку нагрузки на маршрутизаторе, ваш маршрутизатор также должен поддерживать Equal-cost multi-path routing (ECMP). В том числе следующие функции:
    • Поддержка многопутевой маршрутизации.
    • Поддержка BGP Additional-Paths.
  4. Если есть маршрутизатор, который не поддерживает протокол BGP (или не разрешено включать протокол BGP), вам необходимо вручную записать маршрут nexthop EIP на этом маршрутизаторе (или использовать другие протоколы маршрутизации).

Установка Porter

  1. Установите кластер Kubernetes.
  2. Получите файл YAML Porter.
    wget https://github.com/kubesphere/porter/releases/download/v0.1.1/porter.yaml
  3. Вам необходимо изменить ConfigMap с именем bgp-cfg в YAML в соответствии с BGP Configuration.
  4. Установите Porter на кластере k8s.
    kubectl apply -f porter.yaml

Конфигурация маршрутизатора

Различные маршрутизаторы имеют разные конфигурации. Вот конфигурация Cisco Nexus 9000 Series. Для получения дополнительной информации о конфигурации маршрутизатора см. Конфигурацию маршрутизатора.

Cisco Nexus 9000 Series

  1. Войдите в интерфейс конфигурации N9K как администратор. Измените следующую конфигурацию в соответствии с реальной ситуацией.
     feature bgp
    
     router bgp 65001
     router-id 10.10.12.1
     address-family ipv4 unicast 
         maximum-paths 8
         additional-paths send
         additional-paths receive
     neighbor 10.10.12.5
         remote-as 65000
         timers 10 30
         address-family ipv4 unicast
         route-map allow in
         route-map allow out
         soft-reconfiguration inbound always
         capability additional-paths receive
2. После завершения настройки проверьте статус соседа как «Established».

   ```bash
   myswitch(config)# show bgp ipv4 unicast neighbors

       BGP neighbor is 10.10.12.5, remote AS 65000, ebgp link, Peer index 3
       BGP version 4, remote router ID 10.10.12.5
       BGP state = Established, up for 00:00:02
       Peer is directly attached, interface Ethernet1/1
       Last read 00:00:01, hold time = 30, keepalive interval is 10 seconds
       Last written 0.996717, keepalive timer expiry due 00:00:09
       Received 5 messages, 0 notifications, 0 bytes in queue
       Sent 13 messages, 0 notifications, 0(0) bytes in queue
       Connections established 1, dropped 0
       Last reset by us 00:01:29, due to session closed
       Last reset by peer never, due to No error

       Neighbor capabilities:
       Dynamic capability: advertised (mp, refresh, gr)
       Dynamic capability (old): advertised
       Route refresh capability (new): advertised received
       Route refresh capability (old): advertised
       4-Byte AS capability: advertised received
       Address family IPv4 Unicast: advertised received
       Graceful Restart capability: advertised

Развёртывание

  1. Добавьте пул EIP.

    kubectl apply -f - <<EOF
    apiVersion: network.kubesphere.io/v1alpha1
    kind: Eip
    metadata:
        name: eip-sample-pool
    spec:
        address: 10.11.11.0/24
    EOF

    Пример: EIP

Примечание: адрес EIP теперь поддерживает 3 типа:

  • IP-адрес
    192.168.0.1
  • Сегмент IP-сети 192.168.0.0/24
  • Диапазон IP-адресов
    192.168.0.1-192.168.0.10
  1. Разверните сервис в kubernetes. Сервис должен добавить следующие аннотации, и тип также должен быть указан как LoadBalancer:

    kind: Service
    apiVersion: v1
    metadata:
       name:  mylbapp
            lb.kubesphere.io/v1alpha1: porter
    спецификация:
        селектор:
            приложение: mylbapp
        тип: LoadBalancer 
        порты:
        - имя: http
          порт: 8088
          targetPort: 80
    ```
    Пример: [Service](https://github.com/kubesphere/porter/blob/master/test/samples/test.yaml)  

    **Примечание: Если вы хотите назначить IP-адрес сервису, есть два способа:**
    - Добавить `spec.loadBalancerIP: <ip>` . (рекомендуется)
    - Добавить `eip.porter.kubesphere.io/v1alpha1: <ip>` в `аннотации`.

    


3. На маршрутизаторе мы видим, что была добавлена новая сеть (внешний IP-адрес) с тремя путями. Каждый путь связан с одним из узлов:

    ```
    # show bgp all 
 
    10.11.11.11/32, ubest/mbest: 3/0
    *через 10.10.12.2, [20/0], 00:03:38, bgp-65001, внешний, тег 65000
    *через 10.10.12.3, [20/0], 00:03:38, bgp-65001, внешний, тег 65000
    *через 10.10.12.4, [20/0], 00:03:38, bgp-65001, внешний, тег 65000

    ```
4. Используйте `kubectl get eip`, чтобы отслеживать текущее использование EIP.

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

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

1
https://api.gitlife.ru/oschina-mirror/kubesphere-openelb.git
git@api.gitlife.ru:oschina-mirror/kubesphere-openelb.git
oschina-mirror
kubesphere-openelb
kubesphere-openelb
master