Проблема с сетевым хранилищем openshift 3.11 - PullRequest
0 голосов
/ 13 ноября 2018

Я создал кластер с 3 узлами openshift 3.11, 2 из которых являются вычислительными узлами.Я установил хранилища в этом кластере.Один из вычислительных узлов выглядит нормально с установкой хранилища, однако 2-й вычислительный узел не может достичь 1-го узла.Похоже, что ошибка связана с маршрутизацией.

2-й узел не будет маршрутизировать до 1-го узла, который появляется.

[root@cortado-o1 standard]# oc get pod -n storageos
NAME              READY     STATUS    RESTARTS   AGE
storageos-47qgc   1/1       Running   0          6m
storageos-6bqqp   0/1       Running   3          7m

[root@cortado-o2 ~]# netstat -na | grep 5705
tcp6       0      0 :::5705     

[root@cortado-o3 ~]# netstat -na | grep 5705
tcp        0      0 192.168.0.101:43588     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43548     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43522     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43458     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43628     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43602     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43562     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43502     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43476     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43412     192.168.0.101:5705      TIME_WAIT  
tcp        0      0 192.168.0.101:43430     192.168.0.101:5705      TIME_WAIT  
tcp6       0      0 :::5705                 :::*                    LISTEN   

[root@cortado-o3 ~]# !nc
nc 192.168.0.102 5705
Ncat: No route to host.
[root@cortado-o3 ~]# hostname --ip-address
192.168.0.101

time="2018-11-13T04:24:38Z" level=error msg="failed to join existing cluster" action=create category=etcd endpoint="192.168.0.102,192.168.0.101" error="Get http://192.168.0.102:5705/v1/members: dial tcp 192.168.0.102:5705: connect: no route to host" module=cp
time="2018-11-13T04:24:38Z" level=info msg="not first cluster node, joining first node" action=create address=192.168.0.101 category=etcd host=cortado-o3 module=cp target=192.168.0.101
time="2018-11-13T04:24:38Z" level=error msg="failed to join existing cluster" action=create category=etcd endpoint="192.168.0.102,192.168.0.101" error="503 Service Unavailable" module=cp
time="2018-11-13T04:24:38Z" level=info msg="retrying cluster join in 5 seconds..." action=create category=etcd module=cp

есть предложения?большое спасибо.

1 Ответ

0 голосов
/ 23 ноября 2018

Я могу видеть на вашем выводе netstat, что StorageOS привязан к порту, а не что они могут общаться.На самом деле Ncat показывает, что нет маршрута к хосту, поэтому они не могут подключиться.StorageOS должен иметь возможность обмениваться данными между своими узлами.

В документах StorageOS есть справка о предварительных условиях портов и способах их открытия.https://docs.storageos.com/docs/prerequisites/firewalls

Это зависит от вашей установки OpenShift, если вы используете таблицы ufw, firewalld или direct ip.

Для UFW попробуйте это:

ufw default allow outgoing
ufw allow 5701:5711/tcp
ufw allow 5711/udp

Для FireWalld попробуйте это:

firewall-cmd --permanent  --new-service=storageos
firewall-cmd --permanent  --service=storageos --add-port=5700-5800/tcp
firewall-cmd --add-service=storageos  --zone=public --permanent
firewall-cmd --reload

Дляпрямо iptables:

# Inbound traffic
iptables -I INPUT -i lo -m comment --comment 'Permit loopback traffic' -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -m comment --comment 'Permit established traffic' -j ACCEPT
iptables -A INPUT -p tcp --dport 5701:5711 -m comment --comment 'StorageOS' -j ACCEPT
iptables -A INPUT -p udp --dport 5711 -m comment --comment 'StorageOS' -j ACCEPT

# Outbound traffic
iptables -I OUTPUT -o lo -m comment --comment 'Permit loopback traffic' -j ACCEPT
iptables -I OUTPUT -d 0.0.0.0/0 -m comment --comment 'Permit outbound traffic' -j ACCEPT

Проверьте также страницу устранения неполадок хранилищ для этой конкретной проблемы.https://docs.storageos.com/docs/platforms/openshift/troubleshoot/install#peer-discovery---networking

Кроме того, кластер с числом узлов менее 3 не поддерживается.Вы можете иметь 1 узел для тестирования или 3+.Но наличие 2 узлов делает невозможным обеспечение кворума в распределенной среде, если вы не используете StorageOS, указывающую хранилище kv на внешний etcd.

...