Download Software Package

If you need to deploy PolarDB-X in an offline environment without internet access, you must first prepare offline installation packages on a machine with internet access, import them into the non-networked environment, and proceed with the offline deployment.

Starting from PXD version 0.5.0, one-click download support for PolarDB-X offline installation packages (x86_64, ARM64) is available. This article introduces the download methods for offline software packages for both PXD and Kubernetes deployment.

Prerequisites

Software Package Download

  1. Execute the following commands to download the offline installation package for the corresponding environment:
# Download PXD offline installation package for x86_64
pxd download --env pxd --arch amd64 --repo "registry:5000" --dest ~/ -i images.list

# Download PXD offline installation package for ARM64
pxd download --env pxd --arch arm64 --repo "registry:5000" --dest ~/ -i images.list

# Download K8S offline installation package for x86_64 architecture K8s
pxd download --env k8s --arch amd64 --repo "registry:5000" --dest ~/ -i images.list

# Download K8S offline installation package for ARM64 architecture K8s
pxd download --env k8s --arch arm64 --repo "registry:5000" --dest ~/ -i images.list

Parameter Description:

  • -env: The deployment type of the offline environment, supporting pxd and k8s, default is k8s.
  • -arch: The architecture type of the offline installation package, supporting amd64 and arm64.
  • -repo: The Docker repository address of the offline environment. Since the deployment of PolarDB-X depends on Docker, you need to deploy a Docker repo in the offline environment and push Docker images to the offline repo. If your offline environment already has a Docker repo, fill in your repo address directly; if not, refer to the documentation for setup.
  • -dest: The directory where the offline installation package is generated. PXD will create a polardbx-install directory under the directory specified by the dest parameter to store the offline installation package.
  • -i: Image list. If not specified, the default image list is used to download from Docker hub. If your environment cannot access Docker hub, you can specify an images.list file, modify the default image addresses, and use other image sources for download. The content of images.list is detailed in the software package description.
  1. After the download is complete, the address of the offline installation package will be printed, as shown in the figure below. Package the installation directory and import it into the offline environment.

image.png

PXD Offline Software Package Description

The list of software packages required for PXD deployment is as follows:

  • PXD installation package with dependencies
  • PolarDB-X related Docker images

The directory structure of the PXD offline installation package is as follows:

polardbx-install
|-- images                                      # Docker image directory
|   |-- image.list                              # List of downloaded Docker images
|   |-- image.manifest                          # Offline environment image manifest, script parameters for import
|   |-- load_image.sh                           # Script to import images in the offline environment
|   |-- polardbx-cdc-latest-arm64.tar.gz
|   |-- polardbx-engine-latest-arm64.tar.gz
|   |-- polardbx-init-latest-arm64.tar.gz
|   |-- polardbx-sql-latest-arm64.tar.gz
|   `-- xstore-tools-latest-arm64.tar.gz
|-- pxd-0.4.3-py3-none-any.whl                  # PXD installation package
`-- pxd-denpendency-arm64.tar.gz                # Dependencies for PXD
`-- install.sh                                  # Installation script

基于 PXD 部署PolarDB-X,依赖的 Docker 镜像列表如下所示: Docker image required for deploying PolarDB-X with PXD is as follows:

Image Category Image Tag Architecture
Kernel Images polardbx/polardbx-sql latest amd64, arm64
polardbx/polardbx-engine-2.0 latest amd64, arm64
polardbx/polardbx-cdc latest amd64, arm64
PXD polardbx/polardbx-init latest amd64, arm64
polardbx/xstore-tools latest amd64, arm64

Below is the content of the default images.list file:

polardbx/polardbx-sql:v2.4.0_5.4.19
polardbx/polardbx-engine:v2.4.0_8.4.19
polardbx/polardbx-cdc: v2.4.0_5.4.19
polardbx/polardbx-columnar:v2.4.0_5.4.19
polardbx/polardbx-init:v1.6.2
polardbx/xstore-tools:v1.6.2

It is recommended to execute the following command to obtain the latest image versions for each PolarDB-X component, and update the CN, DN, CDC, and COLUMNAR images in the images.list:

curl -s "https://polardbx-opensource.oss-cn-hangzhou.aliyuncs.com/scripts/get-version.sh" | sh

The output will be as follows (using PolarDB-X V2.4.0 as an example):

CN polardbx/polardbx-sql:v2.4.0_5.4.19
DN polardbx/polardbx-engine:v2.4.0_8.4.19
CDC polardbx/polardbx-cdc:v2.4.0_5.4.19
COLUMNAR polardbx/polardbx-columnar:v2.4.0_5.4.19

Note: Due to network issue, if you are unable to download images from Dockerhub, you can also use the -i parameter to specify an external images.list file. Make sure to replace the image names in the external file with those from the designated image repository. For example, the image polardbx/polardbx-sql:latest corresponds to docker.mirrors.sjtug.sjtu.edu.cn/polardbx/polardbx-sql:latest in the designated repository.

K8S Offline Software Package Description

The list of software packages based on Kubernetes deployment dependencies is as follows:

  • PolarDB-X Operator Helm package and values file
  • PolarDB-X related Docker images

Below is the directory structure of the K8s offline installation package:

polardbx-install
polardbx-install
|-- helm                                       # Helm package directory
|   |-- bin
|   |   `-- helm                               # Helm binary file for installation and usage
|   |-- logger-values.yaml                     # values file for logcollector installation
|   |-- monitor-values.yaml                    # values file for monitor installation
|   |-- operator-values.yaml                   # values file for operator installation
|   |-- polardbx-logcollector-1.3.0.tgz        # logcollector helm package
|   |-- polardbx-monitor-1.3.0.tgz             # monitor helm package
|   `-- polardbx-operator-1.3.0.tgz            # operator helm package
`-- images                                     # Docker image directory
|   |-- image.list                             # downloaded Docker image list
|   |-- image.manifest                         # manifest of images for offline environment, used in import script parameters
|   |-- load_image.sh                          # script for importing images in offline environment
    |-- polardbx-init-latest-arm64.tar.gz
    `-- xstore-tools-latest-arm64.tar.gz
    `-- ....
`-- install.sh                                 # installation script

Helm Packages

The helm packages required for the installation of polardbx-operator mainly include the following three:

  • polardbx-operator-{version}.tgz: Helm package for the core components of polardbx-operator
  • polardbx-monitor-{version}.tgz: Helm package for the monitoring component
  • polardbx-logcollector-{version}.tgz: Helm package for the log collection component

In addition to the Helm packages, due to the difference in Docker repo addresses between offline and online environments, it is necessary to modify the default image repository address during the installation of Helm packages using the values.yaml file. This modification should point to the private repository of the offline environment. In the offline installation package downloaded by PXD, the values.yaml file needed for installation has been prepared for you, with the Docker repo adjusted to the private Docker repo address you specified during the download.

Docker Images

For deploying PolarDB-X on Kubernetes, the required Docker images can be downloaded from the internet. The image list is as follows:

Image Category Image Tag Architectures
Kernel Images polardbx/polardbx-sql latest amd64 and arm64
polardbx/polardbx-engine-2.0 latest amd64 and arm64
polardbx/polardbx-cdc latest amd64 and arm64
Operator polardbx/polardbx-operator latest amd64 and arm64
polardbx/polardbx-exporter latest amd64 and arm64
polardbx/polardbx-hpfs latest amd64 and arm64
polardbx/polardbx-init latest amd64 and arm64
polardbx/xstore-tools latest amd64 and arm64
polardbx/probe-proxy latest amd64 and arm64
prom/mysqld-exporter:master master amd64 and arm64
Monitoring and Alerting quay.io/prometheus/prometheus v2.22.1 amd64 and arm64
quay.io/prometheus/alertmanager v0.21.0 amd64 and arm64
quay.io/brancz/kube-rbac-proxy v0.8.0 amd64 and arm64
quay.io/prometheus/node-exporter v1.0.1 amd64 and arm64
quay.io/prometheus-operator/prometheus-operator v0.44.1 amd64 and arm64
quay.io/prometheus-operator/prometheus-config-reloader v0.44.1 amd64 and arm64
grafana/grafana 8.5.27 amd64 and arm64
kubesphere/kube-state-metrics v2.3.0 amd64 and arm64
directxman12/k8s-prometheus-adapter v0.8.2 amd64 and arm64
Log Collection polardbx/polardbx-logstash latest amd64 and arm64
docker.elastic.co/beats/filebeat 8.9.0 amd64 and arm64

The following is the images.list file used for K8s deployment:

polardbx/polardbx-sql:v2.4.0_5.4.19
polardbx/polardbx-engine:v2.4.0_8.4.19
polardbx/polardbx-cdc:v2.4.0_5.4.19
polardbx/polardbx-columnar:v2.4.0_5.4.19
polardbx/polardbx-operator:v1.6.2
polardbx/polardbx-exporter:v1.6.2
polardbx/polardbx-hpfs:v1.6.2
polardbx/polardbx-init:v1.6.2
polardbx/polardbx-clinic:v1.6.2
polardbx/xstore-tools:v1.6.2
polardbx/probe-proxy:v1.6.2
prom/mysqld-exporter:master
quay.io/prometheus/prometheus:v2.22.1
quay.io/prometheus/alertmanager:v0.21.0
quay.io/brancz/kube-rbac-proxy:v0.8.0
quay.io/prometheus/node-exporter:v1.0.1
quay.io/prometheus-operator/prometheus-operator:v0.44.1
quay.io/prometheus-operator/prometheus-config-reloader:v0.44.1
grafana/grafana:8.5.27
kubesphere/kube-state-metrics:v2.3.0
directxman12/k8s-prometheus-adapter:v0.8.2
polardbx/polardbx-logstash:latest
docker.elastic.co/beats/filebeat:8.9.0

It is recommended to execute the following command to obtain the latest image versions for each PolarDB-X component, and update the CN, DN, CDC, and COLUMNAR images in the images.list:

curl -s "https://polardbx-opensource.oss-cn-hangzhou.aliyuncs.com/scripts/get-version.sh" | sh

The output will be as follows (using PolarDB-X V2.4.0 as an example):

CN polardbx/polardbx-sql:v2.4.0_5.4.19
DN polardbx/polardbx-engine:v2.4.0_8.4.19
CDC polardbx/polardbx-cdc:v2.4.0_5.4.19
COLUMNAR polardbx/polardbx-columnar:v2.4.0_5.4.19

Note: Due to network issue, if you are unable to download images from Dockerhub, you can also use the -i parameter to specify an external images.list file. Make sure to replace the image names in the external file with those from the designated image repository. For example, the image polardbx/polardbx-sql:latest corresponds to docker.mirrors.sjtug.sjtu.edu.cn/polardbx/polardbx-sql:latest in the designated repository.

results matching ""

    No results matching ""