ミドルウェア

CI/CDツールのDaggerを動かす

はじめに CICDのパイプラインを記述する際はツールごとに独自のフォーマットや記述方法で記述する必要があるため移植性が低かったり、ローカルで試しに実行するのがなかなか難しかったりすることが多いと思います。DaggerはCICDの開発キッドで上記のような課…

Kong Admin API GUIのKongaを試す

はじめに Kongの諸々の管理する場合、Admin APIを使うのが1つの手かと思うのですが、いかんせんヒューマンフレンドリーでは無いと言うような課題を感じることがあります。 Technology RadarでKongaというKongのAdmin API GUIを見つけたのでちょっと試して見…

Sealed Secretsでk8s上で利用する機密情報をGitなどでセキュアに管理する

はじめに k8sには、Secretという機密情報を扱うリソースがありますが、こいつは基本情報をBase64エンコードしたもので扱われます。例えばSecretのリソース定義ファイルをGitで管理したいとなった場合定義ファイルに書かれる機密情報はただBase64されてるだけ…

Docker Notaryで署名したイメージをDockerHubで公開する

はじめに ソフトウェアをインストールするさいにHashの検証や署名の検証などで、ダウンロードしてきたバイナリの信頼性を検証するみたいなのはよくやると思います。Dockerのイメージに対してこれがどのように解決されるかというところに理解が浅かったので、…

OperatorSDKでCustom ResourceとCustom Controllerを作る

はじめに k8sではいくつかの拡張ポイントが用意されています。その中でも、APIをカスタムするためのCustom Resourceや調整ループによってリソースオブジェクトの状態管理を行い、宣言的なAPIを可能にするCustom Controllerがあります。 まえまえからこの2つ…

KtorのアプリからMicrometer+PrometheusでJVMのメトリクスを取得する

はじめに Ktorのドキュメント呼んでいたらMicrometerに対応してそうだというのを見かけてちょっと動かしてみようかと思います。 基本的にはドキュメントに書かれた流れを沿う感じでやろうかと思います。 あと、PrometheusはDockerを用いて起動します。 やっ…

Docker 20.10.0についてまとめる

はじめに だいぶ前ですがDokcer 20.10.0がリリースされています。かねてからやろうと思ってやってなかったのですが、リリースノートを眺めて、気になったところをかいつまんでまとめてみようと思います。 ものによっては動かしてみようかと。 やっていく 環…

k8s上のSpring Bootアプリからメトリクスを取得する(Actuator + Prometheus Operator)

はじめに Kubernetes上でのSpring Bootのアプリのデバックを行なう際にPodのコンテナ内に応じて必要なコマンドとってきて、スレッドダンプやヒープダンプを取得してホストにコピーみたいなことをやっていたのですが、流石に面倒に感じはじめました。 そこで…

Minikubeにkube-prometheusを使ってPrometheusとGrafanaをデプロイする

はじめに 別のことがしたくて、Kubernetesクラスタの監視をPrometheus + Grafanaで行っている環境が欲しくて、いろいろ調べてたらkube-prometheusというのを見つけて、スターも多そうだったのでちょっと触ってみようと思います。 なおこのブログで特に指定が…

S3 AWS SDK for JavaでMinIOのバケットとオブジェクトを操作する

はじめに 前回の記事でMiniIOを動かしてみたのですが、Javaのクライアントをいくつか試して見たいと思って、この記事ではAamazon SDKを使ってみようと思います。 前回同様MiniIOはDockerを用いて立てます。 使ってみる 環境 今回のプログラムを動かす環境は…

MinIOオブジェクトストレージとmcクライアントを動かしてみる

はじめに S3みたいなオブジェクトストレージで、ローカルで動かせるものが、なにかないか探しているときに、Minioというのがあることを教えてもらって、ちょっとインストールして、画像ファイルがダウンロードできるようになるまでやってみようと思います。 …

Jaegerでk8s+Istio上のアプリ(Quarkus、Spring)を分散トレーシングする

はじめに 分散トレーシングをやる際にJaegerというツールがあって、試してみたいと思って試せていなかったのやってみようと思います。今回はMinikubeで作ったクラスターにIstioをデプロイして、 その環境でのトレーシングを行ってみようと思います。 Istioに…

KongのKubernetes Ingress Controllerを試す

はじめに 久しぶりにKongをちょっとお勉強したい気になってきたので、ドキュメントを眺めていたらKubernetes Ingress Controllerなるものを見つけました。面白そうだったので、とりあえず、動かすまでやってみようかと思います。 Kongの基本的なところとプラ…

MinikubeにIstioをインストールする

はじめに 業務でKubernetesやIstioの機能の一部を利用することがあるですが、勉強のために試せる環境がほしかったのでローカルのMinikubeにインストールして見ようかと思います。 やってみる 動作環境 $ uname -srvmpio Linux 5.4.0-62-generic #70-Ubuntu S…

K6のシナリオを使ってみる

はじめに K6では負荷試験のシナリオを設定することが可能です。このブログではその機能を簡単に試してみてざっくりとした使い方を把握したいと思います。 このブログではK6をDockerを用いて起動します。また、テスト対象のアプリは以前のK6について書いたブ…

Docker BuildKitを使う

はじめに Dockerの 18.09 以降にはBuildKitという機能が存在しますが、今までなんとなく使ってただけなのでちゃんとまとめてある程度理解しておきたいなと Docker BuildKitとは そもそもBuildKitそのものはDocker Engineとは別でMoby Projectで開発されてい…

QuarkusアプリのメトリクスをMicrometer+Prometeus+Grafanaで可視化する

はじめに Quarkus 1.9のリリースブログをなんとなく眺めていると以下のようなことが書かれていました。 Micrometer extension maturing 1.8 introduced a new Micrometer extension. During the 1.9 development cycle, it matured a lot and is now the rec…

Docker Engine APIを使ってcURLでDokcer Engineを操作する

はじめに Docker のクライアントは公式だとGoとかPythonのものはあるようですが、UNIXドメインソケットを使ったHTTPでの操作も可能なようです。このブログではcURLを用いてDocker Engineに対するコマンドを実行してみたいと思います。 Docker Engine API Dok…

squashでKubernetesのPod内のGoアプリをデバッグ実行する

はじめに 最近、アプリの実行プラットフォームとしてk8sを使うことが多いのですが、ローカルで動いているアプリがk8s上で動かないみたいな事象にハマることがありました(もちろん、なるべく環境は合わせるようにしていたのでですが、ローカルでは外部APIを…

Kongのプラグインを書いてみる

はじめに Kongはマルチクラウド対応されたAPIゲートウェイです。Kongはlua-nginx-moduleとLuaと呼ばれるScript言語を利用して、 拡張プラグインを書くことが可能で、その機能を試してみようと思います。 ここでは、以下をゴールとします Kong Pluginの基本的…

APIゲートウェイKongを試す

はじめに 最近触れた技術としてKongと呼ばれるNginxベースのAPIゲートウェイがあります。個人的に興味が湧いたので調べてまとめようと思います。以下のようなことをまとめたいなと思います。 Kongの概要 基本的な機能の使い方(インストールはDocker前提) S…