レッドハットでストレージを中心にクラウドインフラを生業にしているウツノミヤです。さあイッテンヨンまで後1ヶ月になりました。ICの方が盛り上がってるんですよね...リマッチなのに。このあたりいつも饒舌な内藤選手が何も喋らないことでうまくメディアと世論をコントロールしてる感じがします。あとみんな二冠二冠と言い出したから、IWGPヘビー級のベルトが二冠のための手段に扱われてちょっと相場が下がってる感があるのも否めないかな。これは個人的なアレですけど。プロレスの話はこれくらいにしといて、Rookアドカレ、見ていただいていますか?今年はじめてアドカレやってますが、もう4日目にしてヒイヒイ言っとるウツノミヤです。全部俺系の人は引き出しがヤバいですね。(RGW)はい、てなわけで今回はRook-Cephをオブジェクトストレージで使う方法を紹介します。Cephは本質的にRADOSがオブジェクトストアなわけで、当然オブジェクトストレージとして使えます。libradosというライブラリを使うとRADOSに直接オブジェクトをPUT/GETできるんだけど、いやー無理っすな感じですよね。APIがもうデファクトなんだから。Gateway(RGW)というクライアントからRADOSへS3でアクセスするためのインターフェースとなるコンポーネントがあります。左のオレンジ色のやつがRGWそれではこいつをRook-Cephでデプロイしてみましょう。KubernetesとRook-Cephの環境はざっくり次のとおりですが、詳細はこちらの12/1と12/3の記事をご覧ください。5.27下みたいなyamlでRGWとオブジェクトストレージ用のPoolが作られます。name>〜というのが生まれました。RGWは1つでももちろん動くんですが、SPOF回避のためとに複数置くのがCephでのベストプラクティスです。RGWがパフォーマンスボトルネックになることを回避するため複数で負荷分散する意味もあるので、Rook-Cephでも複数あったほうがいいんじゃないでしょうか奥さん、てことで2つ置きました。次にPoolを見てみましょう。Store用にたくさんPoolが切られています。名前を見たら何にどんなデータが入るか何となく想像付くきますが、割とバシバシPoolが切られますね。RGWもできたしPoolもできたのでオブジェクトストレージとしての基盤は完成です。Claim(OBC)というリソースが使えるようになりました。これはPV/PVCと同じようにapp側のリクエストによって動的にオブジェクトストレージのBucketを提供するものです。これを使ってPoolにBucketを作り、appから使ってみます。PVと同じようにOBC用のStorageClassを作ります。objectStoreNameには先に作ったオブジェクトストア(CephObjectStoreリソース)の名前を入れます。PVCと同じように、こんな感じです。<none>ほいできた。Bucketが作られたのですが、ここでSecretを見てみます。5mなんかありますね。OBと共にS3のAccessKeyとSecretKeyができているのです。これがappの方で出てきます。echo67pnuGUJSMTTtMnF5BSbP9xXmQ8A8nfgaG5FHvOBOBCのyamlにあるgenerateBucketNameは、作られるBucketに振られる名前のプリフィクスとなります。Nameから確認できます。Nameはyamlの中でbucketNameとして固定の名前を振ることができます。Bucket名がカブる可能性があるので固定の名前を振るのはあんまりお勧めじゃないっぽい。generateBucketNameを使うとプリフィクス以降はほぼカブらないように自動で振られるのでGood。Nameなんて覚えなくていいです。実際にappにOBをattachしてみましょう。なんか画像をアップロードしたり表示したりするようないい感じのappを見つけたので、そのままパクらせてもらいます。podに入ってenvを見てみましょう。BUCKETBUCKET_SUBREGION=BUCKET_HOST=rook-ceph-rgw-objstore.rook-cephBUCKET_NAME=hogehoge-11231ae6-cca4-4995-ab4c-41390b8b69f1BUCKET_PORT=80AWS_SECRET_ACCESS_KEY=67pnuGUJSMTTtMnF5BSbP9xXmQ8A8nfgaG5FHvOBBUCKET_REGION=BUCKET_SSL=falseAWS_ACCESS_KEY_ID=NKI5QC8N7FDC93PKU1KPほら、OBCのBucketとSecretがenvに書かれてるでしょう。envFromのconfigMapRefとsecretRefで指定したOBCからそれぞれの情報が環境変数で取り入れられています。appの中では環境変数で指定すりゃいいので、覚える必要はないっす。ClaimでBucket作るところまで紹介しました。次回はこれをappから使った時の振る舞いを見てみましょう。いうわけで今日はここまで。CephFSの脅威まいど。トリプル・ポッドまいど。各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。