Para clusters que foram criados usando versões mais antigas do VMware Cloud Director Container Service Extension, é necessário fazer upgrade uma vez do script. Isso permite que os clusters sejam compatíveis com o VMware Cloud Director Container Service Extension que você deseja usar.

Por padrão, os clusters criados em versões mais antigas do VMware Cloud Director Container Service Extension operam nas seguintes versões mais antigas dos componentes do Kubernetes. É necessário fazer upgrade para as versões mais novas descritas abaixo.
Componentes do Kubernetes Versão Existente Fazer Upgrade da Versão para 4.2 Fazer Upgrade da Versão para 4.2.1 Fazer Upgrade da Versão para 4.2.2
Kubernetes Cloud Provider for VMware Cloud Director 1.5.0, 1.4.1 ou versões mais antigas 1.5.0 1.6.0 1.6.0
Kubernetes Container Storage Interface driver for VMware Cloud Director 1.5.0, 1.4.1 ou versões mais antigas 1.5.0 1.6.0 1.6.0
Kubernetes Cluster API Provider for VMware Cloud Director 1.2.0, 1.1.1 ou versões mais antigas 1.2.0 1.3.0 1.3.0
RDE-Projector 0.7.0, 0.6.1 ou versões mais antigas 0.7.0 0.7.0 0.7.1

Pré-requisitos

Antes de realizar essa tarefa; certifique-se de que os seguintes pré-requisitos estejam em vigor:
  • A máquina deve usar o sistema operacional Ubuntu GNU/Linux 20.04.
  • Certifique-se de que o kubectl esteja instalado. Para obter mais informações, consulte Instalar e configurar o kubectl no Linux.
  • Certifique-se de instalar e operar o Docker. Para obter mais informações, consulte Instalar o mecanismo do Docker.
  • Certifique-se de que o kubeconfig do cluster esteja presente na máquina em um caminho acessível.

Procedimento

  1. Use o comando a seguir para definir o diretório do $HOME:
    export $HOME=<directory of choice>
    Observação: Para confirmar que o diretório do $HOME está definido corretamente, use o seguinte comando para imprimir o diretório do $HOME. Não deve estar vazio.
    echo $HOME
  2. Use o seguinte comando para criar uma estrutura de pastas para montar e armazenar o conteúdo do script de upgrade do cluster:
    mkdir -p $HOME/cluster-upgrade-script
  3. Navegue até a pasta criada e use o seguinte comando para extrair a imagem cluster-upgrade-script de http://projects.registry.vmware.com.
    • Para 4.2:

      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2
    • Para 4.2.1:
      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
    • Para 4.2.2:
      cd $HOME/cluster-upgrade-script
      docker pull projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.4
  4. Depois de puxar a imagem, use docker para extrair o conteúdo da imagem para a pasta criando um contêiner e extraindo-o.
    • Para 4.2:
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.2
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
    • Para 4.2.1:
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.3
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
    • Para 4.2.2:
      docker container create --name "temp_container" projects.registry.vmware.com/vmware-cloud-director/cluster-upgrade-script-airgapped:v0.1.4
      docker export "temp_container" | tar -C $HOME/cluster-upgrade-script -xvf - --strip-components 2
  5. Observe que o conteúdo é extraído para a pasta; é seguro remover o contêiner temporário:
    docker container rm "temp_container" 
  6. Depois que todo o conteúdo for extraído para a pasta principal e abra o diretório e atualize as permissões para o script:
    cd $HOME/cluster-upgrade-script
    chmod +x upgrade_cluster_components.sh
  7. Execute o seguinte comando na pasta principal:
    ./upgrade_cluster_components.sh kubeconfig-absolute-file-path [image registry] 
    
    Example: ./upgrade_cluster_components.sh $HOME/kubeconfig-cluster.txt projects.registry.vmware.com

    image_registry é um parâmetro opcional, que define o registro do qual o script deve extrair imagens e espera imagens como CSI/CPI CRS, manifestos CAPVCD, clusterctl etc. serem hospedadas lá.

    Quando você não estiver usando o registro privado/local/isolado, use projects.registry.vmware.com como image_registry. Como alternativa, se o parâmetro estiver vazio, o padrão será image_registry: projects.registry.vmware.com.

    Para o registro privado/local, use seu link de registro para o parâmetro. Por exemplo, my-private.registry.com. Certifique-se de que a máquina virtual na qual você executa os scripts confie no registro, caso contrário, ela poderá apresentar erros como x509 certificate signed by unknown authority.

    Observação:
    • Durante a execução do script, todos os artefatos de imagem são baixados para $HOME/cluster-upgrade-packages/.
    • Não houver erros durante a atualização do script; será seguro remover essa pasta e executar o script novamente para criar esta pasta.
    • Uma pasta adicional é criada para clusterctl em $HOME/.cluster-api. É seguro excluir esta pasta. pois tentar executar novamente o script cria esta pasta.

Resultados

Depois que o script do cluster de upgrade for executado com êxito, as versões dos componentes do Kubernetes do cluster serão atualizadas. Você pode exibir as versões atualizadas do componente do Kubernetes na UI dos Kubernetes Container Clusters.