TECHSTEP

ITインフラ関連の記事を公開してます。

Kubernetes

Reloaderを試す

Kubernetes上のアプリケーションに外部から秘匿情報やパラメータを与える方法の一つとして、ConfigMap/Secretに情報を記載し、環境変数として渡すことができます。一方でこの方法を採用した場合、ConfigMap/Secretに記載する変数を更新すると、これをPodに反…

External Secrets Operatorを試す

External Secrets Operatorとは External Secrets Operatorを動かす AWS Secrets Managerに秘匿情報を登録する ESOをインストールする AWSアクセス情報を登録する SecretStoreのデプロイ ExternalSecretのデプロイ その他 EKS: IRSAを使用する場合 External …

【メモ】AWS CodeCommit / CodeBuild + Flux を使ったGitLab Flowの構築

今回は以前のGitHub Flowの構成例に続き、GitLab Flowの実現を目指した例を考えました。 なお、今回は前回と大部分同じ構成なので、説明を省いている箇所があります。 GitLab Flowとは GitLab Flowも開発ワークフローの一種で、以下のようなルールに従って開…

【メモ】AWS CodeCommit / CodeBuild + Flux を使ったGitHub Flowの構築例

今回はAWS CodeCommit/CodeBuildとFluxを使い、GitHub Flowを実現することを目指して構成を考えてみました。 GitHub Flowとは GitHub Flowは開発ワークフローの1つであり、以下のようなルールが定められた、比較的シンプルなワークフローになります。 master…

ArgoCD ApplicationSetを動かしてみる

今回はArgoCDをより拡張する機能を持つ ApplicationSetを動かしてみます。 ApplicationSetとは Generator ユースケース Cluster add-on Monorepo Self-service of ArgoCD Applications on multi-tenant cluster ApplicationSetを動かしてみる インストール L…

Flaggerに入門する

今回はProgressive Deliveryを実現するツールの一つであるFlaggerを試してみます。なお、Progressive Deliveryについては、以下の参考リンクなどを参照ください。 ※参考リンク: Towards Progressive Delivery DevOps Institute - Progressive Delivery Flag…

Flux v2に入門する

今回はGitOpsツールの一つであるFlux v2を試してみます。GitOpsについては以下の参考リンクなどをご参照ください。 ※参考リンク: Weaveworks Blog - Guide To GitOps Flux v2とは Flux v2は、複数のCustom Controllerを組み合わせて、GitOpsの各機能を提供…

Veleroに入門する

今回はKubernetesリソースのバックアップ・リストアを実現するVeleroを使ってみます。 Cloud Nativeな世界のバックアップ・リストア Veleroを動かす前に、バックアップ・リストアについていくつか書いておきます。 そもそもバックアップ・リストアを実現する…

【メモ】CircleCIとAmazon ECR / EKSを利用したCI/CDパイプラインの例

はじめに 今回はCircleCIとAmazon ECRを利用したCI/CDパイプラインを用意し、コンテナイメージのビルドからKubernetesクラスタへのデプロイまで実行するサンプルを作成しました。 構成 今回は以下のようなCI/CDパイプラインを作成しました。 管理対象はGoの…

【メモ】GitHub ActionsとGitHub Container Registryを利用したCI/CDパイプラインの例

はじめに 今回はタイトルの通り、GItHub ActionsとGitHub Container Registryを利用したCI/CDを用意し、コンテナイメージのビルドからKubernetesクラスターへのデプロイまでを実行するサンプルを作成しました。 構成 CI/CDのパイプラインのパターンはいくつ…

NATSに入門する

今回はメッセージングシステムの一つであるNATSを試してみました。 NATSとは 分散システムにおけるアプリケーションとサービス間のコミュニケーションは複雑で理解が難しいものとなります。現代のメッセージングシステムは複数のコミュニケーションパターン…

Falcoに入門する

今回はCloud-Nativeなランタイムセキュリティ機能を提供するFalcoを試しました。 Falcoとは FalcoはSysdig社が開発元であるランタイムセキュリティツールです。CNCFがホストとなっているOpen Sourceであり、2020年12月時点でプロジェクトの成熟度はIncubatin…

Open Policy Agentに入門する

今回は汎用的な環境に対してポリシーエンジンを提供するOpen Policy Agent(OPA)について調査しました。 Policy as Codeとは OPAを操作する前に、Policy as Codeというコンセプトについて少し触れます。Policy as CodeはHashiCorp社がSentinelというツール…

Istioに入門する

今回はService Meshについて概要を調べ、Service Meshを提供するプロダクトの一つであるIstioに触れてみました。 Service Meshとは マイクロサービスの課題 Service Meshを考えるうえでまず必要になるのが、マイクロサービスアーキテクチャの抱えるいくつか…

Custom Resourceに対するValidationをGitHub Actions + k3sで試してみる

はじめに 今回はCustom Resourceに対してのValidationを何とかできないかと考え、GitHub Actions + k3sを組み合わせてみた結果を残しておきます。 経緯 Kubernetesのマニフェストファイルに対するValidation Kubernetesにリソースを作成する場合、マニフェス…

【メモ】CronJob経由で定期的にKubernetesリソースをデプロイする

はじめに 今回はKubernetesのCronJobリソースでkubectlコマンドを実行し、定期的にリソースを更新する方法について、メモを残しておきます。 やりたいことは以下の通りです。 git cloneにより、GitHubリポジトリからマニフェストファイルを取得する kubectl…

External Secretsを試してみる

今回はKubernetes上で扱う秘匿情報を管理するExternal Secretsを試してみました。 注意事項:本記事はExternal SecretsのリポジトリがGoDaddyからexternal-secretsに移管する前に検証をしていたものです。そのため、一部マニフェストファイルにはgodaddy/kub…

Argo CD Notificationsを試す

はじめに 今回は、Argo CDと組み合わせて利用することのできる通知ツールの一つ、Argo CD Notificationsについて、概要と利用方法を紹介します。 Argo CD Notificationsとは Argo CD Notificationsは、Argo CDのリソースを監視し、実行結果に応じてメール・S…

Argo RolloutsのAnalysisTemplateを用いた自動ロールバックを試してみる

Argo Rolloutsは、Kubernetesで利用できるRolling Updateよりも高度なデプロイ・リリース方式を利用することができます。その中には「Progressive Delivery」という、デプロイ後に特定の分析を行い、デプロイの結果を評価するという方式も含まれています。 A…

Argo Rolloutsに入門する

先日ArgoCDを利用してみましたが、今回は同じArgo Projectの中からArgo Rolloutsを試してみました。Argo Rolloutsを利用することで、より高度なデプロイ・リリースを実現することができます。 リリース方式の違いと特徴について Argo Rolloutsを利用する前に…

ArgoCDに入門する

はじめに 本記事ではGitOps CDツールの一つであるArgoCDの概要と利用方法について紹介いたします。 ArgoCDとは ArgoCDはKubernetesクラスター向けのContinuous Deliveryを実現するツールです。ArgoCDでは、Kubernetesマニフェストファイルが格納されたGitHub…

Kubernetesのマルチテナントの現状を整理する

はじめに 本記事では、Kubernetesで実現するマルチテナントについて、2020年9月時点での現状と、将来的に利用できるであろう機能の紹介をいたします。各機能についての詳細は、参考ドキュメント等を参照していただければと思います。 本記事の要点 マルチテ…

Tektonに入門する

はじめに 最近Kubernetes上でCI/CDパイプラインを構築するTektonというツールについて調べる機会があったので、本記事で簡単にまとめておきます。 Tektonとは TektonはKubernetes NativeなCI/CDソリューションとして開発され、Kubernetesクラスター上でのア…

Rook-Ceph NFS Gatewayを利用する

はじめに Rookが管理するストレージサービスは複数存在し、そのひとつにNFSがあります。Rookではnfsservers.nfs.rook.ioというCRDを利用することで、Kubernetes上にNFSを用意し、アプリケーションから利用することができます。 ※参考リンク: Rook Docs - NF…

Rook-Ceph External Cluster ~Rook-Cephクラスター間でExternal Clusterを利用する~

はじめに Rook-Cephでは、自身のクラスター外にあるCephクラスターを利用する機能を提供しています。前回はVM上に構築したCephクラスターを利用する方法について紹介しましたが、今回はVM上でなく、Kubernetes上に構築したRook-Cephクラスターを、別のRook-C…

Rook-Ceph External Cluster ~VM上のCephクラスターをRookから利用する~

はじめに Rook-Cephは、外部にあるCephクラスターを利用する機能を提供しています。 今回は、Rook OperatorをデプロイしたKubernetesから、VM上に構築されたCeph Clusterを利用する方法を紹介します。 External Clusterとは Rookはストレージを利用するClien…

Rook-Cephのコンフィグ設定方法と設定例

はじめに Rook-Cephのクラスターや各リソースを作成したのち、Cephの設定を変更する方法が公式ドキュメントで紹介されています。設定の変更方法・及び変更例が紹介されていたので、ここにまとめておきます。 Rook-Cephコンフィグ設定変更方法 そもそもRook-C…

EdgeFS概要まとめ

はじめに 本投稿では、先日入門したEdgeFSについて、その概要をまとめたので紹介します。以前概要をまとめたCephとは異なり、EdgeFSはまだ利用例も少なく、情報がそれほど多くない状況です。また公式ドキュメントには内部構成などの情報が欠けており、都度別…

Rook-EdgeFSに入門する

はじめに 今回はRookの管理対象とするストレージベンダーの中からEdgeFSを試します。Rook公式ドキュメントのEdgeFS QuickStartでは、ひとつのKubernetesクラスター上にRook-EdgeFSをデプロイするところまでを紹介しています。今回はEdgeFSクラスターにNFSを…

Rook-Cephの機能紹介(File Storage編)

はじめに Rook-Cephの設定や機能について、公式ドキュメントをベースにまとめています。今回はCephで利用できるストレージのうち、ファイルストレージを利用するために必要な情報を紹介します。 検証環境 Rook version: ver 1.2 Kubernetes version: 1.17.0 …