内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
06_virtualization
»
05_container
»
20 Kubernetes GlusterFS Galera Wordpress
トレース:
06_virtualization:05_container:20_kubernetes_glusterfs_galera_wordpress
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 20 Kubernetes GlusterFS Galera Wordpress ====== Kubernetes を使って Galeraで冗長化されたDB、GlusterFSで冗長化されたディスクを利用して 冗長化されたWordpressを作って完全冗長化してみる。 ===== 1.GlusterFS ===== GlusterFSは、[[06_virtualization:05_container:18_kubernetes_glusterfs|こちら]] で作成したボリュームにディレクトリを作成して利用する。 ==== wordpress用ディレクトリ ==== <code> mount.glusterfs localhost:k8s-volume /mnt mkdir /mnt/wordpress/ # ls /mnt/ pv01 wordpress </code> ==== PV ==== <code|wordpress-pv.yaml> apiVersion: v1 kind: PersistentVolume metadata: name: wordpress-pv labels: name: wordpress-pv spec: accessModes: - ReadWriteMany capacity: storage: 1Gi glusterfs: endpoints: glusterfs path: k8s-volume/wordpress readOnly: false </code> === 作成 === kubectl create -f wordpress-pv.yaml ==== PVC ==== <code|wordpress-pvc.yaml> apiVersion: v1 kind: PersistentVolumeClaim metadata: creationTimestamp: null labels: io.kompose.service: wordpress-pvc name: wordpress-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi selector: matchLabels: name: wordpress-pv status: {} </code> === 作成 === kubectl create -f wordpress-pvc.yaml ===== 2.Galera ===== このGaleraはダウンしても、起動してきたとき勝手に同期してよく出来てます。 Galeraは、下記を利用 [[https://github.com/bitnami/charts/tree/master/bitnami/mariadb-galera/]] ==== repository ==== helm repo add bitnami https://charts.bitnami.com/bitnami ==== install ==== 今回は、PVなしで、DB(wordpress)を作成してインストール ※本番では、persistence.existingClaimでPVCを指定して利用する。 |root password|root_password| |db.name|wordpress| |db.user|wp_user| |db.password|wp_pass| <code> helm install my-release \ --set persistence.enabled=false \ --set rootUser.password=root_password \ --set db.user=wp_user \ --set db.password=wp_pass \ --set db.name=wordpress \ bitnami/mariadb-galera </code> ==== 確認 ==== serviceのClusterIPは、次のwordpressデプロイで利用します。 <code> # kubectl get svc my-release-mariadb-galera NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-release-mariadb-galera ClusterIP 10.110.173.32 <none> 3306/TCP 89m # kubectl get pod -l app.kubernetes.io/name=mariadb-galera NAME READY STATUS RESTARTS AGE my-release-mariadb-galera-0 1/1 Running 1 (48m ago) 75m my-release-mariadb-galera-1 1/1 Running 0 74m my-release-mariadb-galera-2 1/1 Running 0 74m </code> <code> # kubectl exec -it my-release-mariadb-galera-0 -- bash $ mysql -u root -p MariaDB [(none)]> show status like 'wsrep_local_state_comment'; +---------------------------+--------+ | Variable_name | Value | +---------------------------+--------+ | wsrep_local_state_comment | Synced | +---------------------------+--------+ 1 row in set (0.002 sec) MariaDB [(none)]> show status like 'wsrep_cluster_size'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | wsrep_cluster_size | 3 | +--------------------+-------+ 1 row in set (0.001 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | | wordpress | +--------------------+ 6 rows in set (0.038 sec) </code> ===== 3.Wordpress ===== [[#1.GlusterFS]]で作成した wordpress-pvc をwordpress の/var/www/htmlでマウントする。 <code|wordpress.yaml> apiVersion: apps/v1 kind: Deployment metadata: name: wordpress labels: app: wordpress spec: replicas: 1 selector: matchLabels: app: wordpress template: metadata: labels: app: wordpress spec: containers: - image: wordpress name: wordpress env: - name: WORDPRESS_DB_HOST value: 10.110.173.32:3306 - name: WORDPRESS_DB_USER value: wp_user - name: WORDPRESS_DB_PASSWORD value: wp_pass ports: - containerPort: 80 name: wordpress volumeMounts: - name: wordpress-local-storage mountPath: /var/www/html volumes: - name: wordpress-local-storage persistentVolumeClaim: claimName: wordpress-pvc </code> ==== 作成 ==== kubectl create -f wordpress.yaml ===== 4.ExternalIp用意 ===== これで外部から見えるようになります。 後は、このexternalIPsをグローバルIPからロードバランスするだけ。 <code> wordpress-externalip.yaml apiVersion: v1 kind: Service metadata: name: external-ip spec: type: ClusterIP externalIPs: - 172.16.0.93 - 172.16.0.153 - 172.16.0.166 ports: - name: cluster-port port: 8080 targetPort: 80 selector: app: wordpress </code> ==== 作成 ==== kubectl create -f wordpress-externalip.yaml {{tag>Kubernetes GlusterFS Galera Wordpress }}
06_virtualization/05_container/20_kubernetes_glusterfs_galera_wordpress.txt
· 最終更新: 2022/04/20 13:58 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ