• Русский
  • Обновление

    Alauda Container Platform Data Services Essentials разработаны для автоматического обновления во время обновлений платформы, не требуя ручного вмешательства. Система без проблем выполняет все необходимые миграции и обновления в фоновом режиме.

    Alauda Container Platform Data Services RDS Framework будет выполнять обновления в соответствии с настроенной стратегией обновления:

    • Automatic: Автообновления запускаются сразу после обнаружения новых версий компонентов.
    • Manual: Требуется ручное подтверждение перед началом процесса обновления.
    WARNING

    При обновлении ACP с версии v3 до v4 рекомендуется своевременно обновить как глобальный кластер, так и кластеры рабочих нагрузок до новой версии для корректного отображения представления Data Services.
    Если обновлен только глобальный кластер до v4, а кластеры рабочих нагрузок остаются на v3, пожалуйста, свяжитесь с технической командой в этот период для получения шагов по устранению проблем с отображением представления в не обновленных кластерах рабочих нагрузок.

    Содержание

    Обновление с версии 3.x до 4.0.5

    WARNING

    Для обновлений с версий 3.16.x или 3.18.x до 4.0.5 с установленными Application Services необходимы ручные шаги, описанные в этом разделе, как для глобального, так и для кластеров рабочих нагрузок. Включите эти дополнительные шаги в вашу стандартную процедуру обновления.

    Переключение операторов на ручное подтверждение

    Перед загрузкой образов установите всем операторам dataservices режим ручного подтверждения. Выполните следующий скрипт на кластере, который обновляется:

    Примечание: Для обновления глобального кластера выполните этот скрипт на глобальном кластере. Для обновления кластера рабочих нагрузок — на соответствующем кластере рабочих нагрузок.

    cat << 'EOF' | bash
    #!/usr/bin/env bash
    
    set -o errexit
    set -o nounset
    set -o pipefail
    
    # Check if kubectl is installed
    if ! command -v kubectl &>/dev/null; then
        echo "Error: kubectl is not installed. Please install kubectl and try again." >&2
        exit 1
    fi
    
    # Check if we are connected to a cluster
    if ! kubectl cluster-info &>/dev/null; then
        echo "Error: Unable to connect to Kubernetes cluster. Please check your kubeconfig." >&2
        exit 1
    fi
    
    # Define operator name patterns
    patterns=("rds-operator" "rds-operator-stable-platform-cpaas-system" "postgres-operator" "strimzi-kafka-operator" "mysql-mgr-operator" "rabbitmq-cluster-operator" "redis-operator" "clickhouse-operator" "data-services-clickhouse-operator")
    
    # Loop through each pattern
    for pattern in "${patterns[@]}"; do
        echo "Processing pattern: $pattern"
    
        # Get subscriptions that match the pattern (name starts with pattern)
        subscriptions=$(kubectl get subscriptions --all-namespaces -o=jsonpath='{range .items[*]}{.metadata.namespace}{" "}{.metadata.name}{"\n"}{end}' | awk -v pat="$pattern" '$2 ~ "^" pat {print $0}')
    
        if [ -z "$subscriptions" ]; then
            echo "No subscriptions found for pattern: $pattern"
            continue
        fi
    
        # Process each subscription
        while IFS= read -r line; do
            namespace=$(echo "$line" | awk '{print $1}')
            name=$(echo "$line" | awk '{print $2}')
            echo "Patching subscription $name in namespace $namespace"
    
            # Patch the subscription
            if kubectl patch subscription -n "$namespace" "$name" -p '{"spec":{"installPlanApproval":"Manual"}}' --type=merge; then
                echo "Successfully patched subscription $name in namespace $namespace"
            else
                echo "Error: Failed to patch subscription $name in namespace $namespace" >&2
            fi
        done <<<"$subscriptions"
    done
    
    echo "Manual upgrade patch completed for all specified operators."
    EOF

    Загрузка образов и запуск обновления

    Следуйте стандартной процедуре обновления платформы для загрузки образов и запуска обновления.

    Загрузка плагинов Application Services

    Перед обновлением глобального кластера используйте violet для загрузки всех пакетов плагинов Alauda Application Services 4.0.5.

    Обновление глобального кластера

    Выполните обновление глобального кластера.

    Развертывание Data Services Essentials

    После обновления глобального кластера вручную разверните Alauda Container Platform Data Services Essentials.

    Примечание для обновлений с 3.18.x: Дополнительно необходимо вручную подтвердить новую версию PostgreSQL в operator hub.