پرش به مطلب اصلی

MariaDB

MariaDB یک سیستم مدیریت پایگاه داده‌ی رابطه‌ای و متن‌باز است که معمولن به‌عنوان جایگزینی برای MySQL شناخته می‌شود. یکی از مهم‌ترین مزایای MariaDB نسبت به MySQL بهبود کارایی و مقیاس‌پذیری آن است. MariaDB بهینه سازی‌های زیادی در کد اصلی MySQL انجام داده است که باعث اجرای سریع‌تر کوئری‌ها و بهبود کارایی آن شده است.

در کانتینر ابری آروان‌کلاد با استفاده از اپراتورها، امکان نصب و مدیریت MariaDB را خواهید داشت. برای این اپراتورها از نسخه‌ی ۰.۰.۲۹ پروژه‌ی MariaDB استفاده شده است.

راه‌اندازی MariaDB

فایل زیر را با یک نام دل‌خواه مانند mariadb.yaml ذخیره کنید:

apiVersion: k8s.mariadb.com/v1alpha1
kind: MariaDB
metadata:
name: mariadb
spec:
rootPasswordSecretKeyRef:
name: mariadb
key: root-password
generate: true

username: mariadb
passwordSecretKeyRef:
name: mariadb
key: password
generate: true
database: mariadb

image: mariadb:10.11.7
imagePullPolicy: IfNotPresent

port: 3306

storage:
size: 1Gi

service:
type: ClusterIP
# type: LoadBalancer
# metadata:
# annotations:
# metallb.universe.tf/loadBalancerIPs: 172.18.0.20

myCnf: |
[mariadb]
bind-address=*
default_storage_engine=InnoDB
binlog_format=row
innodb_autoinc_lock_mode=2
max_allowed_packet=256M

metrics:
enabled: false

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f mariadb.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

توجه داشته باشید برای استفاده از spec.passwordSecretKeyRef.generate=true و عملکرد درست MariaDB باید Secret را ویرایش و مقدار password:BASE64 را به آن اضافه و سپس پاد را حذف کنید.

پیکربندی دیتابیس MariaDB

فایل زیر را با یک نام دل‌خواه مانند database.yaml ذخیره کنید:

apiVersion: k8s.mariadb.com/v1alpha1
kind: Database
metadata:
name: data-test
spec:
# If you want the database to be created with a different name than the resource name
# name: data-custom
mariaDbRef:
name: mariadb
characterSet: utf8
collate: utf8_general_ci
requeueInterval: 30s
retryInterval: 5s

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f database.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

ساخت کاربر در MariaDB

فایل زیر را با یک نام دل‌خواه مانند user.yaml ذخیره کنید:

apiVersion: k8s.mariadb.com/v1alpha1
kind: User
metadata:
name: user
spec:
# If you want the user to be created with a different name than the resource name
# name: user-custom
mariaDbRef:
name: mariadb
passwordSecretKeyRef:
name: mariadb
key: password
# This field is immutable and defaults to 10
maxUserConnections: 20
host: "%"
retryInterval: 5s

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f user.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

مدیریت دسترسی‌ها در MariaDB

فایل زیر را با یک نام دل‌خواه مانند grant.yaml ذخیره کنید:

apiVersion: k8s.mariadb.com/v1alpha1
kind: Grant
metadata:
name: grant
spec:
mariaDbRef:
name: mariadb
privileges:
- "SELECT"
- "INSERT"
- "UPDATE"
# - "ALL PRIVILEGES"
database: "*"
table: "*"
username: user
grantOption: true
host: "%"
requeueInterval: 30s
retryInterval: 5s

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f grant.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

برای بررسی جزییات و نمونه‌های بیش‌تر به مستندات اپراتور MariaDB مراجعه کنید.