MySQL Kubernetes 运算符发行说明
MySQL Shell
MySQL 路由器
可以使用 MySQL Shell 或 MySQL Kubernetes 运算符创建的数据库转储来初始化 MySQL InnoDB 集群。备份可以驻留在集群可访问的持久卷上,但我们的示例使用 OCI 对象存储桶。
使用 OCI 对象存储桶
如果从 OCI OS 引导,则必须知道以下内容:
具有访问 OCI OS 权限的用户的凭据
-
OCI OS 对象前缀(充当目录)。必须设置以下 Helm 变量
initDB.dump.name
: 转储的名称,遵循 Kubernetes 为命名标识符制定的规则,例如 dump-20210916-140352。initDB.dump.ociObjectStorage.prefix
: 上述列表中的前缀initDB.dump.ociObjectStorage.bucketName
: 上述列表中的存储桶名称-
initDB.dump.ociObjectStorage.credentials
: Kubernetes 密钥的名称,其中包含访问 OCI OS 存储桶的凭据对于凭据密钥,需要以下信息:OCI OS 用户名、指纹、租户名称、区域名称、密码和用户的私钥。
OCI OS 存储桶名称
OCI 命令行工具在 $HOME/config
的 [DEFAULT]
部分提供此信息。获取后,执行
export NAMESPACE="mynamespace"
export OCI_CREDENTIALS_SECRET_NAME="oci-credentials"
export OCI_USER="..." # like ocid1.user.oc1....
export OCI_FINGERPRINT="..." # like 90:01:..:..:....
export OCI_TENANCY="..." # like ocid1.tenancy.oc1...
export OCI_REGION="..." # like us-ashburn-1
export OCI_PASSPHRASE="..." # set to empty string if no passphrase
export OCI_PATH_TO_PRIVATE_KEY="..." # like $HOME/.oci/oci_api_key.pem
kubectl -n $NAMESPACE create secret generic $OCI_CREDENTIALS_SECRET_NAME \
--from-literal=user="$OCI_USER" \
--from-literal=fingerprint="$OCI_FINGERPRINT" \
--from-literal=tenancy="$OCI_TENANCY" \
--from-literal=region="$OCI_REGION" \
--from-literal=passphrase="$OCI_PASSPHRASE" \
--from-file=privatekey="$OCI_PATH_TO_PRIVATE_KEY"
创建了 OCI 密钥后,现在创建将从 OCI OS 中的转储初始化的集群
export NAMESPACE="mynamespace"
export OCI_DUMP_PREFIX="..." # like dump-20210916-140352
export OCI_BUCKET_NAME="..." # like idbcluster_backup
export OCI_CREDENTIALS_SECRET_NAME="oci-credentials"
kubectl create namespace $NAMESPACE
helm install mycluster mysql-operator/mysql-innodbcluster \
--namespace $NAMESPACE \
--set credentials.root.user='root' \
--set credentials.root.password='sakila' \
--set credentials.root.host='%' \
--set serverInstances=3 \
--set routerInstances=1 \
--set initDB.dump.name="initdb-dump" \
--set initDB.dump.ociObjectStorage.prefix="$OCI_DUMP_PREFIX" \
--set initDB.dump.ociObjectStorage.bucketName="$OCI_BUCKET_NAME" \
--set initDB.dump.ociObjectStorage.credentials="$OCI_CREDENTIALS_SECRET_NAME"