KubeClarity とは KubeClarityとはKubernetes環境におけるセキュリティ管理を支援するオープンソースツールです。 具体的にはKubernetes上に存在するコンテナイメージのSBOMを生成し、SBOMを元に脆弱性スキャンを行います。 そしてスキャン結果をWeb UI上で…
例えば以下のような定例用のGoogleドキュメントがあったとします。 テンプレートが下のほうにあり、上にその週のアジェンダをどんどん追加していくスタイルのドキュメントです。 ローテーションで司会が変わっていきます。 この毎週のアジェンダ作成が面倒で…
Datadogのグラフをみていると、いつアプリケーションがデプロイされたのか気になることがあります。 「レスポンスタイムが急に悪くなってるけどデプロイ影響?」「エラーレートが跳ねるタイミングがあるけどデプロイ影響?」など。 そこでDatadogのグラフに…
2024/1/23に Docker Build Cloudが発表されました www.docker.com 早速Docker Build Cloudを試してみました Docker Build Cloudとは サイト: https://www.docker.com/ja-jp/products/build-cloud/ ドキュメント: https://docs.docker.com/build/cloud/ イメ…
OpenSearchで手動スナップショットを作成するためには、事前にスナップショットリポジトリの登録をしなければなりません。 docs.aws.amazon.com 公式ドキュメントのサンプルにはpythonのコードが掲載されています。 Using the sample Python client この登録…
はじめに Amazon OpenSearch Serviceで、同一VPC内にあるドメイン同士でRemote Reindexをする方法を紹介します。 まず、公式ドキュメント docs.amazonaws.cn 前提条件 注意すべきは前提条件の部分です。 ・ドメインでデータ ノードに T2 または T3 インスタ…
2023/11/16 に BuildKit クライアント用の Amazon ECR でのリモートキャッシュサポートの発表 | Amazon Web Services ブログ という記事が発表されて、イメージビルド時のcache-toのオプションmode=maxが使えるようになった。 待望のアップデート。このissue…
概要 Fargate上でEKSのPodを動かしている場合に、Datadog Cluster Agentのマニフェストはどう定義すればいいか分かりづらかったのでメモとして残しておきます。 公式ドキュメント: https://docs.datadoghq.com/ja/integrations/eks_fargate/#cluster-agent-%…
背景 CI環境でのDockerイメージビルドの速度向上は、多くの開発者にとって切実な課題です。 簡単な対策は CircleCIでは Docker レイヤー キャッシュ (DLC)を有効にする。 GitHub Actionsでは docker/build-push-actionでcache-from: type=gha cache-to: type…
TL;DR - uses: docker/build-push-action@v3 with: context: . tags: ${{ steps.login-ecr.outputs.registry }}/${{ env.MY_REPOSITORY }}:${{ env.MY_TAG }},${{ steps.login-ecr.outputs.registry }}/${{ env.MY_REPOSITORY }}:${{ env.MY_CACHE_TAG }} pu…
Podのservice accountを指定する場合、マニフェストファイルのspec.serviceAccountNameに書きますが、service accountを使わなくなったのでファイルから行ごと消してapplyしたけど反映されない事象に遭遇しました。 調べると、以下が理由。 github.com つま…
Kubernetesクラスタ上で動かすSidekiqに対してヘルスチェックを導入した話 | Money Forward Engineers' Blog を参考にさせていただきましたが、調べるとヘルスチェックスクリプトを自作しなくても済むことが分かりました。 TL;DR livenessProbe: exec: comma…
システム運営をやっていると、システムメンテナンスをやらないといけない場面が出てきます。 ミドルウェアのバージョンアップ、データのマイグレーション、大きな機能リリースなどなど。 そこで事故なくメンテナンスを終わらせるためのTipsを書き残しておき…
shepherdmaster.hateblo.jp の続き&解決編です。 add DaemonSet eviction option for empty nodes by yaroslava-serdiuk · Pull Request #3824 · kubernetes/autoscaler · GitHub がリリースされたので、--daemonset-eviction-for-empty-nodes=trueオプショ…
KustomizeのComponent機能を使うと、特定の環境に対して一連のマニフェストを生成することができます。 github.com 今回はComponent内のmanifestファイルを環境に応じて変える方法を紹介します。 言葉では伝わりづらいかと思うのでファイルツリーを載せます…
背景 Datadogで発生したアラートをもとにオンコールしたい場合、PagerDutyを使うのが一番簡単ですが、Incident Managerを使うともっと安価にオンコールが実現できるのではということで、連携してみました。 連携の概要 Datadog → EventBridge → Incident Man…
負荷試験ツールのLocustでリクエストがfailするとFailuresタブから情報が見れるのですが、いつfailしたかが分かりません。 locustにはevent hook機能があり、以下のように書けばどんなリクエストがいつfailしたか標準出力されます。 from locust import even…
EKS Cluster Autoscalerとログ保存用Daemonsetの組み合わせでNodeスケールイン時にログが失われる問題に遭遇した。 前提 Cluster Autoscaler v1.17.4を使用 fluent/fluentd-kubernetes-daemonsetを使用して、毎分S3にログを保存 現象 Cluster AutoscalerがNo…
背景 簡単に定期的にPodを再作成する方法を紹介します。 なんで定期的にPodを再作成したくなるかというと、例えば以下のような理由が思いつきます。 メモリリークしていてずっと稼働させるのはまずい DBを負荷に応じてオートスケールさせていて、スケールア…
背景 Kubernetes(EKS)のNodeのディスク使用率がどんどん上がっていっているので原因を調べた 調査 $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 1.3M 1.9G 1% /run tmpfs 1.…
AWSコンソールのEKS画面で Your current user or role does not have access to Kubernetes objects on this EKS cluster This may be due to the current user or role not having Kubernetes RBAC permissions to describe cluster resources or not havin…
海外の公開されているキャリアラダー集 www.swyx.io これが参考になった。 まずゼロからキャリアラダーを作成するのは非常に難易度が高い。どの等級にどんな役割を期待するのかを定義しそれを言語化していく作業は並大抵のことではない。 そこですでに公開さ…
EKSのIAM roles for service accounts機能(サービスアカウントにIAM ロールを割り当てる機能)を使いたい場合の注意点です。 AWS SDKのバージョンを確認する IAM roles for service accounts機能を使いたい場合、サポートされているバージョンでないと機能し…
この記事はterraform Advent Calendar 2020の19日目です。 TL; DR tls_certificateリソースを使う Terraformのaws_iam_openid_connect_providerリソースのthumbprint_listに自動で値を入れたい EKSで IAM roles for service accounts機能(PodにIAMロールを割…
Athenaのパーティションプロジェクションを試していたらちょっとハマったのでメモしておく 追記(2021/03/23) projection.columnName.digitsを設定すれば パターン1でもきちんと検索できる パターン1 S3には /app_log/year=2020/month=06/day=05/hour=04/ の…
kustomize 2.1.0で機能追加、変更点があったのでまとめる kustomize/v2.1.0.md at master · kubernetes-sigs/kustomize · GitHub プラグイン機構の導入 kustomize の generator / transformer の振る舞いを変えてみる | TECHSCORE BLOG に詳しく書かれている…
結論 RubyのDateクラスには startを引数に指定できるメソッドがある。 docs.ruby-lang.org startはグレゴリオ暦をつかい始めた日をあらわすユリウス日を表す。 引数のstartにDate::GREGORIANを指定すると、常にグレゴリオ暦で処理してくれる。 Date.valid_da…
TL;DR ログ1行のサイズが5KB以下なら5KBとして料金計算される 経緯 仕事でAmazon Kinesis Data Firehoseを使う機会があり、本番導入してみたところ料金が高かった。一日数千円。。 改めてログ量、ログサイズから自分で計算してみた。 CloudWatchからFirehose…
monday.comというとても便利なタスク管理ツールがあります。 以下でも紹介記事を書きました。 tech.studyplus.co.jp monday.comは(当たり前ですが)要ログインなので、monday.comのURLをSlackに貼っても展開されません。 それだととても不便なので、URLを展開…
Spinnakerについて簡単に調べたので自分用にまとめておく Spinnaker とは Spinnakerとは、マルチクラウドに対応した継続デリバリのプラットフォームです。 デプロイパイプラインの管理機能を備え、Red/Blackデプロイ(Blue/Greenデプロイ)やカナリアリリー…