Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Gerenciamento da virtualização

Com as capacidades de gerenciamento de virtualização do Rancher, você pode importar e gerenciar múltiplos clusters SUSE Virtualization. Ele fornece uma solução que unifica o gerenciamento de virtualização e de contêineres a partir de uma única interface.

Além disso, SUSE Virtualization aproveita as capacidades existentes do Rancher, como autenticação e controle RBAC para suporte a multi-inquilino.

Para informações sobre como implantar Rancher e provisionar clusters Kubernetes usando vários provedores de nuvem, veja Implantando SUSE Rancher Prime o Servidor.

Importando SUSE Virtualization cluster

  • UI

  • API

  1. Verifique e prepare a imagem do contêiner.

    Para facilitar a tarefa de importação, um novo pod chamado cattle-cluster-agent-* será criado no cluster SUSE Virtualization. A imagem do contêiner usada para este pod depende da versão do seu servidor Rancher (por exemplo, a imagem rancher/rancher-agent:v2.7.9 é usada se você estiver executando Rancher v2.7.9). Além disso, esta imagem dinâmica não está embalada no ISO SUSE Virtualization e é puxada do repositório durante a importação.

    Se o seu cluster SUSE Virtualization não for acessível diretamente da internet, execute uma das seguintes ações:

    • Configure um registro privado para o cluster e adicione a imagem. O Harvester puxará automaticamente a imagem deste registro.

    • Se você configurou um proxy HTTP para acessar serviços externos, verifique se está funcionando conforme o esperado. Os servidores DNS que você especificou na configuração do Harvester devem ser capazes de resolver o nome de domínio docker.io.

    • Baixe a imagem usando o comando docker pull rancher/rancher-agent:v2.7.9 && docker save -o rancher-agent.tar rancher/rancher-agent:v2.7.9. Em seguida, crie uma cópia da imagem baixada em cada nó do cluster e, em seguida, importe a imagem para o containerd usando o comando sudo -i ctr --namespace k8s.io image import rancher-agent.tar. Por fim, execute sudo -i crictl image ls | grep "rancher-agent" em cada nó para garantir que a imagem esteja pronta.

  2. Uma vez que o servidor Rancher esteja em funcionamento, faça login e clique no menu de hambúrguer e escolha a aba Gerenciamento de Virtualização. Selecione Importar Existente para importar o SUSE Virtualization cluster downstream para o servidor Rancher. vm menu

  3. Especifique o Cluster Name e clique em Criar. Você verá então o guia de registro; por favor, abra o painel do SUSE Virtualization cluster de destino e siga o guia de acordo. harv importing

  4. Uma vez que o nó do agente esteja pronto, você deve ser capaz de visualizar e acessar o cluster SUSE Virtualization importado a partir do servidor Rancher e gerenciar suas VMs de acordo. harv cluster view

    Sempre que o nó do agente ficar preso, execute o comando kubectl get pod cattle-cluster-agent-* -n cattle-system -oyaml no cluster SUSE Virtualization. Se a seguinte mensagem for exibida, verifique as informações na etapa 1, mate este pod e então um novo pod será criado automaticamente para reiniciar o processo de importação.

      ...
      state:
        waiting:
          message: Back-off pulling image "rancher/rancher-agent:v2.7.9"
          reason: ImagePullBackOff
      ...
  5. Na interface do SUSE Virtualization, você pode clicar no menu hambúrguer para navegar de volta à página de gerenciamento de múltiplos clusters Rancher.

    harv go back

  1. No cluster Kubernetes Rancher, crie um novo recurso Cluster.

    Exemplo:

      apiVersion: provisioning.cattle.io/v1
      kind: Cluster
      metadata:
        name: harvester-cluster-name
        namespace: fleet-default
        labels:
          provider.cattle.io: harvester
        annotations:
          field.cattle.io/description: Human readable cluster description
      spec:
        agentEnvVars: []
  2. Uma vez que o status do recurso Cluster seja atualizado, obtenha o ID do cluster (formato: c-m-foobar) da propriedade .status.clusterName.

  3. Crie um ClusterRegistrationToken usando o ID do cluster no namespace com o mesmo nome que o ID do cluster. Você deve especificar o ID do cluster no campo .spec.clusterName do token.

    Exemplo:

      apiVersion: management.cattle.io/v3
      kind: ClusterRegistrationToken
      metadata:
        name: default-token
        namespace: c-m-foobar
      spec:
        clusterName: c-m-foobar
  4. Uma vez que o status do ClusterRegistrationToken seja atualizado, obtenha o valor da propriedade .status.manifestUrl do token.

  5. No cluster SUSE Virtualization, aplique o patch da configuração cluster-registration-url e especifique a URL obtida da propriedade .status.manifestUrl do token de registro do cluster no campo value.

    Exemplo:

      apiVersion: harvesterhci.io/v1beta1
      kind: Setting
      metadata:
        name: cluster-registration-url
      value: https://rancher.example.com/v3/import/abcdefghijkl1234567890-c-m-foobar.yaml

Upgrades

Para fazer upgrade de um cluster SUSE Virtualization importado, você deve fazer upgrade de Rancher, da extensão da UI do Harvester e de SUSE Virtualization em uma ordem específica. A Extensão da UI do Harvester é necessária para acessar a UI do SUSE Virtualization nas versões Rancher v2.10.x e posteriores.

  1. Verifique a matriz de suporte para determinar as versões do Rancher e da Extensão da UI do Harvester que correspondem ao cluster SUSE Virtualization.

  2. Atualize Rancher.

  3. Atualize a Extensão da UI do Harvester.

    Para informações sobre como atualizar a extensão em um ambiente air-gapped, veja Extensão da UI do Harvester com Rancher Integração.

  4. Atualize SUSE Virtualization.

    Recursos na versão SUSE Virtualization v1.5.0 e versões posteriores são implementados na Extensão da UI do Harvester. Se você não fizer upgrade de Rancher e da Extensão da UI do Harvester, esses recursos podem não estar disponíveis.

Multi-Inquilino

SUSE Virtualization aproveita a Rancher existente autorização RBAC de forma que os usuários possam visualizar e gerenciar um conjunto de recursos com base em suas permissões de função de cluster e projeto.

Dentro de Rancher, cada pessoa se autentica como um usuário, que é um login que concede acesso a Rancher. Conforme mencionado em Autenticação, os usuários podem ser locais ou externos.

Uma vez que o usuário faça login em Rancher, sua autorização, também conhecida como direitos de acesso, é determinada por permissões globais e funções de cluster e projeto.

  • Permissões Globais: Defina a autorização do usuário fora do escopo de qualquer cluster específico.

  • Funções de Cluster e Projeto: Defina a autorização do usuário dentro do cluster ou projeto específico onde os usuários são atribuídos à função.

Tanto as permissões globais quanto as funções de cluster e projeto são implementadas sobre Kubernetes RBAC. Portanto, a aplicação de permissões e funções é realizada pelo Kubernetes.

  • Um proprietário de cluster tem controle total sobre o cluster e todos os recursos dentro dele, por exemplo, hosts, VMs, volumes, imagens, redes, backups e configurações.

  • Um usuário de projeto pode ser atribuído a um projeto específico com permissão para gerenciar os recursos dentro do projeto.

Gerenciar o acesso do usuário usando os modelos de função incorporados e RBAC com escopo de projeto é altamente recomendado.

SUSE Virtualization implementa seu próprio modelo de RBAC sobre o Kubernetes e KubeVirt, integrando-se com Projetos no estilo Rancher e lógica de multi-inquilino. Durante atualizações ou reconfigurações, RoleBindings personalizado que referencia apenas funções kubevirt.io pode ser perdido, redefinido ou se tornar inconsistente com o estado interno de SUSE Virtualization.

Exemplo de multi-inquilino

O seguinte exemplo fornece uma boa explicação de como o recurso multi-inquilino funciona:

  1. Primeiro, adicione novos usuários na página Rancher Users & Authentication. Em seguida, clique em Create para adicionar dois novos usuários separados, como project-owner e project-readonly, respectivamente.

    • Um project-owner é um usuário com permissão para gerenciar uma lista de recursos de um projeto específico, por exemplo, o projeto padrão.

    • Um project-readonly é um usuário com permissão somente leitura de um projeto específico, por exemplo, o projeto padrão. create user

  2. Clique em um dos clusters SUSE Virtualization importados após navegar para a interface do usuário SUSE Virtualization.

    • Clique na aba Projects/Namespaces.

    • Selecione um projeto como default e clique no menu Edit Config para atribuir os usuários a este projeto com as permissões apropriadas. Por exemplo, o usuário project-owner será atribuído à função de proprietário do projeto. add member

  3. Continue adicionando o usuário project-readonly ao mesmo projeto com permissões somente leitura e clique em Salvar. added user

  4. Abra um navegador em modo incógnito e faça login como project-owner.

  5. Após fazer login como o usuário project-owner, clique na aba Gerenciamento de Virtualização. Lá você deve conseguir visualizar o cluster e o projeto ao qual foi atribuído.

  6. Clique na aba Imagens para visualizar uma lista de imagens previamente carregadas no namespace harvester-public. Você também pode carregar sua própria imagem, se necessário.

  7. Crie uma VM com uma das imagens que você carregou.

  8. Faça login com outro usuário, por exemplo, project-readonly, e este usuário terá apenas a permissão de leitura do projeto atribuído.

O namespace harvester-public é um namespace predefinido acessível a todos os usuários atribuídos a este cluster.

Excluir SUSE Virtualization Cluster Importado

Os usuários podem excluir o cluster SUSE Virtualization importado da tela de Gerenciamento de Virtualização da interface do usuário Rancher. Selecione o cluster que deseja remover e clique no botão Excluir para excluir o SUSE Virtualization cluster importado.

Você também precisará redefinir a configuração cluster-registration-url no cluster SUSE Virtualization associado para limpar o agente do cluster Rancher.

delete-cluster

Por favor, não execute o comando kubectl delete -f …​ para excluir o SUSE Virtualization cluster importado, pois isso removerá todo o namespace cattle-system, que é necessário para o SUSE Virtualization cluster.