Skip to content

Latest commit

 

History

History
92 lines (64 loc) · 4.49 KB

File metadata and controls

92 lines (64 loc) · 4.49 KB

Top


開発・運用

ベース構成

Self Hosted Runner によるCI

GitHub Actionsでは、GitHub提供のランナーの他に、自分で管理するセルフホステッドランナーを利用できます。EKS環境でセルフホステッドランナーを運用することで、プライベートリソースへのアクセスやコスト最適化、パフォーマンス向上が期待できます。

セルフホステッドランナーをEKS上で実行するメリット:

  • プライベートネットワーク内のリソースへの直接アクセス
  • GitHubホステッドランナーのコスト削減
  • カスタムイメージやソフトウェアの利用
  • オートスケーリングによる効率的なリソース利用

Actions Runner Controller (ARC) を使用することで、Kubernetes上でセルフホステッドランナーを自動管理できます。

ArgoCDによるGitOps

ArgoCDは宣言的GitOpsツールで、GitリポジトリをSingle Source of TruthとしてKubernetesアプリケーションの継続的デリバリーを実現します。EKS環境でArgoCDを活用することで、アプリケーションとインフラの一貫した管理が可能になります。

ArgoCDの主要機能:

  • Gitリポジトリからの自動同期
  • WebUIによる視覚的なアプリケーション管理
  • ロールバック機能
  • 複数クラスタの管理
  • RBAC統合によるアクセス制御

GitOpsワークフローでは、開発者がGitリポジトリにマニフェストを変更すると、ArgoCDが自動的に変更を検出してクラスタに適用します。

カスタマイズ

HPAによるオートスケール

Horizontal Pod Autoscaler (HPA) は、CPU使用率やメモリ使用率、カスタムメトリクスに基づいてポッドの数を自動調整します。アプリケーションの負荷に応じてスケールイン・スケールアウトを行い、リソースの効率的な利用とパフォーマンスの維持を実現します。

HPAの設定要素:

  • スケーリング対象のメトリクス(CPU、メモリ、カスタム)
  • 最小・最大レプリカ数
  • スケーリングの閾値とポリシー
  • クールダウン期間

Cluster Autoscalerによるノードのオートスケール

Cluster Autoscalerは、ポッドのスケジューリング要求に基づいてワーカーノードの数を自動調整します。リソース不足でポッドがスケジュールできない場合はノードを追加し、ノードの利用率が低い場合はノードを削除します。EKS Automode でない従来のEKSクラスタで AutoScaling でノードを管理している場合に有効です。(EKS Automode では不要)

EKS環境でのCluster Autoscaler:

  • Auto Scaling Groupsとの統合
  • ノードグループ毎の設定
  • インスタンスタイプの混在対応
  • スポットインスタンスの活用

PodResize

Vertical Pod Autoscaler (VPA) やPodのIn-Place Resource Resizingにより、実行中のポッドのリソース要求を動的に調整できます。アプリケーションの実際のリソース使用量に基づいて、CPUやメモリの割り当てを最適化します。

PodResizeの活用場面:

  • リソース要求の初期設定が不適切な場合
  • アプリケーションの使用パターンが変化した場合
  • リソース効率の継続的な改善

Kustomize / Helm

KustomizeとHelmは、Kubernetesマニフェストのテンプレート化とパッケージ管理を行うツールです。環境毎の設定差分管理や、再利用可能なアプリケーションパッケージの作成に活用できます。

Kustomizeの特徴:

  • YAMLファイルのオーバーレイ機能
  • 環境毎の設定差分管理
  • kubectlとの統合

Helmの特徴:

  • パッケージ管理(Helm Charts)
  • テンプレート機能
  • バージョン管理とロールバック
  • 豊富なコミュニティチャート

Top