升级

Alauda Container Platform Data Services Essentials 设计为在平台升级时自动升级,无需人工干预。系统会在后台无缝处理所有必要的迁移和更新。

Alauda Container Platform Data Services RDS Framework 将根据配置的升级策略执行升级:

  • Automatic:检测到新组件版本后,自动触发升级。
  • Manual:需要手动批准后才开始升级流程。
WARNING

从 ACP v3 升级到 v4 时,建议尽快将 global 集群和业务集群均升级到新版本,以确保 Data Services 视图正常显示。
如果仅升级了 global 集群到 v4,而业务集群仍为 v3 版本,请在此期间联系技术团队,获取未升级业务集群视图显示问题的缓解方案。

目录

从 3.x 升级到 4.0.5

WARNING

对于从 3.16.x 或 3.18.x 版本升级到 4.0.5 并安装了 Application Services 的情况,需在 global 集群和业务集群升级时执行本节中列出的手动步骤。请将这些额外步骤整合到您的标准升级操作步骤中。

将 operators 设置为手动批准

上传镜像之前,将所有 dataservices operators 设置为手动批准模式。请在正在升级的集群上运行以下脚本:

注意: global 集群升级时,在 global 集群上运行此脚本;业务集群升级时,在业务集群上运行此脚本。

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 插件

在升级 global 集群之前,使用 violet 上传所有 Alauda Application Services 4.0.5 插件包。

升级 global 集群

升级 global 集群。

部署 Data Services Essentials

升级 global 集群后,手动部署 Alauda Container Platform Data Services Essentials

3.18.x 升级注意事项:此外,您还必须在 operator hub 中手动批准 PostgreSQL 新版本。