LoadBalancer, использующий Metallb на голом металлическом RPI-кластере, не работает после установки - PullRequest
0 голосов
/ 22 марта 2020

Я возился со своим кластером RPI, который я настроил с помощью Kubeadm, и я хочу, чтобы LoadBalancers мог работать в кластере. IP-адреса для узлов: stati c и установлен диапазон 192.168.1.100-192.168.1.103 для главного и рабочего узлов.

Я установил Metallb с использованием документов официального сайта.

Это мой configmap для Metallb:

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: metallb-system
  name: config
data:
  config: |
    address-pools:
    - name: default
      protocol: layer2
      addresses:
      - 192.168.2.240-192.168.2.250

Из того, что я понял, вы должны дать балансировщикам нагрузки диапазон вне диапазона DHCP маршрутизатора? Но даже изменение диапазона адресов на что-то вроде 192.168.1.200-192.168.1.240 не меняет результатов, которые я получаю.

Настройки DHCP для моего маршрутизатора.

DHCP settings

Информация об узле K8s

NAME            STATUS   ROLES    AGE     VERSION   INTERNAL-IP     EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION   CONTAINER-RUNTIME
k8s-master      Ready    master   5d15h   v1.17.4   192.168.1.100   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7l+     docker://19.3.8
k8s-worker-01   Ready    worker   5d15h   v1.17.4   192.168.1.101   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8
k8s-worker-02   Ready    worker   4d14h   v1.17.4   192.168.1.102   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8
k8s-worker-03   Ready    worker   4d14h   v1.17.4   192.168.1.103   <none>        Raspbian GNU/Linux 10 (buster)   4.19.97-v7+      docker://19.3.8

Затем я пытаюсь настроить небольшое nginx развертывание

kubectl run nginx --image=nginx 
kubectl expose deploy nginx --port=80 --type=LoadBalancer

Запуск kubectl get svc возвращает :

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP      10.96.0.1        <none>        443/TCP          5d15h
nginx        LoadBalancer   10.96.53.50      <pending>     80:31253/TCP     4s

Вот где я застрял. Кажется, я не могу заставить LoadBalancer работать с этой настройкой, и я не совсем уверен, где я ошибаюсь.

Выход Metallb

NAME                              READY   STATUS    RESTARTS   AGE
pod/controller-65895b47d4-q25b8   1/1     Running   0          68m
pod/speaker-bnkpq                 1/1     Running   0          68m
pod/speaker-d56zg                 1/1     Running   0          68m
pod/speaker-h9vpr                 1/1     Running   0          68m
pod/speaker-qsl6f                 1/1     Running   0          68m

NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
daemonset.apps/speaker   4         4         4       4            4           beta.kubernetes.io/os=linux   68m

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/controller   1/1     1            1           68m

NAME                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/controller-65895b47d4   1         1         1       68m
...