Kubernetesお勉強その5【環境構築】GlusterFSインストールShellスクリプト準備

 前回はKubernetesのコントロールプレーン3台にGlusterFSを載せるという暴挙をやったわけですが、kubernetesからの接続で思わぬトラブルがあったので、やはりkubernetesサーバとは別のサーバでGlusterFSで動かそうということで、kubernetesサーバの前段で動かしているHA-ProxyサーバでGlusterを2台構成で動かすことにしました。






赤枠で囲ったところにGlusterFSを載せこみます。新しくディスクを準備すると空き容量が減るので「/」にglusterfsというディレクトリを切ってそこをGlusterの利用ディレクトりにします。(repricaでの2台構成も、専用ディスク準備しないのも同居させるのも非推奨なのでよいこのみんなは真似しないようにしましょう)コマンドを叩くのもあれなのでShellスクリプトにしました。


◆Shellスクリプト

#bin/bash

CMDNAME=`basename $0`

if [ $# -ne 7 ]; then
  echo "Usage: ${CMDNAME} networkaddress glusterpath lb1 lb2 nodetype" 1>&2
  exit 1
fi

NODETYPE=$1    # Gluster NodeType
NETWORK=$2     # Setting CIDR
GLUSTERPATH=$3 # glusterfs mount path
SUBPATH=$4     # glusterfs directory path
VOLUMENAME=$5  # glusterfs volumename
LB1_NAME=$6    # loadbarancer1 hostname
LB2_NAME=$7    # loadbarancer2 hostname

#Open fireWall
sudo ufw allow from ${NETWORK} to any port 111
sudo ufw allow from ${NETWORK} to any port 2409
sudo ufw allow from ${NETWORK} to any proto tcp port 24007:24020
sudo ufw allow from ${NETWORK} to any proto tcp port 38465:38490
sudo ufw allow from ${NETWORK} to any proto tcp port 49152:49199

#Gluster Install
sudo apt -y install glusterfs-server
sudo systemctl enable glusterd
sudo systemctl start glusterd

cd /
sudo mkdir -p /${GLUSTERPATH}
sudo mkdir -p /${GLUSTERPATH}/${SUBPATH}
GFPATH=/${GLUSTERPATH}/${SUBPATH}

if [ "$NODETYPE" = "primary" ]; then
    sudo gluster peer probe ${LB2_NAME}
    sudo gluster peer status | grep Uuid
    if [ $? = 0 ]; then
       sleep 30
       sudo gluster volume create ${VOLUMENAME} replica 2 transport tcp ${LB1_NAME}:${GFPATH} ${LB2_NAME}:${GFPATH} force
    fi
    sudo sudo gluster vol info | grep ${VOLUMENAME}
    if [ $? = 0 ]; then
       sudo gluster volume start ${VOLUMENAME}
    fi
fi

# mount glusterfs
sudo mkdir -p /mnt/${VOLUMENAME}
echo "# glustervolume" | sudo tee -a /etc/fstab
echo "${LB1_NAME}:/${VOLUMENAME} /mnt/${VOLUMENAME} glusterfs defaults,_netdev,backupvolfile-server=${LB2_NAME} 1 2" | sudo tee -a /etc/fstab


◆参考サイト

・2台構成

https://qiita.com/tomoten/items/81a23ec009816181044b

https://web.chaperone.jp/w/index.php?GlusterFS/replica


・プールからサブノード外すコマンド

https://access.redhat.com/documentation/ja-jp/red_hat_gluster_storage/3.5/html/administration_guide/removing_servers_from_the_trusted_storage_pool


・トラブルシュート

https://blog.starbyte.co.uk/glusterfs-woes/


使い方はGitHubに上げといたので推測して使用してみてください。

https://github.com/Otazoman/BuildK8s

ここからようやく本題のk8sからの永続化で試す準備ができたので試していきます。

いきなり「 0-management: brick1.mount_dir not present」エラーが出て嵌りまくって調べたらShellスクリプトで吐き出していたhostsのホスト名が間違っていて少し困ったりしたが、それ以外は順調に事が運んだかなと思います。

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)