TECHSTEP

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

Kubernetes

【メモ】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 …

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

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

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

はじめに Rook-Cephの設定や機能について、公式ドキュメントをベースにまとめています。今回はCephで利用できるストレージのうち、ブロックストレージを利用するために必要な情報について、Ceph Cluster CRDの内容をまとめます。公式ドキュメントでは、利用…

Kubernetes + Ansible = Kubespray ~KubesprayからAnsibleに入門する~

はじめに Kubernetesクラスターをオンプレやクラウド上の仮想マシンの上に構築する場合、Kubernetes The Hard Wayのようにイチから全てを構築するか、構築用のツールを利用する方法があります。Kubernetesクラスターを構築するツールは複数存在し、代表的な…

Rook (ver 1.1) に入門する

はじめに Kubernetes上でストレージを管理するツールにRookがあります。RookはCloud Native Storageを実現するツールの一つとして、CNCF IncubatingのステータスにあるOSSです。しかし、私は「そもそもCloud Native Storageって何?」というところから出発し…

Helm ver.3(ベータ版)を試す

はじめに kubernetes上で利用するパッケージ管理ツールにHelmがあります。HelmではChartというパッケージ単位でkubernetesのマニフェストを管理し、大量のマニフェストファイルの管理を手助けします。 Helm ver.2まではクライアントサイドのhelm とサーバー…

Kubernetes Operatorを削除したときNamespaceがTerminating状態で止まった時の対応

はじめに 先日個人的な興味でKubevirtを少し触っておりました。その中で、いったん全部のリソースを削除し、最初からやり直そうとしておりました。その中で、namespaceリソースを削除してもTerminatingの状態で止まる状態になってしまいました。これを削除す…

Kubevirt(v0.21.0)を触ってみる

はじめに Docker、Kubernetesをはじめとするコンテナ技術が普及するにつれ、現行でVirtual Machine(VM)が稼働している環境からコンテナへの移行を、どうやって実現するかが課題になってきました。 例えば、リフト&シフトなどの方法で基盤を移行させること…

CentOS7にk3sを立てる ~nginxをデプロイするまで~

はじめに 2019年2月26日、Rancher社からKubernetesの軽量版であるk3sが発表されました。 詳細についてはこちらの記事をご確認ください。 すでにラズパイ上に構築した方もいらっしゃるようですが、ひとまずCentOS7上にserver、agentを構築し、nginxをデプロイ…