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 مراجعه کنید.