Member-only story

Kubernetesの必須ツール 2021(第2回)

gavin.zhou
Oct 28, 2021

--

この記事では、私のお気に入りのKubernetes 用ツールをまとめてみたいと思います。

特に、これから人気が出ると思われる最新のツールやあまり知られていないツールに重点を置いています。

今回の記事は長いので、5回に分けて投稿いたします。今回は第2回目です。

Helm

Helm は紹介するまでもなく、Kubernetesの最も有名なパッケージマネージャです。そして、プログラミング言語でパッケージマネージャを使うのと同じように、K8sでもパッケージマネージャを使うべきだと思います。Helmでは、複雑なアプリケーションを再利用可能なシンプルなコンポーネントにアブストラクトして、定義、インストール、アップデートを簡単に行えるようにしたチャートでアプリケーションをパックすることができます。

また、最強のテンプレートエンジンも利用できます。Helm は成熟しており、多くの定義済みチャートがあり、サポートも充実していて、使いやすいです。

その他

Kustomizeは、テンプレートエンジンではなく、ベースとなる定義を持ち、その上にオーバーレイを重ねるオーバーレイエンジンを採用した、helmに代わる優れた新しいツールです。

ArgoCD

GitOps は過去10年間で最も優れたアイデアの一つだと考えています。ソフトウェア開発では、ソフトウェアを構築するために必要なすべての動きを追跡するために、信頼できる唯一の情報源を使用する必要があります。このアイデアは、アプリケーションコードと、望ましい本番環境の状態を表すインフラ(IaC))の宣言的な記述を含むGitリポジトリを用意し、望ましい環境をリポジトリに記述された状態と一致させるための自動プロセスを提供するというものです。

GitOps: 宣言型インフラの上にバージョン管理されたCI/CD。スクリプトをやめて、出荷を始めてください。

Kelsey Hightower

Terraformや類似のツールを使えば、Infrastructure as Code(IaC)を実現できますが、Git上の望ましい状態を本番環境と同期させるには十分ではありません。環境を継続的に監視し、*コンフィギュレーションのズレがないことを確認する方法が必要です。Terraformでは、terraform applyを実行して、ステータスがTerraformの状態と一致するかどうかをチェックするスクリプトを書かなければなりませんが、これはおもしろくない作業なので、続けるのが難しいです。

Kubernetesは、制御ループという考えに基づいて構築されています。これは、Kubernetesが常にクラスタの状態を監視し、それが望ましい状態と一致しているかどうかを確認することを意味しています。例えば、実行されているレプリカの数が、希望するレプリカの数と一致しているということです。GitOpsは、これをアプリケーションに拡張してくれます。つまり、Helmチャートを定義するなどしてサービスをコードとして定義し、K8…

--

--

No responses yet