O plugin Terway em um cluster híbrido possui dois componentes: um executado no data center local e outro nos nós de computação na nuvem. Este tópico explica como implantar e configurar o plugin Terway nos nós da nuvem de um cluster registrado do ACK One.
Pré-requisitos
Antes de começar, verifique se você:
Configurou os plugins de rede de contêineres tanto para os nós da nuvem quanto para os locais. Para mais detalhes, consulte Configurar plugins de rede de contêineres para nós da nuvem e locais.
-
Para o Cenário 2: Rede BGP e o Cenário 3: Rede do host, configurou os seguintes parâmetros de rede do Terway ao criar o cluster registrado. Para mais detalhes, consulte Criar um cluster registrado do ACK One.
Selecionou ou desmarcou a caixa de seleção IPvlan conforme necessário.
Configurou o vSwitch do pod.
Configurou o bloco CIDR do Service.
Escolha um cenário
As etapas de configuração dependem da definição da sua rede de contêineres local. Identifique o cenário correspondente ao seu ambiente.
|
Cenário |
Tipo de rede local |
Requisito para nós da nuvem |
|
Flannel VXLAN, Calico IPIP ou Cilium VXLAN |
Nenhuma configuração adicional — os nós da nuvem podem usar o mesmo modo |
|
|
Border Gateway Protocol (BGP) |
Uso obrigatório do Terway. Siga as etapas de instalação abaixo. |
|
|
Rede do host |
Uso obrigatório do Terway. Siga as etapas de instalação abaixo. |
Cenário 1: Rede Overlay
Se a sua rede de contêineres local utilizar uma rede overlay, os nós de computação na nuvem poderão adotar o mesmo modo. Certifique-se de que esses nós consigam baixar as imagens de contêiner exigidas pelo DaemonSet do plugin de rede.
Os modos comuns de rede overlay incluem:
Flannel VXLAN
Calico IPIP
Cilium VXLAN
Este cenário não requer instalação adicional.
Cenário 2: Rede BGP
Caso sua rede de contêineres local utilize BGP, os nós de computação na nuvem devem usar a rede Terway. Para habilitar a comunicação entre contêineres na nuvem e locais, consulte Configurar BGP em um Virtual Border Router (VBR).
Os nós de computação na nuvem adicionados pelo dimensionamento horizontal de um pool de nós recebem o rótulo alibabacloud.com/external=true. Por padrão, o Terway é agendado apenas para nós com esse rótulo.
Para evitar conflitos de agendamento, garanta que:
O DaemonSet CNI local (por exemplo, Calico no modo refletor de rota BGP) não seja agendado para os nós da nuvem.
O DaemonSet do Terway não seja agendado para os nós locais.
Impedir a execução do CNI local nos nós da nuvem
Use nodeAffinity para evitar que o DaemonSet do Calico seja agendado em nós com o rótulo alibabacloud.com/external=true. Aplique este método a qualquer carga de trabalho que deva permanecer no ambiente local.
A aplicação de patch no DaemonSet do Calico causa sua reinicialização em todos os nós afetados. Se a afinidade for configurada incorretamente, a rede dos pods nos nós locais poderá ser interrompida. Verifique o conteúdo do patch antes de aplicá-lo.
Execute o comando a seguir para atualizar o DaemonSet do Calico:
cat <<EOF > calico-ds.patch
spec:
template:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: alibabacloud.com/external
operator: NotIn
values:
- "true"
EOF
kubectl -n kube-system patch ds calico-node -p "$(cat calico-ds.patch)"
Após aplicar esse patch, o DaemonSet do Calico (calico-node no namespace kube-system) será executado apenas nos nós locais. O DaemonSet do Terway continuará rodando exclusivamente nos nós da nuvem.
Depois de confirmar que as restrições de agendamento estão corretas, prossiga para instalar e configurar o plugin Terway.
Cenário 3: Rede do host
Se a sua rede de contêineres local utilizar a rede do host, assegure-se de que o DaemonSet do Terway não seja agendado para os nós locais. Por padrão, o Terway é agendado apenas para nós da nuvem com o rótulo alibabacloud.com/external=true, portanto, nenhuma configuração adicional de agendamento é necessária.
Prossiga para instalar e configurar o plugin Terway.
Instale e configure o plugin Terway
Siga estas etapas se o seu ambiente corresponder ao Cenário 2 ou ao Cenário 3. Cada passo oferece dois métodos: o Console de Gerenciamento de Serviço de Contêiner ou a CLI onectl. Utilize aquele que melhor se adequar ao seu fluxo de trabalho.
Dica: A CLI onectl é recomendada para automação e implantações via script. O console é mais adequado para configurações únicas ou exploratórias.
Etapa 1: Configurar permissões do RAM
O plugin Terway necessita de permissões do Resource Access Management (RAM) para gerenciar interfaces de rede elásticas (ENIs) nas instâncias ECS.
Configure in the console
-
Crie um usuário RAM e anexe a seguinte política personalizada. Para mais detalhes, consulte Usar o RAM para conceder permissões de acesso a clusters e recursos da nuvem. <details> <summary>Visualizar a política personalizada</summary>
{ "Version": "1", "Statement": [ { "Action": [ "ecs:CreateNetworkInterface", "ecs:DescribeNetworkInterfaces", "ecs:AttachNetworkInterface", "ecs:DetachNetworkInterface", "ecs:DeleteNetworkInterface", "ecs:DescribeInstanceAttribute", "ecs:AssignPrivateIpAddresses", "ecs:UnassignPrivateIpAddresses", "ecs:DescribeInstances", "ecs:ModifyNetworkInterfaceAttribute" ], "Resource": [ "*" ], "Effect": "Allow" }, { "Action": [ "vpc:DescribeVSwitches" ], "Resource": [ "*" ], "Effect": "Allow" } ] }</details>
Faça login no Console de Gerenciamento de Serviço de Contêiner. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, escolha Configurations > Secrets.
-
Na página Secrets, clique em Create from YAML e insira o conteúdo a seguir para criar um secret chamado
alibaba-addon-secret.O plugin Terway utiliza o AccessKey ID e o AccessKey secret contidos neste secret para acessar os serviços da nuvem. Pule esta etapa se o secret já existir.
apiVersion: v1 kind: Secret metadata: name: alibaba-addon-secret namespace: kube-system type: Opaque stringData: access-key-id: <AccessKey ID of the RAM user> access-key-secret: <AccessKey secret of the RAM user>
Configure using onectl
Instale o onectl na sua máquina local. Para mais detalhes, consulte Usar o onectl para gerenciar clusters registrados.
-
Execute o comando a seguir para conceder permissões RAM ao plugin Terway:
onectl ram-user grant --addon terway-eniipSaída esperada:
Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
Etapa 2: Instalar o plugin Terway
Install from the console
Faça login no Console de Gerenciamento de Serviço de Contêiner. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em Add-ons.
-
Na página Add-ons, clique na aba Network. Na seção terway-eniip, clique em Install.
Install using onectl
Execute o comando a seguir para instalar o plugin Terway:
onectl addon install terway-eniip
Saída esperada:
Addon terway-eniip, version **** installed.
Próximos passos
Para configurar a conectividade de rede entre contêineres na nuvem e locais usando BGP, consulte Configurar BGP em um VBR.