homelab-k3s/HELP/METALLIB.md
2024-11-02 01:42:32 +03:00

2.2 KiB
Raw Blame History

Настройка MetalLB для K3s с одним внешним IP-адресом

Шаги по настройке

  1. Проверьте статус Traefik и MetalLB:

    kubectl get svc -n kube-system traefik
    kubectl get pods -n metallb-system
    
  2. Установка MetalLB (если не установлен):

    kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/main/config/manifests/metallb-native.yaml
    
  3. Создайте файл конфигурации metallb-config.yaml с указанием внешнего IP-адреса:

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: my-single-ip-pool
      namespace: metallb-system
    spec:
      addresses:
      - <ваш-внешний-IP-адрес>  # Укажите здесь ваш внешний IP-адрес
    ---
    apiVersion: metallb.io/v1beta1
    kind: L2Advertisement
    metadata:
      name: my-l2-advertisement
      namespace: metallb-system
    spec: {}
    

    Примените конфигурацию:

    kubectl apply -f metallb-config.yaml
    
  4. Создайте сервис типа LoadBalancer: Создайте файл service.yaml со следующим содержимым:

    apiVersion: v1
    kind: Service
    metadata:
      name: external-service
    spec:
      selector:
        app: my-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: LoadBalancer
    

    Примените манифест:

    kubectl apply -f service.yaml
    
  5. Проверьте, что сервис получил внешний IP:

    kubectl get svc external-service
    

Заметки

  • Убедитесь, что ваш сервер позволяет доступ к указанному IP-адресу на соответствующих портах.
  • IP-адрес должен быть статическим и доступным для использования.

Следуя этим шагам, вы настроите MetalLB для работы с указанным внешним IP-адресом в кластере K3s.