$30 off During Our Annual Pro Sale. View Details »

セルフマネージドなk8s環境を IaC駆使して自動構築したい。 無料で!→ そうだOCI使おう

セルフマネージドなk8s環境を IaC駆使して自動構築したい。 無料で!→ そうだOCI使おう

みのるん

March 15, 2022
Tweet

More Decks by みのるん

Other Decks in Technology

Transcript

  1. セルフマネージドなk8s環境を IaC駆使して⾃動構築したい。 無料で︕→ そうだOCI使おう 御⽥ 稔 SRE / KDDI株式会社

  2. お前誰︖ ▪ 御⽥ 稔(おんだ みのる) ▪ KDDI 情シス系部⾨のSRE ▪ 実務ではAWS中⼼

    ▪ JAWSにもよく出没します。SRE⽀部運営 ▪ OCIはたまに検討に浮上。これから勉強したい ▪ 好きなOCIサービス︓ Identity > Compartment @minorun365 • KDDI Cloud SAMURAI 2021認定 • KDDI Cloud Ambassador 2021認定
  3. きょう紹介したいこと ▪ ⾯⽩そうなOCIハンズオン記事を ⾒つけたのでやってみました。 – 無料でセルフマネージドなk8sクラスターを構築できる︕ – しかもTerraform&Ansibleで⾃動構築。IaCの勉強にもなりそう ▪ 元記事では全体的にスマートにまとめてくれていたので、

    今回はシロートがつまずきがちなポイントにフォーカスして紹介
  4. 構成イメージ ワイ IGW OCIアカウント / コンパートメント VCN(10.0.0.0/16) サブネット (10.0.0.0/24) サブネット

    (10.0.0.1/24) コンピュート (Master) コンピュート (Worker) ターミナル
  5. 構築の流れ ▪ ローカルPCに各種ツール導⼊ (OCI CLI、Git、Terraform、Ansible、jq) ▪ 元記事の著者様リポジトリーから資材を拝クローン ▪ TerraformでOCI環境を構築(.shありがたや〜) ▪

    Ansibleでk8sクラスターを構築(.shありがたや〜)
  6. Terraformコードの例(VCN) 結局HCL(JSONもどき) なのでAWSと同じ︕ → OSSナレッジ流⽤でき 学習コストが低い

  7. シロートがつまずいたポイント

  8. つまずき① OCI CLIの初期設定 ▪ oci setup config で初期設定後、 CLI操作を試すと401権限エラー︕ ▪

    対話形式でのリージョン選択時に、先頭にあった 「ap-chiyoda-1」を選んでしまっていた(何者!?) →「ap-tokyo-1」にコンフィグ修正すると解消
  9. つまずき② Terraform OCIプロバイダー ⽤のキーペア設定 ▪ Terraform初回実⾏時にSSH関連の400エラー 😂 ▪ ググるとGitHubの過去Issueがヒット。 「そのRSAキーペアと別のSSHキー使うといいよ」

    なるコメントを発⾒。 ▪ OCI CLI⽤に⽣成したRSAキーペアとは別に、 ⼿元のMacで ssh-keygen してOpenSSHキー作ると成功︕
  10. つまずき③ Ansibleを利⽤した kubeadmプロビジョニング ▪ kubeadm init 終盤で k8sリソース関連のエラーがドバドバ 😂 ▪

    ふむふむ。指定したCNI⽤のクラスターロールが RBACリソース内に⾒つからないのね。⽇本語でおk︕ → デバッグは早々に諦め、k3s⽅式へ鞍替え
  11. で、結局うまくいったの︖

  12. リソース不⾜︖でノードフリーズ 😂 途中まで kubectl できてたのに…︕︕笑 クラスター作成直後に Computeインスタンスの メモリー張り付き発⽣

  13. 今回のまなび&感想 ▪ IaCなら環境破壊&再構築がチョー簡単。 OSS使えばパブクラ変わっても学習コスト低い︕ ▪ OCI Always Freeだと VM.Standard.E2.1.Micro なので

    気を付けないとすぐリソース枯渇するかも!? ▪ 初⼼者がちょっとつまずいた際、OCIだと 公式ドキュメント以外に分かりやすい記事が少なめ → みんなでアウトプットして盛り上げよう︕
  14. 詳細はQiitaにもまとめました︕ 気に⼊ったらLGTMオナシャス︕ 感想や指摘もお待ちしてます。