Compartilhar via


Segregar nós de trabalho em sub-redes diferentes com o Red Hat OpenShift no Azure

Este artigo mostra como separar nós de trabalho em sub-redes privadas diferentes como parte de uma implantação do ARO. A separação de nós de trabalho em diferentes sub-redes privadas permite que você atenda a requisitos específicos de controle de acesso para vários serviços e aplicativos implantados no ARO.

Por exemplo, talvez você queira executar controladores de entrada específicos em nós de trabalho dedicados em uma sub-rede específica, enquanto o restante dos nós do Kubernetes para cargas de trabalho (infra e outros trabalhadores) está dentro de uma sub-rede diferente, conforme mostrado abaixo:

Captura de tela de um exemplo de configuração de sub-rede.

Observação

Como parte do ARO, nós mestre e de trabalho não podem ser implantados na mesma sub-rede privada.

Para separar nós de trabalho em sub-redes diferentes, duas etapas principais precisam ser executadas:

  1. Implante um cluster ARO.

  2. Crie as sub-redes e conjuntos de computadores apropriados associados a essas sub-redes.

Implantar um cluster ARO

Consulte Criar um cluster do Red Hat OpenShift 4 no Azure para obter instruções sobre como executar esta etapa.

Criar as sub-redes e os conjuntos de computadores associados

Depois de implantar o cluster ARO, você precisará criar sub-redes extras como parte da mesma rede virtual geral e criar novos conjuntos de computadores para essas sub-redes.

Etapa 1: Criar as sub-redes

Crie as sub-redes como parte da rede virtual atual na qual o ARO é implantado. Certifique-se de que todas as sub-redes sejam atualizadas para o Microsoft.ContainerRegistry para Pontos de Extremidade de Serviço.

Captura de tela da janela Sub-redes com pontos de extremidade de serviço realçados.

Etapa 2: Entrar no jumphost

Observação

Essa etapa será opcional se você tiver um método alternativo para fazer logon no cluster do ARO.

Use o seguinte comando para fazer logon no jumphost:

oc login $apiServer -u kubeadmin -p <kubeadmin password>

Verifique o número de nós e conjuntos de computadores usando os comandos oc get nodes e oc get machineSets -n openshift-machine-api, conforme mostrado nos exemplos a seguir:

$ oc get nodes
NAME                                          STATUS   ROLES    AGE   VERSION
simon-aro-st5rm-master-0                      Ready    master   66m   v1.19.0+e405995
simon-aro-st5rm-master-1                      Ready    master   67m   v1.19.0+e405995
simon-aro-st5rm-master-2                      Ready    master   67m   v1.19.0+e405995
simon-aro-st5rm-worker-useast1-h6kzn   Ready    worker   59m   v1.19.0+e405995
simon-aro-st5rm-worker-useast2-48zsm   Ready    worker   59m   v1.19.0+e405995
simon-aro-st5rm-worker-useast3-rvzpn   Ready    worker   59m   v1.19.0+e405995
# oc get machineSets --all-namespaces
NAMESPACE               NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
openshift-machine-api   simon-aro-st5rm-worker-useast1   1         1         1       1           69m
openshift-machine-api   simon-aro-st5rm-worker-useast2   1         1         1       1           69m
openshift-machine-api   simon-aro-st5rm-worker-useast3   1         1         1       1           69m

Etapa 3: Recuperar os conjuntos de computadores no openshift-machine-api project/namespace

A recuperação dos conjuntos de computadores permite que você obtenha todos os parâmetros relevantes para o modelo machineSet usado na etapa a seguir.

oc describe machineSet simon-aro-st5rm-worker-useast1 > aro-worker-az1.yaml

Etapa 4: Criar um novo arquivo YAML do machineSet e aplicá-lo ao cluster

Use o modelo abaixo para o arquivo YAML do machineSet. Altere os parâmetros mostrados com Xs de acordo com os valores recuperados na seção anterior. Por exemplo, machine.openshift.io/cluster-api-cluster: XXX-XXX-XXX pode ser machine.openshift.io/cluster-api-cluster: machine-aro-st3mr

==============MachineSet Template====================
apiVersion: machine.openshift.io/v1beta1
kind: MachineSet
metadata:
  labels:
    machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
    machine.openshift.io/cluster-api-machine-role: worker
    machine.openshift.io/cluster-api-machine-type: worker
  name: XXX-XXX-XXX-XXX-XXX
  namespace: openshift-machine-api
spec:
  replicas: 1
  selector:
    matchLabels:
      machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
      machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
  template:
    metadata:
      creationTimestamp: null
      labels:
        machine.openshift.io/cluster-api-cluster: <INFRASTRUCTURE_ID>
        machine.openshift.io/cluster-api-machine-role: worker
        machine.openshift.io/cluster-api-machine-type: worker
        machine.openshift.io/cluster-api-machineset: <INFRASTRUCTURE_ID>-infra-<REGION><ZONE>
    spec:
      metadata:
        creationTimestamp: null
        labels:
          node-role.kubernetes.io/<role>: ""            #Example: worker,infra
      providerSpec:
        value:
          apiVersion: azureproviderconfig.openshift.io/v1beta1
          credentialsSecret:
            name: azure-cloud-credentials
            namespace: openshift-machine-api
          image:
            offer: aro4
            publisher: azureopenshift
            resourceID: ""
            sku: <SKU>
            version: <VERSION>
          kind: AzureMachineProviderSpec
          location: <REGION>
          metadata:
            creationTimestamp: null
          natRule: null
          networkResourceGroup: <NETWORK_RESOURCE_GROUP>
          osDisk:
            diskSizeGB: 128
            managedDisk:
              storageAccountType: Premium_LRS
            osType: Linux
          publicIP: false
          publicLoadBalancer: <LOADBALANCER_NAME>
          resourceGroup: <CLUSTER_RESOURCE_GROUP>
          subnet: <SUBNET_NAME> 
          userDataSecret:
            name: worker-user-data
          vmSize: Standard_D4s_v3
          vnet: <VNET_NAME>
          zone: <ZONE>

Etapa 5: Aplicar o conjunto de computadores

Aplique o conjunto de computadores criado na seção anterior usando o comando oc apply -f <filename.yaml>, como no exemplo a seguir:

[root@jumphost-new ARO-cluster-Private]# oc apply -f aro-new-worker-az1.yaml
machineset.machine.openshift.io/simon-aro-qpsl5-worker-useast4 created

Etapa 6: Verificar o conjunto de computadores e os nós

Depois de aplicar o arquivo YAML, você pode verificar a criação do conjunto de computadores e nós usando os comandos oc get machineSets e oc get nodes, conforme mostrado nos exemplos a seguir:

[root@jumphost-new ARO-cluster-Private]# oc get machineSet

NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
simon-aro-st5rm-worker-useast1   1         1         1       1           142m
simon-aro-st5rm-worker-useast2   1         1         1       1           142m
simon-aro-st5rm-worker-useast3   1         1         1       1           142m
simon-aro-st5rm-worker-useast4   1         1                             46s

Após mais alguns minutos, o novo conjunto de computadores e nós serão exibidos:

[root@jumphost-new ARO-cluster-Private]# oc get machineSet

NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
simon-aro-st5rm-worker-useast1   1         1         1       1           148m
simon-aro-st5rm-worker-useast2   1         1         1       1           148m
simon-aro-st5rm-worker-useast3   1         1         1       1           148m
simon-aro-st5rm-worker-useast4   1         1         1       1           6m11s

[root@jumphost-new ARO-cluster-Private]# oc get nodes

NAME                                          STATUS   ROLES    AGE    VERSION
simon-aro-st5rm-master-0                      Ready    master   147m   v1.19.0+e405995
simon-aro-st5rm-master-1                      Ready    master   147m   v1.19.0+e405995
simon-aro-st5rm-master-2                      Ready    master   147m   v1.19.0+e405995
simon-aro-st5rm-worker-useast1-h6kzn   Ready    worker   139m   v1.19.0+e405995
simon-aro-st5rm-worker-useast2-48zsm   Ready    worker   139m   v1.19.0+e405995
simon-aro-st5rm-worker-useast3-rvzpn   Ready    worker   139m   v1.19.0+e405995
simon-aro-st5rm-worker-useast4-qrsgx   Ready    worker   104s   v1.19.0+e405995