Atualize um cluster Kubernetes no Azure Stack Hub

O motor AKS permite-lhe atualizar o cluster que foi originalmente implantado utilizando a ferramenta. Pode manter os clusters utilizando o motor AKS. As suas tarefas de manutenção são semelhantes a qualquer sistema IaaS. Deve estar ciente da disponibilidade de novas atualizações e utilizar o motor AKS para as aplicar.

Atualizar um cluster

O comando de atualização atualiza a versão Kubernetes e a imagem base do SO. Sempre que executa o comando de upgrade, para cada nó do cluster, o motor AKS cria um novo VM utilizando a Imagem Base AKS associada à versão do motor aks utilizado. Pode usar o aks-engine upgrade comando para manter a moeda de todos os nós de mestre e agente no seu aglomerado.

A Microsoft não gere o seu cluster. Mas a Microsoft fornece a ferramenta e a imagem VM que pode usar para gerir o seu cluster.

Para uma cobertura de upgrades de cluster implantado:

  • Utilizar o Kubernetes
  • Fornecedor Azure Stack Hub Kubernetes
  • SO de base

Ao atualizar um cluster de produção, considere:

  • Está a utilizar a especificação de cluster correta apimodel.json () e o grupo de recursos para o cluster alvo?
  • Está a utilizar uma máquina de confiança para a máquina cliente funcionar com o motor AKS e a partir do qual está a realizar operações de atualização?
  • Certifique-se de que tem um cluster de reserva e que está operacional.
  • Se possível, executar o comando a partir de um VM dentro do ambiente Azure Stack Hub para diminuir o lúpulo de rede e possíveis falhas de conectividade.
  • Certifique-se de que a sua subscrição tem espaço suficiente para todo o processo. O processo aloca novos VM durante o processo.
  • Não estão previstas atualizações do sistema ou tarefas programadas.
  • Crie uma atualização encenada num cluster que esteja configurado exatamente como o cluster de produção e teste a atualização lá antes de o fazer no seu cluster de produção

Passos para atualizar para uma versão mais recente de Kubernetes

Nota

A imagem base AKS também será atualizada se estiver a utilizar uma versão mais recente do motor aks e a imagem estiver disponível no mercado.

As seguintes instruções utilizam os passos mínimos para efetuar a atualização. Se quiser mais detalhes, consulte o artigo Upgrade de Agrupamentos kubernetes.

  1. Primeiro, tem de determinar as versões que pode ser alvo para a atualização. Esta versão depende da versão que tem atualmente e, em seguida, utilizar esse valor de versão para realizar a atualização. As versões Kubernetes suportadas pelo seu Motor AKS podem ser listadas executando o seguinte comando:

    aks-engine get-versions --azure-env AzureStackCloud
    

    Para um mapeamento completo das versões AKS, AKS Base Image e Kubernetes consulte versões suportadas do motor AKS.

  2. Recolha a informação necessária para executar o upgrade comando. A atualização utiliza os seguintes parâmetros:

    Parâmetro Exemplo Descrição
    azure-env AzureStackCloud Para indicar ao motor AKS que a sua plataforma-alvo é a utilização do Azure Stack Hub AzureStackCloud .
    localização local O nome da região para o seu Azure Stack Hub. Para a ASDK, a região está preparada local para.
    resource-group kube-rg Insira o nome de um novo grupo de recursos ou selecione um grupo de recursos existente. O nome do recurso tem de ser alfanumérico e minúsculo.
    id de subscrição xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Insira o seu ID de assinatura. Para mais informações, consulte Subscreva uma oferta
    api-modelo ./kubernetes-azurestack.json Caminho para o ficheiro de configuração do cluster, ou modelo API.
    id cliente xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Insira o chefe de serviço GUID. O ID do Cliente identificou-se como o ID da aplicação quando o administrador do Azure Stack Hub criou o principal de serviço.
    cliente-segredo xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Insira o segredo principal do serviço. Este é o segredo do cliente que criou ao criar o seu serviço.
    sistema de identidade adfs Opcional. Especifique a sua solução de gestão de identidade se estiver a utilizar serviços federados de Diretório Ativo (AD FS).
  3. Com os seus valores no lugar, executar o seguinte comando:

    aks-engine upgrade \
    --azure-env AzureStackCloud \
    --location <for an ASDK is local> \
    --resource-group kube-rg \
    --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --api-model kube-rg/apimodel.json \
    --upgrade-version 1.18.15 \
    --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --identity-system adfs # required if using AD FS
    
  4. Se, por qualquer motivo, a operação de atualização encontrar uma falha, pode voltar a repetir o comando de atualização depois de abordar o problema. O motor AKS retomará a operação onde falhou na anterior.

Passos para apenas atualizar a imagem do SO

  1. Reveja a tabela de versões suportadas de kubernetes e determine se tem a versão do motor aks e da imagem base AKS que planeia para a sua atualização. Para ver a versão do motor aks: aks-engine version .
  2. Atualize o seu motor AKS em conformidade, na máquina onde instalou o motor aks: ./get-akse.sh --version vx.xx.x substituindo ./get-akse.sh --version vx.xx.x pela sua versão-alvo.
  3. Peça ao seu operador Azure Stack Hub para adicionar a versão da Imagem Base AKS que necessita no Azure Stack Hub Marketplace que pretende utilizar.
  4. Executar o aks-engine upgrade comando utilizando a mesma versão de Kubernetes que já está a usar, mas adicione o --force . Pode ver um exemplo na obrigação de forçar uma atualização.

Passos para atualizar cluster para a versão OS Ubuntu 18.04

Com a versão do motor AKS 0.60.1 ou acima, pode atualizar os seus VMs de cluster de Ubuntu 16.04 a 18.04. Siga estes passos:

  1. Localize e edite o api-model.json ficheiro que foi gerado durante a implementação. Este deve ser o mesmo ficheiro utilizado para qualquer operação de upgrade ou escala com aks-engine .
  2. Localize as secções para masterProfileagentPoolProfiles e, dentro dessas secções, altere o valor de distroaks-ubuntu-18.04 .
  3. Guarde o api-model.json ficheiro e use o ficheiro no seu comando como faria nos api-model.json aks-engin upgradeapi-model.json

Forçar uma atualização

Pode haver condições em que possa querer forçar uma atualização do seu cluster. Por exemplo, no primeiro dia, implementa-se um cluster num ambiente desligado utilizando a versão mais recente do Kubernetes. No dia seguinte, a Ubuntu lança um patch para uma vulnerabilidade para a qual a Microsoft gera uma nova Imagem Base AKS. Pode aplicar a nova imagem forçando uma atualização utilizando a mesma versão Kubernetes que já implementou.

aks-engine upgrade \
--azure-env AzureStackCloud   
--location <for an ASDK is local> \
--resource-group kube-rg \
--subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--api-model kube-rg/apimodel.json \
--upgrade-version 1.18.15 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force

Para obter instruções, consulte a atualização da Força.

Passos seguintes