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

極力楽してKubernetes環境を構築したいwith AWS, terraform, EKS, Argo-CD

極力楽してKubernetes環境を構築したいwith AWS, terraform, EKS, Argo-CD

k.bigwheel (kazufumi nishida)

November 23, 2023
Tweet

More Decks by k.bigwheel (kazufumi nishida)

Other Decks in Technology

Transcript

  1. 極力楽して Kubernetes環境を構築したい with AWS, terraform, EKS, Argo-CD 2020/08/26 Kubernetes Meetup

    Tokyo #33 株式会社Speee DX事業本部 SREエンジニア 西田和史 (k_bigwheel)
  2. モジュール化(terraform module / helm)で解決? • 適切に使用すれば紋切り型コードが大幅に減少 ◦ 例: ウェブサービス用の helm

    chart(Deployment, Service, Ingressのセット) • 一方で過度のモジュール化(共通化)は個別最適化の選択肢を奪う ◦ オペレータA, B, C, Dを内包するhelm chartは便利だけどBを入れたくないクラスタではとたんに 面倒になる • モジュールを十分小さくすれば選択的に使える? ◦ モジュールが増えると使い方を理解するコストが増え、モジュール間の グルーコードも増える
  3. プロジェクト初日にやること 1. AWSアカウントの作成 2. GitHubにリポジトリの作成 3. GitHub SecretsにCI用の Credentialsを設定 4.

    右のコマンドを実行 # インフラコードの生成 cookiecutter [email protected]:speee/infra-template.git # CIでインフラを構築 git add . git push origin HEAD # k8s認証情報の設定 aws eks update-kubeconfig --name hogehoge # Argo CDのインストール kubectl create namespace argo-cd helm repo add argo https://argoproj.github.io/argo-helm helm install argo-cd argo/argo-cd -n argo-cd --set installCRDs=false # マニフェストファイルの生成 cookiecutter [email protected]:speee/manifest-template.git # Argo CDにマニフェストリポジトリを登録 git add . git push origin HEAD argocd repo add https://github.com/speee/hogehoge-manifest
  4. 課題は解決した? • もっと高速にインフラ1セットを提供したい ➢ 最短1日未満で提供できるようになりつつある • 2人のSREチームでは手間が馬鹿にならない(トイル化) ➢ 作業を大幅に簡略化 •

    毎回微妙な差分が発生 ➢ テンプレート化で不要な差分は最小化 • 改善が過去に構築したインフラへ反映できていない ➢ インフラリポジトリ/マニフェストリポジトリの骨格が揃ったので足並みを揃えやすくなった
  5. ご清聴 ありがとう ございました まとめ 1. モジュール化 a. Terraform module b.

    helm 2. テンプレート(コード自動生成) a. cookiecutter より以下ができた • トイルの削減 • 高速な初期構築 • コードの標準化(正規化)