1クール続けるブログ

とりあえず1クール続けるエンジニアの備忘録

kubebuilderを利用して簡素なk8sのControllerを作ってみる

k8s

記事一覧はこちら 背景・モチベーション Controllerを作るときの指針 参考文献 Controllerの作り方について Controllerの仕事 kubebuilderを利用して雛形を作り不要なものを捨てる Controllerの実装 実装の大枠 動作確認 背景・モチベーション Controllerを…

GitHub Actionsでmarkdownをpdfで出力する

記事一覧はこちら 背景・モチベーション MarkdownのファイルをPDFに変換するのはVS Codeのエクステンションで出来るけど、Github Actionsでpushするごとに自動で生成してくれたら楽だなあと思いやってみました。 ついでにパブリックベータで提供されている、…

競プロの勉強するときにテストも書く with Go言語

記事一覧はこちら 背景・モチベーション 前半をさっと流し読みだけで止まってしまっている問題解決力を鍛える!アルゴリズムとデータ構造をちゃんと解きながらやろう!と思い、重い腰を上げて取り組み始めました。 始めたはいいものの、入力と出力がそれぞれ…

GoのhttpサーバにおけるMiddlewareとは

記事一覧はこちら 背景・モチベーション 参考文献 GoのHTTPサーバの処理の流れ Middlewareの実装について 背景・モチベーション go-chi を好んで使うのですが、ふんわりとした理解でMiddlewareを宣言していました。Middlewareという名称も個人的にはあんまり…

ArgoCDでArgoCD自身を管理する

記事一覧はこちら 背景/モチベーション ArgoCDについて 概要 アーキテクチャ Core Concepts ArgoCDでArgoCD自身を管理する 方針 実践 動作確認 背景/モチベーション 業務で利用し始めたArgoCDリソースを個人でも試しておこうという試みです。ArgoCDをArgoCD…

docker buildxがマルチアーキテクチャでビルドできる仕組みをさらっと確認してみた

記事一覧はこちら 背景/モチベーション buildxとは 概要 ビルダーインスタンスとは マルチプラットフォームビルド QEMU で異なるアーキテクチャのコンテナイメージをビルドする QEMUとは dockerからQEMUが呼ばれる仕組み 果たしてbitbucket pipelineでマルチ…

external-dnsの仕組みを少し覗いてみる

記事一覧はこちら 背景・モチベーション EKS(or GKE)を運用するときにお世話になる external-dns をふんわりとだけ理解て利用してきたのですが、どのようにDNSレコードを操作しているのかをちゃんと理解したいと思ったのがきっかけです。 使い始めた当初は…

sealed-secrets 学んだ

記事一覧はこちら 背景・モチベーション ArgoCD導入時に、リポジトリやk8sクラスタの認証情報といったセンシティブな情報をk8sのSecretとして保存する必要が出てきました。さらにそれらをGitOpsで管理しなければなりません。 SecretをマニフェストとしてGit…

conftest学んで試してみた

記事一覧はこちら 要約 Conftestとは Open Policy Agentとは OPA Document Modelについて Rego Languageとは インストール方法 実行方法 Conftestが認識するルール ConftestでKubernetesのマニフェストをテストする Deploymentにポリシーを設定してみる 要約…

Grafanaのダッシュボードをgrafonnetを使って管理する

記事一覧はこちら 要約 jsonnetとは grafonnetとは jsonnet+grafonnet でダッシュボードを作成してみる 要約 Grafanaはすごくパワフルな可視化ツールですよね。 例えば、kuberntesやECSのクラスタ1つごとにダッシュボードを作成することも多いかと思います。…

EKSでのAWSユーザorロール認証の流れを追う

EKS

記事一覧はこちら 要約 EKSにおけるAuthentification(認証) aws-authの定義の仕方 要約 下記の記事で、k8s内のリソースからAWSのリソースを操作する時の権限のマッピングについて書いたけど、今回はIAMロールorユーザがk8sのリソースを操作する時の権限のマ…

kustomizeはCRDのpatchesStrategicMergeに対応していなくて辛い話(2021/1現在)

記事一覧はこちら CRDでkustomize使いたい… kustomizeはCRDのSMPに対応していない SMP対応依頼のIssue発見 v1.16以降のkubectl patchの挙動 Server-side Apply時の挙動 kustomizeのSMP対応が待たれる CRDでkustomize使いたい… ということがたまーに出てきま…

EKSにおけるPodレベルでのIAMロール割当

記事一覧はこちら NodeレベルでのIAMロール割当しちゃってる… Kubernetesの中での権限制御 Kubernetesからawsリソースを操作する時の権限制御 ノード単位での権限制御 pod単位での権限制御 IAM Roles for Service Accounts OIDC (OpenID Connect) Service Ac…

mtail事始め

記事一覧はこちら mtail使っているけどちゃんと理解できていないかも… mtailについて 概要 入手方法 実行方法 メトリクスの公開先 mtailの設定DSL mtailのテスト 他にも色々機能がある… mtail使っているけどちゃんと理解できていないかも… という僕がmtailを…

mavenキャッシュをDockerコンテナに閉じ込めてビルド高速化を図る

最近、全く更新出来ていなかった。 もう少し一つ一つの記事を軽い気持ちで書いてみてもいいのかもしれない(個人ブログだし)。 記事一覧はこちら 概要 方法 概要 JenkinsやCodeBuildなど、Dockerデーモンを叩ける環境でMavenを使ったJavaアプリケーションの…

linux/amd64でlinux/arm64アーキテクチャのイメージをPullする

AWSでm6g/r6g/c6gとarmのCPUが乗った新世代のインスタンスタイプが続々とGAになりましたね。 自分の運用している環境でコストとパフォーマンスにどのくらいに改善が見られるのか楽しみですね。EKSのOptimized AMIのARM版はまだGAされていませんが、もしされ…

TerraformでGKEクラスタ構築

記事一覧はこちら 業務ではdeployment managerというGCPから公式が提供している、Google Cloudリソースの作成と管理を自動化するインフラストラクチャデプロイサービスを利用して、Kubernetesクラスターやノードプールの作成を行っています。 ですが、GCPの…

Accept-CharsetとContent-Typeの不一致でJerseyは404を返す

かなりハマってしまったので残しておきたいと思います。 とあるWebクライアントから通信を行った際に、ChromeやFirefoxなどのモダンブラウザではステータスコード 200 OK を返していたリクエストパスで、ステータスコード 404 NotFound を返す事象と遭遇しま…

Sassもさらっと学んだ

いつもはDockerやKubernetesとべったりなのですが、最近はWEBフロントエンド+サーバサイドの開発をやっています。 サーバサイドは新卒で入った会社から慣れ親しみがありましたが、その会社のクライアントサイドがWindowsのデスクトップアプリ(※)だったため…

画像はhtmlとcssのどちらで定義をすべきか

developer.mozilla.org 支援技術は背景画像を解析できません。画像がページの全体的な目的を理解する上で重要な情報を含んでいるのでいる場合は、文書上で意味を記述してください。 MDNのドキュメント内にある、cssのbackground-imageプロパティには上記のよ…

JSの履歴APIを使って同一ページ内での疑似遷移でもブラウザバックできるようにする

タイトルを付けるのが難しかった…未来の自分が見返したときにこれでピンとくるのだろうか? 例えば、下記のようなケースで同一ページでもユーザからするとページ遷移したかのように感じるということがあります。 Ajax通信でデータをフェッチし、既存のデータ…

JSをさらっと学んでみた

ちゃんと書いたことあるのが、GoとJava(とC#)だけの自分がJavaScriptを速習しました。というのも、業務で急に必要になってしまったからです。 以前少し触ったことがあるものの中途半端な状態で触るのも無責任と思い、下記を読んで、気をつけようと思った点…

apacheのmod_cacheでお手軽キャッシュ機構

ユースケース 下記のような条件下にあるが、どうしてもキャッシュを使ってみたい場合に、mod_cacheは有効なのではというお話。 Amazon CloudFrontやAkamaiなどのCDNが諸事情によって使えない場合 お金をこれ以上かけられない ログを特定のフォーマットで出力…

システム監視の基礎についてまとめてみる

今度、社内でシステムの監視について話す機会があるので、自分用にまとめてみました。 参考にした書籍は「入門監視」「Site Reliability Engineering」「k8sで実践するクラウドネイティブDevOps」です。 SRE Workbookの方も読んで後で追記したい。 監視の定…

【読書メモ】 k8sで実践するクラウドネイティブDevOps

読書メモ www.oreilly.co.jp ↑の書籍の自分用読書メモ 現在の知識からの差分もしくは知っていても整理できていなかった部分を中心に 途中、自分で調べた補足なども入っているので本の内容でない部分もあり chapterごとに気になった点 3つの革命 クラウドの創…

【AWS Re:Inventレポート】CON334-R1 - [REPEAT 1] Running high-security workloads on Amazon EKS

Running high-security workloads on Amazon EKS 5日目にして初めてセッションに参加しました。 セッション参加して思ったこととしては、まず前を取ることが重要だなと感じました。英語読むスピードはどうしても日本語より遅くなってしまうので、追いきれな…

【AWS Re:Inventレポート】CMP318-R1 - [REPEAT 1] Kubernetes on Spot Instances: Optimize for scale and cost

Kubernetes on Spot Instances: Optimize for scale and cost 今まで受けてきたKubernetes系のWorkshopはカテゴリがContainerでしたが、今回はComputeです。最終日はセッション1つだけなので、Workshopとしては最後になります。どうやらEKSでも使用しているW…

【AWS Re:Inventレポート】CON206-R2 - [REPEAT 2] Management and operations for Amazon EKS

Management and operations for Amazon EKS 朝はDr. Werner VogelsのKeynoteを開始から1時間位みてきました。Firecrackerはcontainerdをベアメタルサーバごとに共通化させていて、それもオープンソースとして開発しているなど、非常に面白かったです。Fargat…

【AWS Re:Inventレポート】CON208-R1 - [REPEAT 1] Build your microservices application on AWS Fargate

Build your microservices application on AWS Fargate Fargateの初心者向けセッションです。 選ぶときに興味のあるトピックであれば、レベル関係なく受けようと思っていたのが良くなかったです。このセッションが4日間で受けたWorkshopのどれよりも簡単で少…

【AWS Re:Inventレポート】DOP201-R2 - [REPEAT 2] DevOps essentials: Introductory workshop on CI/CD practices

DevOps essentials: Introductory workshop on CI/CD practices お米食べたい気持ちが最高潮に達してしまった3日目2つ目のワークショップです。 AWSのCodeシリーズを使ったWorkshopです。CodeBuild/CodeDeployは使ってみたほうがいいんだろうなとは昔から思…