Compartilhar via


Preparar o Linux para volumes de borda usando um cluster de nó único ou de dois nós

Este artigo descreve como preparar o Linux usando um cluster de nó único ou de dois nós, e assume que você cumpriu os pré-requisitos.

Preparar o Linux com o AKS habilitado pelo Azure Arc

Esta seção descreve como preparar o Linux com o AKS habilitado pelo Azure Arc se você operar um cluster de nó único ou de dois nós.

  1. Instale a OSM (Open Service Mesh) usando o seguinte comando:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    

Preparar o Linux com o AKS Edge Essentials

Esta seção descreve como preparar o Linux com AKS Edge Essentials se você operar um cluster de nó único ou de dois nós.

  1. Para que o Edge Essentials dê suporte às Operações do Azure IoT e ao Armazenamento de contêineres do Azure habilitado pelo Azure Arc, os hosts do Kubernetes devem ser modificados para dar suporte a mais memória. Você também pode aumentar as alocações de vCPU e disco neste momento se prever a necessidade de recursos adicionais para usos do Kubernetes.

    Comece seguindo o guia de instruções aqui. O início rápido usa a configuração padrão e deve ser evitado.

    Seguindo a Etapa 1: parâmetros de configuração de computador único, você tem um arquivo em seu diretório de trabalho chamado aksedge-config.json. Abra este arquivo no Bloco de Notas ou em outro editor de texto:

    "SchemaVersion": "1.11",
    "Version": "1.0",
    "DeploymentType": "SingleMachineCluster",
    "Init": {
        "ServiceIPRangeSize": 0
    },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 4096,
            "DataSizeInGB": 10,
        }
    }
    ]
    

    Aumente MemoryInMB para pelo menos 16384 e DataSizeInGB para 40G. Definiria ServiceIPRangeSize para 15. Se você pretende executar muitos PODs, também pode aumentar o CpuCount. Por exemplo:

    "Init": {
        "ServiceIPRangeSize": 15
       },
    "Machines": [
    {
        "LinuxNode": {
            "CpuCount": 4,
            "MemoryInMB": 16384,
            "DataSizeInGB": 40,
        }
    }
    ]
    

    Continue com as etapas restantes começando com criar um cluster de computador único. Em seguida, conecte seu cluster do AKS Edge Essentials ao Arc.

  2. Verifique e instale o armazenamento do Provisionador de Caminho Local se ele ainda não estiver instalado. Verifique se a classe de armazenamento de caminho local já está disponível em seu nó executando o seguinte cmdlet:

    kubectl get StorageClass
    

    Se a classe de armazenamento de caminho local não estiver disponível, execute o seguinte comando:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

    Observação

    As imagens de Provisionador de Caminho Local e Busybox não são mantidas pela Microsoft e são extraídas do repositório Rancher Labs. O Provisionador de Caminho Local e o BusyBox só estão disponíveis como uma imagem de contêiner do Linux.

    Se tudo for configurado corretamente, você deverá vera saída a seguir:

    NAME                   PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    local-path (default)   rancher.io/local-path   Delete          WaitForFirstConsumer   false                  21h
    

    Se você tiver vários discos e quiser redirecionar o caminho, use:

    kubectl edit configmap -n kube-system local-path-config
    
  3. Execute o seguinte comando para determinar se você definiu fs.inotify.max_user_instances como 1024:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "sysctl fs.inotify.max_user_instances
    

    Depois de executar esse comando, se a saída for menor que 1024, execute o seguinte comando para aumentar o número máximo de arquivos:

    Invoke-AksEdgeNodeCommand -NodeType "Linux" -Command "echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
    
  4. Instale a OSM (Open Service Mesh) usando o seguinte comando:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    

Preparar o Linux com o Ubuntu

Esta seção descreve como preparar o Linux com Ubuntu se você operar um cluster de nó único ou de dois nós.

  1. Instale a OSM (Open Service Mesh) usando o seguinte comando:

    az k8s-extension create --resource-group "YOUR_RESOURCE_GROUP_NAME" --cluster-name "YOUR_CLUSTER_NAME" --cluster-type connectedClusters --extension-type Microsoft.openservicemesh --scope cluster --name osm \
    --config "osm.osm.featureFlags.enableWASMStats=false" \
    --config "osm.osm.enablePermissiveTrafficPolicy=false" \
    --config "osm.osm.configResyncInterval=10s" \
    --config "osm.osm.osmController.resource.requests.cpu=100m" \
    --config "osm.osm.osmBootstrap.resource.requests.cpu=100m" \
    --config "osm.osm.injector.resource.requests.cpu=100m"
    
  2. Execute o seguinte comando para determinar se você definiu fs.inotify.max_user_instances como 1024:

    sysctl fs.inotify.max_user_instances
    

    Depois de executar esse comando, se ele gerar menos de 1024, execute o seguinte comando para aumentar o número máximo de arquivos e recarregar as configurações de sysctl:

    echo 'fs.inotify.max_user_instances = 1024' | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    

Preparar o Linux com outras plataformas

As opções de plataforma disponíveis são ambientes semelhantes à produção validados pela Microsoft. Essas plataformas não são necessariamente os únicos ambientes nos quais o Armazenamento de Contêineres do Azure habilitado pelo Azure Arc pode ser executado. O Armazenamento de contêineres do Azure habilitado pelo Azure Arc pode ser executado em qualquer cluster Kubernetes habilitado para Arc que atenda aos Requisitos do sistema Kubernetes habilitado para Azure Arc. Se você estiver executando em um ambiente não listado, aqui estão algumas sugestões para aumentar a probabilidade de uma instalação bem-sucedida:

  1. Execute os comandos a seguir para aumentar os limites de inspeção e instância do usuário:

    echo fs.inotify.max_user_instances=8192 | sudo tee -a /etc/sysctl.conf
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  2. Execute os seguintes comandos para aumentar o limite do descritor de arquivo para melhorar o desempenho:

    echo fs.file-max = 100000 | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  3. Execute o comando a seguir para instalar o provisionador de caminho local:

    kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/storage/local-path-provisioner/local-path-storage.yaml
    

Próximas etapas

Instalar o Armazenamento de Contêineres do Azure habilitado pelo Azure Arc