|
Este documento ha sido traducido utilizando tecnología de traducción automática. Si bien nos esforzamos por proporcionar traducciones precisas, no ofrecemos garantías sobre la integridad, precisión o confiabilidad del contenido traducido. En caso de discrepancia, la versión original en inglés prevalecerá y constituirá el texto autorizado. |
Actualiza de v1.3.2 a v1.4.0
Información general
Un botón Upgrade aparece en la pantalla Panel siempre que una nueva SUSE Virtualization versión a la que puedes actualizar esté disponible. Para más información, consulta Iniciar una actualización de versión.
Para entornos aislados, consulta Preparar una actualización en entorno aislado.
Evita la corrupción de imágenes de máquinas virtuales durante las actualizaciones de versión
|
Antes de comenzar la actualización de versión, asegúrate de que el Omitir la actualización del CRD puede llevar a la corrupción de la imagen de respaldo, como se describe en #10644. |
Realiza los siguientes pasos antes de comenzar la actualización de versión.
-
Aplica un parche al SUSE Virtualization objeto ManagedChart para evitar errores y advertencias 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" } } ]' -
Aplica el 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 conocidos
1. Actualización atascada en el estado "Pre-drenaje".
Una máquina virtual con un disco de contenedor no puede ser migrada debido a una limitación de la función de migración en vivo. Esto provoca que el proceso de actualización se quede atascado en el estado "Pre-drenaje".
|
Termina manualmente las máquinas virtuales para continuar con el proceso de actualización. |
Problema relacionado: #7005
2. Actualización de versión atascada esperando el paquete
Este problema es causado por una condición de carrera cuando el SUSE® Rancher Prime: Continuous Delivery agente (fleet-agent) es vuelto a desplegar. Los siguientes mensajes de error indican que el 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]
Puedes ejecutar el siguiente guion para solucionar el 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. Actualización atascada esperando a SUSE® Rancher Prime: Continuous Delivery.
Al actualizar de v1.3.2 a v1.4.0, el proceso de actualización puede quedar atascado esperando a que SUSE® Rancher Prime: Continuous Delivery esté listo. Este problema es causado por una condición de carrera cuando SUSE Rancher Prime se vuelve a desplegar.
Revisa los registros de SUSE Virtualization y el historial de SUSE® Rancher Prime: Continuous Delivery en busca de los siguientes indicadores:
-
El pod del manifiesto está atascado en el estado de
deployed. -
La actualización está pendiente con una versión de chart que ha sido desplegada.
Ejemplo:
> 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
Puedes ejecutar el siguiente comando para solucionar el problema.
helm rollback fleet -n cattle-fleet-system <last-deployed-revision>
4. La actualización se reinicia inesperadamente después de hacer clic en el botón "Desestimarlo".
Cuando utilizas Rancher para actualizar SUSE Virtualization, la interfaz de usuario de Rancher muestra un diálogo con un botón etiquetado como "Desestimarlo". Hacer clic en este botón puede resultar en los siguientes problemas:
-
La sección
statusdel CR deharvesterhci.io/v1beta1/upgradese borra, causando la pérdida de toda la información importante sobre la actualización de versión. -
El proceso de actualización de versión se reinicia inesperadamente.
Este problema afecta a Rancher v2.10.x, que utiliza v1.0.2, v1.0.3 y v1.0.4 de la Extensión de UI de Harvester. Todas las versiones de la UI de SUSE Virtualization no están afectadas. El problema se soluciona en la Extensión de UI de Harvester v1.0.5 y v1.5.0.
Para evitar este problema, realiza cualquiera de las siguientes acciones:
-
Utiliza la UI de SUSE Virtualization para realizar actualizaciones. Hacer clic en el botón "Desestimarlo" en la UI de SUSE Virtualization no resulta en un comportamiento inesperado.
-
En lugar de hacer clic en el botón en la UI de Rancher, ejecuta el siguiente comando contra el clúster:
kubectl -n harvester-system label upgrades -l harvesterhci.io/latestUpgrade=true harvesterhci.io/read-message=true
Problema relacionado: #7791
5. Las máquinas virtuales que utilizan volúmenes RWX migrables se reinician inesperadamente
Las máquinas virtuales que utilizan volúmenes RWX migrables se reinician inesperadamente cuando se reinician los pods del plugin CSI. Este problema afecta a SUSE Virtualization v1.4.x, v1.5.0 y v1.5.1.
La solución alternativa es desactivar la configuración Eliminar automáticamente el pod de carga de trabajo cuando el volumen se desconecta inesperadamente en la interfaz de usuario SUSE Storage antes de iniciar la actualización. Debes habilitar la configuración de nuevo una vez que se complete la actualización.
El problema se solucionará en SUSE Storage v1.8.3, v1.9.1 y versiones posteriores. SUSE Virtualization v1.6.0 incluirá SUSE Storage v1.9.1.