Atualizar um cluster do 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 Clusters Kubernetes.
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.
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 AzureStackCloud
do Azure Stack Hub .localização local O nome da região para o seu Azure Stack Hub. Para a ASDK, a região está preparada para local
.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). 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
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
- 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
. - 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. - 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.
- 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 em 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:
- 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 comaks-engine
. - Localize as secções para
masterProfile
eagentPoolProfiles
, dentro dessas secções, altere o valor dedistro
.aks-ubuntu-18.04
- Guarde o
api-model.json
ficheiro e use oapi-model.json
ficheiro no seuaks-engin upgrade
comando como faria nosapi-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.