Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Abrindo Portas com firewalld

Habilitar o firewalld pode causar sérios problemas de comunicação na rede.

Para o funcionamento adequado da rede, o firewalld deve ser desativado em sistemas que executam RKE2. O firewalld entra em conflito com o Canal, a pilha de rede padrão do RKE2.

O firewalld também deve ser desativado em sistemas que executam Kubernetes 1.19 ou posterior.

Se você habilitar o firewalld em sistemas que executam Kubernetes 1.18 ou anterior, entenda que isso pode causar problemas de rede. Os CNIs no Kubernetes atualizam dinamicamente as regras de iptables e de rede independentemente de quaisquer firewalls externos, como o firewalld. Isso pode causar comportamento inesperado quando o CNI e o firewall externo entram em conflito.

Algumas distribuições do Linux derivadas do RHEL,, incluindo o Oracle Linux, podem ter regras de firewall padrão que bloqueiam a comunicação com o Helm.

Por exemplo, uma imagem do Oracle Linux na AWS possui regras de REJECT que impedem o Helm de se comunicar com o Tiller:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Você pode verificar as regras de firewall padrão com este comando:

sudo iptables --list

Esta seção descreve como usar firewalld para aplicar os regras de porta do firewall para nós em um cluster de servidor Rancher de alta disponibilidade.

Pré-requisitos

Instale a versão v7.x ou posterior do firewalld:

yum install firewalld
systemctl start firewalld
systemctl enable firewalld

Aplicando Regras de Porta do Firewall

Nas instruções de instalação de alta disponibilidade do Rancher, o servidor Rancher é configurado em três nós que possuem todos os três papéis do Kubernetes: etcd, controlplane e worker. Se os nós do seu servidor Rancher tiverem todos os três papéis, execute os seguintes comandos em cada nó:

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2379/tcp
firewall-cmd --permanent --add-port=2380/tcp
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

Se os nós do seu servidor Rancher tiverem papéis separados, use os seguintes comandos com base no papel do nó:

# For etcd nodes, run the following commands:
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2379/tcp
firewall-cmd --permanent --add-port=2380/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp

# For control plane nodes, run the following commands:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=6443/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

# For worker nodes, run the following commands:
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=8472/udp
firewall-cmd --permanent --add-port=9099/tcp
firewall-cmd --permanent --add-port=10250/tcp
firewall-cmd --permanent --add-port=10254/tcp
firewall-cmd --permanent --add-port=30000-32767/tcp
firewall-cmd --permanent --add-port=30000-32767/udp

Após os comandos firewall-cmd terem sido executados em um nó, use o seguinte comando para habilitar as regras do firewall:

firewall-cmd --reload

Resultado: O firewall é atualizado para que o Helm possa se comunicar com os nós do servidor Rancher.