AnsibleではじめるRook/Ceph with TopoLVM
はじめに
TopoLVMをCSIに用いてRook/CephをK8sクラスタの構築から全自動で行うAnsible-Playbookを作成したので,簡単な使い方などを紹介していきたいと思います.
本PlayBookではHAProxyとKeepalivedを用いてマルチMaster構成のK8sクラスタが自動構築された後,Rook/Cephが自動起動するものです.
使い方
以下のGitHubリポジトリでPlaybookを公開しています.
最新の使い方などはGitHubリポジトリのドキュメントに記載されています.この記事は参考程度にし,GitHubリポジトリのドキュメントを必ず読んでから使用してください.
動作環境
使用する上で動作を確認した環境を記載します. メモリ量やCPUコア数は各自の環境に合わせて設定してください また,クライアントはMacOS搭載のマシンを使用しました sshの公開鍵認証の設定もansibleで行うため,sshpassが必要です. 事前にクライアントマシンにインストールしておいてください.
必須条件
以下の構成で動作検証を行いました. 参考にしてください.
K8s Master VM | K8s Worker VM | |
---|---|---|
VM台数 | 3 | 6 |
メモリ容量 | 6GB | 12GB |
CPUコア数 | 4 vcpu | 4 vcpu |
OS | Ubuntu Serever 18.04 | Ubuntu Serever 18.04 |
OSドライブ以外のVM毎のデバイス数 | 0 | 3 |
OSドライブ以外の一つのデバイス容量 | x | 20GB |
構築手順
- 以下三つの情報が必要です.
準備できたら以下のコマンドを実行します.
$ ./create.sh $SSH_CONF_PATH $SSH_KEY_PATH $VM_SUDO_PASS $KUBE_VIP New Vault password: Confirm New Vault password: Encryption successful SSH password: Vault password:
vmのsudoパスワードはansible-vaultで暗号化されるようになっています. 暗号化に使用するパスワードを入力してください.
また,$SSH_CONF_PATHと$SSH_KEY_PATHは絶対パスである必要があります. KUBE_VIPは未使用のIPアドレスを指定してください.
cephfsとrbdを構築できるようになっているので,rbdを構築したい場合は以下のように「rbd」オプションをつけてください.
$ ./create.sh $SSH_CONF_PATH $SSH_KEY_PATH $VM_SUDO_PASS $KUBE_VIP rbd
削除
$ ansible-playbook -i hosts delete-cluster.yaml
おわりに
GitHubリポジトリのドキュメントには3台のVMで実行する方法も記載していますので,ちゃれんじしてみてください. 検証などで使用できれば幸いです.