アリクラウドKubernetesを使用してMySQLデータの永続化ストレージを実現--単一のインスタンス
6028 ワード
前提条件:は、アリクラウドコンテナサービスによってKubernetesを作成してクラスタを作成する必要があります. は、アリクラウドNASコンソールからファイルシステムを作成し、マウントポイントを追加する必要があります.Kubernetesクラスタがプライベートネットワークにある場合は、マウントポイント推奨もプライベートネットワークに追加され、Kubernetesと同じプライベートネットワークを処理します.Kubernetesクラスタネットワークが作成したマウントポイントにアクセスできることを保証すれば、クラシックネットワーク、または他のプライベートネットワークも使用できます.1つのファイルシステムで複数のマウントポイントを作成できます.
操作手順:
コンテナサービス管理画面で「ストレージボリューム」をクリックし、「作成」をクリックします.
【NAS】タイプを選択し、【データボリューム名】を入力し、作成するスペース【総量】を入力し、【ReadWriteOnce】アクセスモードを選択し、【マウントポイントドメイン名】を入力し、サブディレクトリを指定します.
マウントポイントドメイン名:このドメイン名はNASコンソールから取得されます.
ReadWriteOnce:単一ノードのみが読み書きでマウントされます.
サブディレクトリ:デフォルトはルートディレクトリで、テストで名前を指定する必要があります.そうしないと、データベースは初期化時に「chown:changing ownership of'/var/lib/mysql/':Operation not permitted」と報告されます.
コンテナサービス管理画面で「ストレージボリューム」をクリックし、「ストレージ宣言」をクリックし、「作成」をクリックします.
注:ストレージは、アプリケーションに必要な「名前空間」に宣言する必要があります.デフォルトは「default」で、他の名前空間の場合は自分で作成する必要があります.
【NAS】を選択し、【名前】を入力して【既存のストレージボリュームモード】を選択し、最後に作成したばかりのストレージボリュームを選択すればよい.
作成したPVとPVCをコマンドラインで確認します.
生産資源構成表プロファイルを作成します.
「pod.spec.volumes」でvolumeを作成し、作成したvolumeを「pod.spec.containers.volumeMounts」でマウントします.
MySQLが正常かどうかをテストします.
データの永続化をテストします.
作成したばかりのpodを削除し(コントローラを一緒に削除)、新しいpodを作成します.このとき、既存のデータを使用します.
MySQLに古いデータを使う必要がある場合は、MYSQLを注釈するだけです.ROOT_PASWORD変数でいいです.新しいリソースリストのプロファイルは以下の通りです.
データベース検証にログインし、前にk 8 sという新しいライブラリを作成しました.
アリ雲NASの簡単な使用説明.
【地域】を選択し、【ファイルシステム】をクリックし、【ファイルシステムの作成】をクリックします.
ファイルシステムインタフェースを作成するには、次のようにします.
地域:デフォルトでは選択したばかりの地域ですが、変更することもできます.
ストレージタイプ:データベースの場合はSSDが推奨されますが、その他は状況に応じて変更されます.
プロトコルタイプ:NFS(Linux用).
使用可能領域:任意.
ストレージ・パッケージ:ある場合は(購入が必要)を選択して、ストレージ・スペースを相殺し、ストレージ・パッケージがない場合は量単位で料金を支払うことができます.
ファイルシステムを作成したら【マウントポイントの追加】をクリックします.
インタフェースは以下の通りです.
マウント占有タイプ:パブリックネットワークに置く場合はクラシックネットワーク、VPCネットワークに置く場合はプライベートネットワークを選択します.Kubernetesがプライベートネットワークにいる場合は、プライベートネットワークの選択をお勧めします.この作成が完了すると、異なるネットワークに複数のマウントポイントを作成することもできます.
VPCネットワーク:独自のネットワークを選択するとこのオプションがあり、自動的にロードされ、選択するだけです.
スイッチ:独自のネットワークスイッチで、同様に独自のネットワークを選択する必要があります.自動的にロードされ、選択するだけです.
≪権限グループ|Privileges Group|ldap≫:特別な要件がない場合は、デフォルトのすべての許可を使用します.
作成したファイルシステム【管理】をクリックして下の画面に入ります
KubernetesでNASストレージボリュームを追加するときにこのマウントポイントが必要です.ドメイン名で、マウスを上に移動するとmountコマンドでマウントする方法が表示されます.
[マウントポイントを追加]をクリックして追加を続行することもできます.
転載先:https://blog.51cto.com/270142877/2365489
操作手順:
コンテナサービス管理画面で「ストレージボリューム」をクリックし、「作成」をクリックします.
【NAS】タイプを選択し、【データボリューム名】を入力し、作成するスペース【総量】を入力し、【ReadWriteOnce】アクセスモードを選択し、【マウントポイントドメイン名】を入力し、サブディレクトリを指定します.
マウントポイントドメイン名:このドメイン名はNASコンソールから取得されます.
ReadWriteOnce:単一ノードのみが読み書きでマウントされます.
サブディレクトリ:デフォルトはルートディレクトリで、テストで名前を指定する必要があります.そうしないと、データベースは初期化時に「chown:changing ownership of'/var/lib/mysql/':Operation not permitted」と報告されます.
コンテナサービス管理画面で「ストレージボリューム」をクリックし、「ストレージ宣言」をクリックし、「作成」をクリックします.
注:ストレージは、アプリケーションに必要な「名前空間」に宣言する必要があります.デフォルトは「default」で、他の名前空間の場合は自分で作成する必要があります.
【NAS】を選択し、【名前】を入力して【既存のストレージボリュームモード】を選択し、最後に作成したばかりのストレージボリュームを選択すればよい.
作成したPVとPVCをコマンドラインで確認します.
[yuyan@registry:~]
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
mysql-data 20Gi RWO Retain Bound test/mysql-data nas 44s
[yuyan@registry:~]
$ kubectl get -n test pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
mysql-data Bound mysql-data 20Gi RWO nas 36s
生産資源構成表プロファイルを作成します.
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: test
name: mysql-test
spec:
replicas: 1
selector:
matchLabels:
app: mysql-test
template:
metadata:
namespace: test
name: mysql-test
labels:
app: mysql-test
spec:
containers:
- name: mysql-test
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: "!gogen123"
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql/
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql-data
「pod.spec.volumes」でvolumeを作成し、作成したvolumeを「pod.spec.containers.volumeMounts」でマウントします.
MySQLが正常かどうかをテストします.
$ kubectl exec -ti -n test mysql-test-99bd46dbc-ttqkn -- mysql -uroot -p'!gogen123'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> create database k8s;
Query OK, 1 row affected (0.02 sec)
データの永続化をテストします.
作成したばかりのpodを削除し(コントローラを一緒に削除)、新しいpodを作成します.このとき、既存のデータを使用します.
MySQLに古いデータを使う必要がある場合は、MYSQLを注釈するだけです.ROOT_PASWORD変数でいいです.新しいリソースリストのプロファイルは以下の通りです.
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: test
name: mysql-test
spec:
replicas: 1
selector:
matchLabels:
app: mysql-test
template:
metadata:
namespace: test
name: mysql-test
labels:
app: mysql-test
spec:
containers:
- name: mysql-test
image: mysql:5.7
#env:
#- name: MYSQL_ROOT_PASSWORD
# value: "!gogen123"
volumeMounts:
- name: mysql-data
mountPath: /var/lib/mysql/
volumes:
- name: mysql-data
persistentVolumeClaim:
claimName: mysql-data
データベース検証にログインし、前にk 8 sという新しいライブラリを作成しました.
$ kubectl exec -ti -n test mysql-test-75fbc84b9f-kpjwc -- mysql -uroot -p'!gogen123'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| k8s |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.02 sec)
mysql>
アリ雲NASの簡単な使用説明.
【地域】を選択し、【ファイルシステム】をクリックし、【ファイルシステムの作成】をクリックします.
ファイルシステムインタフェースを作成するには、次のようにします.
地域:デフォルトでは選択したばかりの地域ですが、変更することもできます.
ストレージタイプ:データベースの場合はSSDが推奨されますが、その他は状況に応じて変更されます.
プロトコルタイプ:NFS(Linux用).
使用可能領域:任意.
ストレージ・パッケージ:ある場合は(購入が必要)を選択して、ストレージ・スペースを相殺し、ストレージ・パッケージがない場合は量単位で料金を支払うことができます.
ファイルシステムを作成したら【マウントポイントの追加】をクリックします.
インタフェースは以下の通りです.
マウント占有タイプ:パブリックネットワークに置く場合はクラシックネットワーク、VPCネットワークに置く場合はプライベートネットワークを選択します.Kubernetesがプライベートネットワークにいる場合は、プライベートネットワークの選択をお勧めします.この作成が完了すると、異なるネットワークに複数のマウントポイントを作成することもできます.
VPCネットワーク:独自のネットワークを選択するとこのオプションがあり、自動的にロードされ、選択するだけです.
スイッチ:独自のネットワークスイッチで、同様に独自のネットワークを選択する必要があります.自動的にロードされ、選択するだけです.
≪権限グループ|Privileges Group|ldap≫:特別な要件がない場合は、デフォルトのすべての許可を使用します.
作成したファイルシステム【管理】をクリックして下の画面に入ります
KubernetesでNASストレージボリュームを追加するときにこのマウントポイントが必要です.ドメイン名で、マウスを上に移動するとmountコマンドでマウントする方法が表示されます.
[マウントポイントを追加]をクリックして追加を続行することもできます.
転載先:https://blog.51cto.com/270142877/2365489