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://blog.starbyte.co.uk/glusterfs-woes/
使い方はGitHubに上げといたので推測して使用してみてください。
https://github.com/Otazoman/BuildK8s
ここからようやく本題のk8sからの永続化で試す準備ができたので試していきます。
いきなり「 0-management: brick1.mount_dir not present」エラーが出て嵌りまくって調べたらShellスクリプトで吐き出していたhostsのホスト名が間違っていて少し困ったりしたが、それ以外は順調に事が運んだかなと思います。
コメント