継続的デリバリ - Flux
アプリケーション開発編では、お手製のアプリをローカル環境やクラウド環境(AWS EKS)にデプロイしてきました。 しかし、ローカル環境はSkaffoldを使って自動化したものの、クラウド環境はkubectl applyを使って手動デプロイしました。 ここでは、GitOps[1]を体現する継続的デリバリツールとして人気のFluxを導入します。 最終的には、以下のような構成となります。 Fluxは、以下を行うコンポーネント群(GitOps Toolkit)です...
記事を読むRancher Desktop 紹介
庄司です。 つい先日 (2022年1月21日) に、lima 紹介 という記事を書いたばかりですが、Mac (M1/Intel) と Windows のどちらにも対応し (さらに Linux にも)、それぞれ Lima と WSL2 を利用してコンテナランタイムを実行する、Rancher Desktop がついに v1.0.0 に到達したというニュースを受け取りました...
記事を読むクラスタ環境デプロイ - EKSクラスタ(AWS環境準備)
前回で、コンテナレジストリを導入し、コンテナイメージ用のリポジトリを準備しました。 今回はアプリケーション開発編の仕上げとして、Kubernetesクラスタ環境のEKSにアプリケーションをデプロイしましょう。 一般的なプロジェクトでは商用環境だけでなく、結合テスト、受け入れテスト等、様々なフェーズに応じた環境が準備されています。 また、各環境で外部システムとの接続先等の環境固有の設定/構成が必要だったり、コストの関係で全て同等のスペックで準備することが難しいといったケースがほとんどです...
記事を読むクラスタ環境デプロイ - EKSクラスタ(Kustomize導入)
本記事は、クラスタ環境デプロイ - EKSクラスタ(AWS環境準備)からの続きです。 ここでは、Kubernetesのマニフェストファイルを、Kustomizeに対応した構成へと見直していきます。 Kustomizeはbaseと呼ばれる環境共通部分にパッチを当てることで、各環境の完全なマニフェストを生成します。 以下のようなフローで最終的にデプロイする形になります。 Kustomizeのパッチは、以下の方法をサポートしています...
記事を読むクラスタ環境デプロイ - EKSクラスタ(デプロイ)
本記事は、クラスタ環境デプロイ - EKSクラスタ(Kustomize導入)からの続きです。 これまで、DynamoDBやS3等のAWSリソースを準備し、環境差分を吸収するために、Kustomizeを導入しました。 ここからは、仮想の商用環境としてAWS EKSにアプリケーションをデプロイします。 まずは、前回ローカル環境向けにパッチファイルを準備したように、EKS環境向けのoverlaysを用意します。 最終的には、以下の構成となります...
記事を読むlima 紹介
庄司です。 M1 チップ搭載の mac で Windows の WSL2 のような感覚で仮想 Linux 環境を手に入れたいとの思いから、lima というプロジェクトがあることを知り早速使い始めました。 インストールは、Homebrew を使うと楽にインストールすることができます。 brew install lima 仮想マシンの起動 # 次のようにコマンドを実行するとデフォルトの仮想マシンが起動します...
記事を読むクラスタ環境デプロイ - コンテナレジストリ(ECR)
さて、ここまででWeb・バッチアプリケーションの開発が終わり、ローカル環境で動作確認ができました。 いよいよここからは、AWS EKSにアプリケーションをデプロイしていきます。 その前に、アプリケーションをEKSにデプロイする際、コンテナイメージはどこで管理すべきでしょうか? 今まではコンテナのビルドと実行が同一環境(ローカル環境)のため、イメージビルド後にそのまま実行できていました[1]...
記事を読むKubernetesマニフェスト作成 - バッチアプリケーション
前回は、ローカル環境のKubernetesでタスク管理ツールのWebアプリケーションを動かすことができました。 今回は日次でタスク完了レポートを出力するバッチアプリケーションを作成してみましょう。 Kubernetesを利用する主なメリットとして、セルフヒーリングによる耐障害性強化や、大規模トラフィックに耐えられるスケーラビリティが得られる等の印象が強いかと思います...
記事を読むDapr on Jetson Nano with k3s
庄司です。 マイクロサービスのように、多言語プログラミング (polyglot programming) が前提の環境では、認証認可やログのような横断的関心事 (cross-cutting concern) をアプリケーションのコードとして実装すると、各言語やフレームワークごとに移植が必要となり最新化への足かせとなります...
記事を読むKubernetesマニフェスト作成 - Webアプリケーション
ここまででローカル環境で開発する準備が整いました。 ここからは、実際に動くアプリケーションをローカル環境にデプロイしましょう。 このチュートリアルでは、一般的によくあるであろうシンプルなWebアプリケーションとバッチアプリケーションを例に見ていきます。 題材としてはタスク管理ツールとします。このツールの機能としては以下になります...
記事を読む