×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
セルフマネージドなk8s環境を IaC駆使して⾃動構築したい。 無料で︕→ そうだOCI使おう 御⽥ 稔 SRE / KDDI株式会社
Slide 2
Slide 2 text
お前誰︖ ■ 御⽥ 稔(おんだ みのる) ■ KDDI 情シス系部⾨のSRE ■ 実務ではAWS中⼼ ■ JAWSにもよく出没します。SRE⽀部運営 ■ OCIはたまに検討に浮上。これから勉強したい ■ 好きなOCIサービス︓ Identity > Compartment @minorun365 • KDDI Cloud SAMURAI 2021認定 • KDDI Cloud Ambassador 2021認定
Slide 3
Slide 3 text
きょう紹介したいこと ■ ⾯⽩そうなOCIハンズオン記事を ⾒つけたのでやってみました。 – 無料でセルフマネージドなk8sクラスターを構築できる︕ – しかもTerraform&Ansibleで⾃動構築。IaCの勉強にもなりそう ■ 元記事では全体的にスマートにまとめてくれていたので、 今回はシロートがつまずきがちなポイントにフォーカスして紹介
Slide 4
Slide 4 text
構成イメージ ワイ IGW OCIアカウント / コンパートメント VCN(10.0.0.0/16) サブネット (10.0.0.0/24) サブネット (10.0.0.1/24) コンピュート (Master) コンピュート (Worker) ターミナル
Slide 5
Slide 5 text
構築の流れ ■ ローカルPCに各種ツール導⼊ (OCI CLI、Git、Terraform、Ansible、jq) ■ 元記事の著者様リポジトリーから資材を拝クローン ■ TerraformでOCI環境を構築(.shありがたや〜) ■ Ansibleでk8sクラスターを構築(.shありがたや〜)
Slide 6
Slide 6 text
Terraformコードの例(VCN) 結局HCL(JSONもどき) なのでAWSと同じ︕ → OSSナレッジ流⽤でき 学習コストが低い
Slide 7
Slide 7 text
シロートがつまずいたポイント
Slide 8
Slide 8 text
つまずき① OCI CLIの初期設定 ■ oci setup config で初期設定後、 CLI操作を試すと401権限エラー︕ ■ 対話形式でのリージョン選択時に、先頭にあった 「ap-chiyoda-1」を選んでしまっていた(何者!?) →「ap-tokyo-1」にコンフィグ修正すると解消
Slide 9
Slide 9 text
つまずき② Terraform OCIプロバイダー ⽤のキーペア設定 ■ Terraform初回実⾏時にSSH関連の400エラー 😂 ■ ググるとGitHubの過去Issueがヒット。 「そのRSAキーペアと別のSSHキー使うといいよ」 なるコメントを発⾒。 ■ OCI CLI⽤に⽣成したRSAキーペアとは別に、 ⼿元のMacで ssh-keygen してOpenSSHキー作ると成功︕
Slide 10
Slide 10 text
つまずき③ Ansibleを利⽤した kubeadmプロビジョニング ■ kubeadm init 終盤で k8sリソース関連のエラーがドバドバ 😂 ■ ふむふむ。指定したCNI⽤のクラスターロールが RBACリソース内に⾒つからないのね。⽇本語でおk︕ → デバッグは早々に諦め、k3s⽅式へ鞍替え
Slide 11
Slide 11 text
で、結局うまくいったの︖
Slide 12
Slide 12 text
リソース不⾜︖でノードフリーズ 😂 途中まで kubectl できてたのに…︕︕笑 クラスター作成直後に Computeインスタンスの メモリー張り付き発⽣
Slide 13
Slide 13 text
今回のまなび&感想 ■ IaCなら環境破壊&再構築がチョー簡単。 OSS使えばパブクラ変わっても学習コスト低い︕ ■ OCI Always Freeだと VM.Standard.E2.1.Micro なので 気を付けないとすぐリソース枯渇するかも!? ■ 初⼼者がちょっとつまずいた際、OCIだと 公式ドキュメント以外に分かりやすい記事が少なめ → みんなでアウトプットして盛り上げよう︕
Slide 14
Slide 14 text
詳細はQiitaにもまとめました︕ 気に⼊ったらLGTMオナシャス︕ 感想や指摘もお待ちしてます。