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
- Kubernetes, Docker (18.04 and above), Yum repository, and Python3 have installed in the offline environment.
- Prepare a machine with internet access and install PXD version 0.5.0 or above. Refer to the documentation: https://doc.polardbx.com/quickstart/topics/quickstart.html
Software Package Download
- 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, supportingpxd
andk8s
, default isk8s
.-arch
: The architecture type of the offline installation package, supportingamd64
andarm64
.-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 apolardbx-install
directory under the directory specified by thedest
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 animages.list
file, modify the default image addresses, and use other image sources for download. The content ofimages.list
is detailed in the software package description.
- 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.
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.7.0
polardbx/xstore-tools:v1.7.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.
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.7.0
polardbx/polardbx-exporter:v1.7.0
polardbx/polardbx-hpfs:v1.7.0
polardbx/polardbx-init:v1.7.0
polardbx/polardbx-clinic:v1.7.0
polardbx/xstore-tools:v1.7.0
polardbx/probe-proxy:v1.7.0
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.