Kubernetesポッドで動いているバックアップMadadbデータベースへの方法
9570 ワード
最も簡単な方法はバックアップ(および復元)MariADBデータベースを使用することですthe
mysqldump
tool . あなたがデータベースに大量のデータを持っていないとき、これは特に真実です.mysqldump
ほとんどのデータベースエンジンによってインポートできるように、本当に便利なSQL形式でデータをダンプします.詳細はthis MariaDB documentation .しかし、コンテナで実行中のデータベースをバックアップする方法は?まず、データベースを含むKubernetesポッドの名前を取得します.
ubuntu@ubuntu:~$ microk8s.kubectl get all
NAME READY STATUS RESTARTS AGE
pod/mediawiki-app-55f45cf568-gmpzv 1/1 Running 2 5d22h
pod/mediawiki-db-5cb8db589f-r6q8k 1/1 Running 0 5d23h
pod/my-nginx-9b596c8c4-4jp7d 1/1 Running 15 102d
pod/my-nginx-9b596c8c4-fnlm7 1/1 Running 2 12d
pod/my-nginx-9b596c8c4-hmz4r 1/1 Running 2 12d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 104d
service/mediawiki-db-srv NodePort 10.152.183.195 <none> 3306:31501/TCP 5d23h
service/mediawiki-srv NodePort 10.152.183.17 <none> 80:32681/TCP 28d
service/my-nginx-np NodePort 10.152.183.73 <none> 80:30178/TCP 102d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mediawiki-app 1/1 1 1 11d
deployment.apps/mediawiki-db 1/1 1 1 5d23h
deployment.apps/my-nginx 3/3 3 3 102d
NAME DESIRED CURRENT READY AGE
replicaset.apps/mediawiki-app-5494668f87 0 0 0 5d23h
replicaset.apps/mediawiki-app-55f45cf568 1 1 1 5d23h
replicaset.apps/mediawiki-app-75cb9c97d7 0 0 0 11d
replicaset.apps/mediawiki-db-5cb8db589f 1 1 1 5d23h
replicaset.apps/my-nginx-9b596c8c4 3 3 3 102d
ubuntu@ubuntu:~$
私のセットアップでは、それはmediawiki-db-5cb8db589f-r6q8k
私は知っているKubernetes Deployment manifest file , 私はマリアブ展開mediawiki-db
). 展開名を知っているので、IPアドレスを調べる必要があります.これを簡単に行うことができますkubectl describe
コマンドを実行してからmicrok8s, a lightweight Kubernetes variant , シェルのエイリアスを持っていませんmicrok8s.
; あなたが規則的なKubernetesを走らせているならば、ちょっと標準を使ってくださいkubectl
コマンド)ubuntu@ubuntu:~$ microk8s.kubectl describe pod mediawiki-db-5cb8db589f-r6q8k
Name: mediawiki-db-5cb8db589f-r6q8k
# -- snip --
IP: 10.1.49.32
IPs:
IP: 10.1.49.32
Controlled By: ReplicaSet/mediawiki-db-5cb8db589f
# -- snip --
Events: <none>
IPアドレスが単純であることを確認するには、ダブルアドレスをチェックすることができますping
コマンドubuntu@ubuntu:~$ ping 10.1.49.32
PING 10.1.49.32 (10.1.49.32) 56(84) bytes of data.
64 bytes from 10.1.49.32: icmp_seq=1 ttl=63 time=2.04 ms
64 bytes from 10.1.49.32: icmp_seq=2 ttl=63 time=0.615 ms
^C
--- 10.1.49.32 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.615/1.329/2.044/0.715 ms
ubuntu@ubuntu:~$
IPアドレスが存在し、生きていることを知った今、マリアDBデータベースが実際に実行されているかどうかを確認できます.これを行うには、mysql
そのPODの上でMariADBデータベースに接続するコマンド.私の場合はwikiuser
はデータベースのユーザ名です.10.1.49.32
対応するKubernetesポッドのIPアドレスですmy_wiki
は以前に作成したデータベースの名前です.ubuntu@ubuntu:~$ mysql -u wikiuser -p -h 10.1.49.32 my_wiki
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 160
Server version: 5.5.5-10.3.22-MariaDB-0+deb10u1 Raspbian 10
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
ubuntu@ubuntu:~$
すべてがよく見えるならば、あなたはmysqldump
以下に示すコマンド.コマンドはユーザ名を取得する(-u
を返します.-p
パスワードの切り替え(パスワード値を省略した場合).mysqldump
IPアドレス-h
スイッチとダンプするデータベースの名前.デフォルトではmysqldump
SQLステートメントを出力し、データベースを作成して標準出力に設定します.したがって、ファイルにバックアップするには、単に出力を任意のファイルまたは>
シェル演算子:ubuntu@ubuntu:~$ mysqldump -u wikiuser -p -h 10.1.49.32 my_wiki > my_wiki_backup.sql
Enter password:
ubuntu@ubuntu:~$ head -n 20 my_wiki_backup.sql
-- MySQL dump 10.13 Distrib 5.7.31, for Linux (aarch64)
--
-- Host: 10.1.49.32 Database: my_wiki
-- ------------------------------------------------------
-- Server version 5.5.5-10.3.22-MariaDB-0+deb10u1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `actor`
--
ubuntu@ubuntu:~$
Reference
この問題について(Kubernetesポッドで動いているバックアップMadadbデータベースへの方法), 我々は、より多くの情報をここで見つけました https://dev.to/duplys/how-to-backup-mariadb-database-running-in-a-kubernetes-pod-2pd6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol