簡単な紹介
このセクションでは、RookサービスをKubernetesクラスターにデプロイし、下部にあるCephストレージを使用する方法を紹介します。
予防
公式ドキュメントと同様に、この記事は「基本設定」と「クイックスタート」のみです。技術的な詳細と展開方法については、公式ドキュメントを参照してください。
この記事は参照用であり、クラスターをデプロイするときに実行する必要のある作業の概要を示していることに注意してください。
システム環境
この表は、Rookをデプロイするときの環境情報です。
システム環境: | CentOS Linuxリリース7.4.1708(コア) |
ソフトウェアバージョン: | ガバナーv1.12.1 |
ルーク: | リリース-1.0 |
(場合によっては、使用しているバージョンの直後に問題や機能が発生することがあります...)
環境要件
Rookをインストールする前に、クラスターがいくつかの条件を満たす必要があります。詳細については、公式の「前提条件」ドキュメントを参照してください。簡単な配置は次のとおりです。
#最小バージョン:Kubernetesv1.10以降である必要があります。
#権限とRBAC:クラスター内のストレージを管理するには、Rook権限を付与する必要があります。「ポッドセキュリティポリシーでのルークの使用」の詳細を確認して、「ポッドセキュリティポリシーがアクティブ化されているクラスタでルークを設定する」。
#FlexVolumeの構成:これは重要な手順の1つです。クラスター内の追加のストレージを管理するには、RookAgentをFlexVolumeプラグインとして設定する必要があります。RookボリュームプラグインをロードするようにKubernetesデプロイメントを設定するには、「release-1.0 / Flexボリューム設定」を参照してください。(私のクラスターはバージョン1.12であるため、これはRookの成功の鍵です。したがって、FlexVolumeを使用してのみマウントでき、1.13以降は、CSIドライバーを使用してマウントする必要があります)
#カーネルRBDモジュール:Rook CephはRBDモジュールを使用する必要があるため、RBDモジュールをロードする必要があります。(構成方法はスキップされます)
#カーネルモジュールディレクトリ:デフォルトのカーネルモジュールは/ lib / modulesディレクトリにあります。いくつかのディストリビューションは、異なるディレクトリを使用している場合は、それらを介して設定する必要がLIB_MODULES_DIR_PATHの環境変数またはのagent.libModulesDirPath舵演算子。(通常、この問題は発生しません。結局のところ、通常はCentOSディストリビューションを使用します)
#追加のエージェントディレクトリ:一部の特定のリリースでは、ホストディレクトリをエージェントにマウントする必要があります。helm-operatorでAGENT_MOUNTS環境変数またはagent.mounts変数を使用できます。(私はまだこの分野の需要に応えていません)
#LVMパッケージのインストール:LVMパッケージはすべてのストレージノードにインストールする必要があります。
#認証付きミラーウェアハウス:ミラーウェアハウスが認証されている場合は、対応するServiceAccountオブジェクトを変更する必要があります。(現在、この分野では需要がないため、スキップしてください)
#データの永続性:Rook Clusterは一部のデータを永続化する必要があるため、dataDirHostPathを使用してkubernetesホストにデータを保存する場合は、ホストに指定されたパスに少なくとも5GBの空き容量があることを確認する必要があります。
テスト環境の展開
次のコマンドを実行し、YAMLファイルを適用します(次のコマンドはテスト環境でのみ使用できることに注意してください)。
最初のステップは、作業ディレクトリを準備することです
#!/ bin / sh git clone https://github.com/rook/rook.git git checkout tags / release-1.0 -v release-1.0 cd cluster / examples / kubernetes / ceph
ステップ2:エージェントとオペレーターのコンポーネントをデプロイする
############################################## #### ########################################## ######## ############ # ############################# ######## ###################################### ############ ############ ############################# オペレーターのデプロイについては、ドキュメントを参照してください:https://github.com/rook/rook /blob/release-1.0/Documentation/ceph-examples.md kubectl create -f common.yaml kubectl create -f operator.yaml #rook-ceph-operator、rook-ceph -agent、rook-discoverを確認するこれらのポッドは実行状態。 kubectl -n rook-ceph get pod
3番目のステップは、Cephクラスターを作成することです
############################################## #### ########################################## ######## ############# クラスターを作成する ################################### #################################### ############## ############################# 前のステップのすべてのポッドが実行状態にあることを確認します #クラスター構成については、を参照してください。ドキュメント:https://github.com/rook/rook/blob/release-1.0/Documentation/ceph-cluster-crd.md kubectl create -f cluster-test.yaml #クラスターが正常に作成されたかどうかを確認します #番号を確認しますOSDポッドの数。これは、ノード、デバイス、および構成済みディレクトリの数によって異なります。 kubectl -n rook-ceph get pod
4番目のステップでは、クラスターのステータスを確認します
############################################## #### ########################################## ######## ############# クラスターの状態を確認する ###################### ######### ################################################## ################################################## ################################################## ################################################## #################### ############ ################## ############################ ###################### ####################### Rookツールボックスを使用するクラスターのヘルス情報を表示する#https ://github.com/rook/rook/blob/release- 1.0 / Documentation / ceph-toolbox.md
実稼働環境の展開
実稼働環境では、追加のストレージデバイスをノードに追加する必要があります。
テスト環境の展開では、ローカルストレージデバイスの要件を緩和して、クラスターを迅速に確立し、Rookをテストするための「テスト」環境として実行できるようにします。これにより、機器を必要とせずにディレクトリに「CephファイルストレージOSD」が作成されます。
実稼働環境では、testディレクトリの代わりにデバイスを構成するために、cluster-test.yamlファイルの代わりにcluster.yamlの例に従う必要があります。詳細については、「Cephの例」の例を参照してください。
参照
GitHub / rook / rook / Documentation / k8s-pre-reqs.md
CephStorageクイックスタート
マスター/ FlexVolume構成