|
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. |
Fazer upgrade de v1.3.2 para v1.4.0
Informações gerais
Um botão Upgrade aparece na tela Dashboard sempre que uma nova versão SUSE Virtualization para a qual você pode fazer upgrade se torna disponível. Para mais informações, veja Iniciar um upgrade.
Para ambientes air-gapped, veja Preparar um upgrade air-gapped.
Prevenir a corrupção de imagens de máquinas virtuais durante os upgrades
|
Antes de iniciar o upgrade, certifique-se de que o Ignorar a atualização do CRD pode levar à corrupção da imagem de backup, conforme descrito em issue #10644. |
Realize os seguintes passos antes de iniciar o upgrade.
-
Aplique o patch no SUSE Virtualization objeto ManagedChart para evitar erros e avisos relacionados.
kubectl patch managedchart harvester \ -n fleet-local \ --type='json' \ -p='[ { "op":"add", "path":"/spec/diff/comparePatches/-", "value": { "apiVersion":"apiextensions.k8s.io/v1", "jsonPointers":["/spec","/metadata/annotations", "/metadata/labels", "/status"], "kind":"CustomResourceDefinition", "name":"backingimages.longhorn.io" } } ]' -
Aplique o SUSE Storage v1.7.2
BackingImageCRD.apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.15.0 labels: app.kubernetes.io/name: longhorn app.kubernetes.io/instance: longhorn app.kubernetes.io/version: v1.7.2 longhorn-manager: "" name: backingimages.longhorn.io spec: conversion: strategy: Webhook webhook: clientConfig: service: name: longhorn-conversion-webhook namespace: longhorn-system path: /v1/webhook/conversion port: 9501 conversionReviewVersions: - v1beta2 - v1beta1 group: longhorn.io names: kind: BackingImage listKind: BackingImageList plural: backingimages shortNames: - lhbi singular: backingimage scope: Namespaced versions: - additionalPrinterColumns: - description: The backing image name jsonPath: .spec.image name: Image type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta1 schema: openAPIV3Schema: description: BackingImage is where Longhorn stores backing image object. properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: x-kubernetes-preserve-unknown-fields: true status: x-kubernetes-preserve-unknown-fields: true type: object served: true storage: false subresources: status: {} - additionalPrinterColumns: - description: The system generated UUID jsonPath: .status.uuid name: UUID type: string - description: The source of the backing image file data jsonPath: .spec.sourceType name: SourceType type: string - description: The backing image file size in each disk jsonPath: .status.size name: Size type: string - description: The virtual size of the image (may be larger than file size) jsonPath: .status.virtualSize name: VirtualSize type: string - jsonPath: .metadata.creationTimestamp name: Age type: date name: v1beta2 schema: openAPIV3Schema: description: BackingImage is where Longhorn stores backing image object. properties: apiVersion: description: |- APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: description: |- Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object spec: description: BackingImageSpec defines the desired state of the Longhorn backing image properties: checksum: type: string diskFileSpecMap: additionalProperties: properties: evictionRequested: type: boolean type: object type: object diskSelector: items: type: string type: array disks: additionalProperties: type: string description: Deprecated. We are now using DiskFileSpecMap to assign different spec to the file on different disks. type: object minNumberOfCopies: type: integer nodeSelector: items: type: string type: array secret: type: string secretNamespace: type: string sourceParameters: additionalProperties: type: string type: object sourceType: enum: - download - upload - export-from-volume - restore - clone type: string type: object status: description: BackingImageStatus defines the observed state of the Longhorn backing image status properties: checksum: type: string diskFileStatusMap: additionalProperties: properties: lastStateTransitionTime: type: string message: type: string progress: type: integer state: type: string type: object nullable: true type: object diskLastRefAtMap: additionalProperties: type: string nullable: true type: object ownerID: type: string size: format: int64 type: integer uuid: type: string virtualSize: description: Virtual size of image, which may be larger than physical size. Will be zero until known (e.g. while a backing image is uploading) format: int64 type: integer type: object type: object served: true storage: true subresources: status: {}
Problemas conhecidos
1. Upgrade travado no estado "Pré-drenagem"
Uma máquina virtual com um disco de contêiner não pode ser migrada devido a uma limitação do recurso de migração ao vivo. Isso faz com que o processo de upgrade fique preso no estado "Pré-drenagem".
|
Pare manualmente as máquinas virtuais para continuar o processo de upgrade. |
Problema relacionado: #7005
2. Upgrade travado aguardando o pacote
Esse problema é causado por uma condição de corrida quando o agente SUSE® Rancher Prime: Continuous Delivery (fleet-agent) é reimplantado. As seguintes mensagens de erro indicam que o problema existe.
> kubectl get bundles -n fleet-local
NAME BUNDLEDEPLOYMENTS-READY STATUS
mcc-harvester 0/1 ErrApplied(1) [Cluster fleet-local/local: encountered 2 deletion errors. First is: admission webhook "validator.harvesterhci.io" denied the request: Internal error occurred: no route match found for DELETE /v1, Kind=Secret harvester-system/sh.helm.release.v1.harvester.v2]
mcc-harvester-crd 0/1 ErrApplied(1) [Cluster fleet-local/local: admission webhook "validator.harvesterhci.io" denied the request: Internal error occurred: no route match found for DELETE /v1, Kind=Secret harvester-system/sh.helm.release.v1.harvester-crd.v1]
Você pode executar o seguinte script para corrigir o problema.
#!/bin/bash
patch_fleet_bundle() {
local bundleName=$1
local generation=$(kubectl get -n fleet-local bundle ${bundleName} -o jsonpath='{.spec.forceSyncGeneration}')
local new_generation=$((generation+1))
patch_manifest="$(mktemp)"
cat > "$patch_manifest" <<EOF
{
"spec": {
"forceSyncGeneration": $new_generation
}
}
EOF
echo "patch bundle to new generation: $new_generation"
kubectl patch -n fleet-local bundle ${bundleName} --type=merge --patch-file $patch_manifest
rm -f $patch_manifest
}
echo "removing harvester validating webhook"
kubectl delete validatingwebhookconfiguration harvester-validator
for bundle in mcc-harvester-crd mcc-harvester
do
patch_fleet_bundle ${bundle}
done
echo "removing longhorn services"
kubectl delete svc longhorn-engine-manager -n longhorn-system --ignore-not-found=true
kubectl delete svc longhorn-replica-manager -n longhorn-system --ignore-not-found=true
3. Upgrade travado aguardando SUSE® Rancher Prime: Continuous Delivery
Ao fazer upgrade de v1.3.2 para v1.4.0, o processo de upgrade pode ficar preso aguardando SUSE® Rancher Prime: Continuous Delivery ficar pronto. Esse problema é causado por uma condição de corrida quando SUSE Rancher Prime é reimplantado.
Verifique os logs de SUSE Virtualization e o histórico de SUSE® Rancher Prime: Continuous Delivery para os seguintes indicadores:
-
O pod do manifesto está preso no status de
deployed. -
O upgrade está pendente com uma versão de gráfico que foi implantada.
Exemplo:
> kubectl logs -n harvester-system -l harvesterhci.io/upgradeComponent=manifest
wait helm release cattle-fleet-system fleet fleet-104.0.2+up0.10.2 0.10.2 deployed
> helm history -n cattle-fleet-system fleet
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
26 Tue Dec 10 03:09:13 2024 superseded fleet-103.1.5+up0.9.5 0.9.5 Upgrade complete
27 Sun Dec 15 09:26:54 2024 superseded fleet-103.1.5+up0.9.5 0.9.5 Upgrade complete
28 Sun Dec 15 09:27:03 2024 superseded fleet-103.1.5+up0.9.5 0.9.5 Upgrade complete
29 Mon Dec 16 05:57:03 2024 deployed fleet-103.1.5+up0.9.5 0.9.5 Upgrade complete
30 Mon Dec 16 05:57:13 2024 pending-upgrade fleet-103.1.5+up0.9.5 0.9.5 Preparing upgrade
Você pode executar o seguinte comando para corrigir o problema.
helm rollback fleet -n cattle-fleet-system <last-deployed-revision>
4. O upgrade reinicia inesperadamente após o botão "Desconsiderar" ser clicado
Quando você usa Rancher para fazer upgrade de SUSE Virtualization, a interface do usuário Rancher exibe uma caixa de diálogo com um botão rotulado como "Desconsiderar". Clicar neste botão pode resultar nos seguintes problemas:
-
A seção
statusdo CR deharvesterhci.io/v1beta1/upgradeé limpa, causando a perda de todas as informações importantes sobre o upgrade. -
O processo de upgrade reinicia inesperadamente.
Esse problema afeta Rancher v2.10.x, que usa v1.0.2, v1.0.3 e v1.0.4 da Extensão da UI do Harvester. Todas as versões da UI SUSE Virtualization não são afetadas. O problema foi corrigido na extensão da UI do Harvester v1.0.5 e v1.5.0.
Para evitar esse problema, execute uma das seguintes ações:
-
Use a SUSE Virtualization UI para fazer upgrade. Clicar no botão "Desconsiderar" na UI SUSE Virtualization não resulta em comportamento inesperado.
-
Em vez de clicar no botão na UI Rancher, execute o seguinte comando no cluster:
kubectl -n harvester-system label upgrades -l harvesterhci.io/latestUpgrade=true harvesterhci.io/read-message=true
Problema relacionado: #7791
5. Máquinas virtuais que usam volumes RWX migráveis reiniciam inesperadamente
Máquinas virtuais que usam volumes RWX migráveis reiniciam inesperadamente quando os pods do plugin CSI são reiniciados. Esse problema afeta SUSE Virtualization v1.4.x, v1.5.0 e v1.5.1.
A solução alternativa é desativar a configuração Excluir Automaticamente o Pod de Trabalho Quando o Volume for Desconectado Inesperadamente na UI SUSE Storage antes de iniciar o upgrade. Você deve habilitar a configuração novamente assim que o upgrade for concluído.
O problema será corrigido na versão SUSE Storage v1.8.3, v1.9.1 e versões posteriores. SUSE Virtualization v1.6.0 incluirá SUSE Storage v1.9.1.