Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

みのるん

March 15, 2022
Tweet

More Decks by みのるん

Other Decks in Technology

Transcript

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

    View full-size slide

  2. お前誰︖
    ■ 御⽥ 稔(おんだ みのる)
    ■ KDDI 情シス系部⾨のSRE
    ■ 実務ではAWS中⼼
    ■ JAWSにもよく出没します。SRE⽀部運営
    ■ OCIはたまに検討に浮上。これから勉強したい
    ■ 好きなOCIサービス︓ Identity > Compartment
    @minorun365
    • KDDI Cloud SAMURAI 2021認定
    • KDDI Cloud Ambassador 2021認定

    View full-size slide

  3. きょう紹介したいこと
    ■ ⾯⽩そうなOCIハンズオン記事を
    ⾒つけたのでやってみました。
    – 無料でセルフマネージドなk8sクラスターを構築できる︕
    – しかもTerraform&Ansibleで⾃動構築。IaCの勉強にもなりそう
    ■ 元記事では全体的にスマートにまとめてくれていたので、
    今回はシロートがつまずきがちなポイントにフォーカスして紹介

    View full-size slide

  4. 構成イメージ
    ワイ
    IGW
    OCIアカウント / コンパートメント
    VCN(10.0.0.0/16)
    サブネット
    (10.0.0.0/24)
    サブネット
    (10.0.0.1/24)
    コンピュート
    (Master)
    コンピュート
    (Worker)
    ターミナル

    View full-size slide

  5. 構築の流れ
    ■ ローカルPCに各種ツール導⼊
    (OCI CLI、Git、Terraform、Ansible、jq)
    ■ 元記事の著者様リポジトリーから資材を拝クローン
    ■ TerraformでOCI環境を構築(.shありがたや〜)
    ■ Ansibleでk8sクラスターを構築(.shありがたや〜)

    View full-size slide

  6. Terraformコードの例(VCN)
    結局HCL(JSONもどき)
    なのでAWSと同じ︕
    → OSSナレッジ流⽤でき
    学習コストが低い

    View full-size slide

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

    View full-size slide

  8. つまずき① OCI CLIの初期設定
    ■ oci setup config で初期設定後、
    CLI操作を試すと401権限エラー︕
    ■ 対話形式でのリージョン選択時に、先頭にあった
    「ap-chiyoda-1」を選んでしまっていた(何者!?)
    →「ap-tokyo-1」にコンフィグ修正すると解消

    View full-size slide

  9. つまずき② Terraform OCIプロバイダー
    ⽤のキーペア設定
    ■ Terraform初回実⾏時にSSH関連の400エラー 😂
    ■ ググるとGitHubの過去Issueがヒット。
    「そのRSAキーペアと別のSSHキー使うといいよ」
    なるコメントを発⾒。
    ■ OCI CLI⽤に⽣成したRSAキーペアとは別に、
    ⼿元のMacで ssh-keygen してOpenSSHキー作ると成功︕

    View full-size slide

  10. つまずき③ Ansibleを利⽤した
    kubeadmプロビジョニング
    ■ kubeadm init 終盤で
    k8sリソース関連のエラーがドバドバ 😂
    ■ ふむふむ。指定したCNI⽤のクラスターロールが
    RBACリソース内に⾒つからないのね。⽇本語でおk︕
    → デバッグは早々に諦め、k3s⽅式へ鞍替え

    View full-size slide

  11. で、結局うまくいったの︖

    View full-size slide

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

    View full-size slide

  13. 今回のまなび&感想
    ■ IaCなら環境破壊&再構築がチョー簡単。
    OSS使えばパブクラ変わっても学習コスト低い︕
    ■ OCI Always Freeだと VM.Standard.E2.1.Micro なので
    気を付けないとすぐリソース枯渇するかも!?
    ■ 初⼼者がちょっとつまずいた際、OCIだと
    公式ドキュメント以外に分かりやすい記事が少なめ
    → みんなでアウトプットして盛り上げよう︕

    View full-size slide

  14. 詳細はQiitaにもまとめました︕
    気に⼊ったらLGTMオナシャス︕ 感想や指摘もお待ちしてます。

    View full-size slide