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のホスト名が間違っていて少し困ったりしたが、それ以外は順調に事が運んだかなと思います。
コメント