Closed aokabin closed 5 years ago
追加できてた 利用できるかはまだ検証していない、どうやってアクセスするんだろう?
そしてこんな感じで作成してみる
そしてLocal Volumeを使ったPodを定義するためのyaml https://gist.github.com/aokabin/47dd5ae511f6a8676c441f3e6a0c54ce
Claimとやらも必要らしい、Volumeも?
ちょっとわかりづらいけど、上記はネームスペース選んだ後のページにある
うまくいきそうだったけど失敗している
調べてみたところ
同じNodeじゃないと動いてくれないみたい、node指定したら動くかな
もしかしたら、volume: true
ってのがダメだったかもなので、hostnameを指定してみる
kubernetes.io/hostname: anago
→ createしたけど、同じエラー
読むとこ間違えてたかも、nodeSelectorじゃないかなもしかして → エラーは変わったけど、うーん。。。 hostnameを指定するようにしても変わらないな...
persistent volumeにて、hostname以外が指定できなかったけど、新しく作ったらいけた そっちのvolumeを使うように設定してみる → 雰囲気は行けてそう、立ち上がってないけど
capacityが0なのが気になるけどな...
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
anago-sample-volume Pending sample 0 2m
anago-volume Pending anago-storage 0 57m
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
anago-storage 10Gi RWO Retain Available local-storage 1h
sample 10Gi RWO Retain Available local-storage 5m
もしかして、/mnt
以下じゃないといけないのかな?
と思って/mnt/disks/vol1
とか作ってみたけどダメだった...
node affinityなのかなぁー、うまくいってないのかなー
diskを指定しているからか!パスの指定にしてみよう!
パスで、must be exist directoryで失敗した
nodeじゃなくてhostnameの指定でどうだろうか
→ hostnameだと 0/8 nodes are available: 8 node(s) had volume node affinity conflict.
つまり、 参照できてないってことだと思う
kubernetes.io/hostnameだとどうだろうか
→ MountVolume.SetUp failed for volume "anago-pv" : hostPath type check failed: /home/rancher-storage is not a directory
うーん、ディレクトリなんだけどなぁ
関わらず作成する方向でやってみる
再作成手順
お、なければ作るオプションで、作成できたぞい、でもどのnodeにpodがあるのか確認したいところ
無ければ作るオプションで作成できたし、podはanagoにアサインされている事を確認した nginxの中に入ってtouchしたファイルもちゃんとみれる
けど、なんであるのにない扱いだったんだろう...?
やったことのまとめとしては
kubernetes.io/hostname in anago
最後に、nodeのlabelを変更してもできるかを検証して、nfsとかに移行する
labelでもちゃんとanagoを指定できた!
GlusterFSも良さそうだけど、今回はそこまでやる必要ない気がするので、nfsでやることにしよう
NFS
おそらく、nfsを構築して、あげれば、pvとvcの設定は前と同じだと思うので、nginxをデプロイとかしてみよう
nfsを作る
最初にHDDをマウント 以下のコマンドを実行して、USB接続時と切断時に変わるやつを見つける
ls /dev/sd*
起動するたびに変わるかも
そしてUUIDを取得
blkid
HDDのUUIDを取得して
# vi /etc/fstab
UUID=<ここにUUID> /mnt/anago-nfs ext4 defaults 1 2
これで、自動マウントされる
mountしたら、nfsサーバーを立てる
サーバー側で設定したところ、macから接続できない ポートスキャンとか試すも、ポートは空いている
ポートを固定しろとあったので試す
そして、firewall-cmdで解放する
# firewall-cmd --list-all
ports: 2379/tcp 2380/tcp 6443/tcp 2376/tcp 8472/tcp 9099/tcp 10250/tcp 80/tcp 443/tcp 10254/tcp 30000-32767/tcp 111/tcp 32803/tcp 32769/udp 892/udp 892/tcp 662/tcp 662/udp 2049/udp 2049/tcp
こんな感じかな
そしたらsystemctl start rpcbind nfs-server nfs
して
接続
sudo mount_nfs -v -P 10.0.0.0:/mnt/nfs /Volumes/nfs
行けた!けど権限がない!
ユーザー権限、rootにしてると思ったんだけど、なぜか見れなかったディレクトリ 権限を755にしたら見れるようになった
じゃあHDD内にrancher-storage作って、そいつをnfsにしてしまうかな
何れにせよ、rootじゃないと書き込めないのはちょっと怖い、怪しい やっぱり、ちゃんと権限まわり整理しないと怖いな...
と思ったので、rancher-storageはnobod:nogroupで設定しようと思ったのだけど
nogroupがCentOSにはなさそうだった、どうしよう、いけんのかな
CentOSにおいては、nobodyがそのままgroupになる感じ?
やってみた、exportsも一応ちょっと広めにとってマウントできたけど、まだ書き込みできない
rancher-storageを777にしてみるも、ダメ... macの管理者権限では書き込めることを確認、一般ユーザーでも書き込みしたいなぁ
vi /etc/idmapd.conf
のDomainのところをちゃんと書いてみた
exports -v
で、nfsで公開している情報が確認できるらしい
ちょっとミスってた
とはいえ接続できなし
UIDとGIDを変更してみる
もともと1000:1000
だった
ダメそう...?
どうしても難しいけど、それぞれのアカウントでnfs用意してあげればもしかしたら大丈夫かも
macからはrootになれば読み書きできるから一旦いいや
Rancher2.0をつかって、研究室にGitlabを導入してみる - OthloBlog - オスロブログ -
このページを参考にNFS使ってみる
ポートもちゃんと指定する(80,443,22)
/etc/gitlab: gitlab/config
/var/log/gitlab: gitlab/log
/var/opt/gitlab: gitlab/data
deploymentが動いているのはわかるんだけど、どうやってアクセスすればいいかがわからない...
http://localhost:8001/k8s/clusters/c-l5hc5/api/v1/namespaces/default/services/my-gitlab/proxy/
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "no endpoints available for service \"my-gitlab\"",
"reason": "ServiceUnavailable",
"code": 503
}
http://localhost:8001/k8s/clusters/c-l5hc5/api/v1/namespaces/default/services/my-gitlab:80/proxy →つながりそうだったんだけど、SSLエラーの表示。。。 kubernetes側の問題なのでは...?
proxyを使わずに直接アクセスしたらいけた! ログとかもちゃんと更新されている様子だった! というわけで、ストレージの追加に成功したので、ここでclose
まとめ
# /etc/exports
/mnt/anago-nfs/rancher-storage 10.0.0.0/8(rw,insecure,async,no_root_squash,fsid=0)
http://\<hostname>/k8s/clusters/\<cluster id>/api/v1/namespaces/\<namespace>/services/\<service name>:\<port>/proxy
Rancherのクラスタで利用可能なストレージをassignする