kOps + Amazon VPC CNI で IP prefixes を使って多くのコンテナを EC2 インスタンスにたてる

2021年7月までは Kubernetes で AWS VPC CNI を使い EC2 を Node として使用していた場合の Pod の最大数は Elastic Network Interface (ENI) の数と各 ENI の IP Address の数に依存していた。 計算式は下記に記載されていて max Pods = ENI * (IPv4 per EN…

チェアコンシェルジュのススメ

自分は普段作業をする時は以前下記のブログでも書いた昇降台を使っている。 blog.hatappi.me 座って作業しつつ会議があったり気分転換したい時は立って作業ができるので昇降台は本当に買って良かったと思っている。 ただ座ってる時に使っている椅子はどこか…

Github Actions で OIDC を使ったクレデンシャルを取得する機能の Dependabot の挙動確認

先日 Github から OIDC を使用して AWS や GCP などの Cloud Provider からクレデンシャルを取得する方法に関する発表がありました。 github.blog これを使うことで今までのように Github Secrets に各 Cloud Provider のクレデンシャルを設定する必要がなく…

iTerm2 + tmux でトラックパッドを使ってスクロールする

タイトルの通りで iTerm2 + tmux を使っている時にtmuxのプレフィックスの ctrl + b から [ を押した時にスクロールモードになるのだけど、ここでトラックパッドでスクロールをすると、画面ごと?スクロールされて意図した通りに動かない。 調べると .tmux.c…

kOps v1.21.0 を使い Amazon EKS Pod Identity webhook をやめて IRSA を実現する

kOps の v1.21.0 が今月の頭にリリースされて、その中の1つに "Service Account Issuer Discovery and AWS IAM Roles for Service Accounts (IRSA)" という変更が入りました。 この変更を使うことで kOps は OIDC ディスカバリ ドキュメント を S3 に公開し…

Mac のキー入力が遅かった原因は Mac 標準の入力ソースだった

在宅勤務が続く中で仕事用の Mac と 個人用の Mac を切り替えて使っているときに体感で感じるほどに個人用の Mac のキー入力に対するディスプレイへの反応が遅いことに気がついた。 分かりやすい例だと長ーい文章を開いて↓矢印キーを押し続けたときに、画面…

FlexiSpot で脚を買って天板は自作した

タイトルの通り最近 FlexiSpot で脚を買って天板を自作しました。 このブログではなぜ買うことにしたのか、なぜ天板を自作したのか、どうやって自作したのかの過程を書いていきます。 なぜステンディングデスクを買うことにしたのか もともと自宅の開発環境…

IstioのEnvoyFilterでgzip圧縮をしていく

今回はIstioのEnvoyFilterでのgzip圧縮をしたのでそれを書いていきます。 gzip圧縮自体は Envoy が提供しているのでこれを使用するだけなのですが、EnvoyFilter を初めて使ったのでそれのメモがてらの記事でもあります。 https://www.envoyproxy.io/docs/env…

リリースノート作るのは Release Drafter で良さそう

自分の中でやりたいけどやらないことの1つにリリースノート作りがある。 手動で作るのは面倒なので、自動で作成したい。 後は個人で作っている Rails アプリケーションや Go で作った CLI などがあるので、言語とかアプリケーションに依存しない方法で探して…

Rails の Controller の params ってどうやって生成されているの?

Rails を使っている時 Controller で params を呼び出すと GET リクエストだったらクエリパラメータは取得できるし POST であれば Content-Type が multipart/form-data や application/json とかに関係なく値を取得できるようになっている。 便利!!! Rails …

Argo CD と Argo Workflows で SSO + RBAC

blog.hatappi.me 上記の記事で紹介したように最近プライベートKubernetesの構成を変更したことで複数のドメインを設定できるようになった(金銭面)ので、今まで Port Forward でアクセスしていた Argo Workflows を ALB にぶら下げて https 経由でアクセス…

ALB Ingress Controller から Istio Ingress Gateway + AWS Load Balancer Controller に変更する

ALB Ingress Controller から Istio Ingress Gateway + AWS Load Balancer Controller に変更しました

BAROCCO MD770 RGB BT を買いました。

blog.hatappi.me 前回キーボード買ったのが2018年12月21日なので、約2年いかないくらいのタイミングでキーボードを買い換えました。 キッカケとして何かのタイミングで前のキーボードを作ってるMistel社が新しいキーボードを今年出したのを知ったからです。 …

Gomodoroの記録をPixelaでつける

最近 Github の Profile を作ったけど、置くものも特になくてとりあえず Most Used Language だけ置いていた。 github.com しかしさすがに寂しいなと思ったので、何かを追加することにした。 そこで思いついたのが仕事やプライベートで作業する時にポモドー…

goplsをdaemon化して使う

普段コードは vim + vim-lsp で書いていて Go を書く時は language server として gopls を使っている。 engineering.mercari.com このイベントに参加した時に gopls が daemon で起動できるのを知って、今回 Mac で daemon 化して使用することにした。 公式…

GitHub Actions で失敗した時も step を実行する

今日ふと下記のようなことを思った。 Github Actionsでワークフロー失敗したらslack通知みたいなのどうやると良いかなと思ってたけどworkflow_runというイベント使って別のワークフロー作ってあげる感じかな?— はたっぴ (@hatappi) 2020年9月21日 たしかに …

Argo CD で 個人の Github アカウントでログインして権限管理をする

最近 Argo CD を使いはじめた。 argoproj.github.io ログインはID, Passwordによる方法も提供されていますが、SSO によるログインも可能になっています。 Github や Google アカウントを使う場合は Argo CD では build-in されている dexidp/dex というライ…

GCP のプロジェクトを Terraform で作成する

題名の通りで今回は GCP のプロジェクトを Terraform で作成します。 Google Provider には google_project があるので、これを使うだけなのですが、ちょっとハマったのでそのメモの記事です。 www.terraform.io まずは Terraform で GCP 上のリソースを扱う…

Kubernetes で Spinnaker を使う ~インストール編~

blog.hatappi.me 前回の記事でクラスタのPodがたくさん作れるようになったので今回は気になっていた Spinnaker をインストールして使ってみることにしました。 動機としては会社で Spinnaker を使っているのが理由です。 会社だとメンテナンスされた Spinnak…

kopsでNetworkをamazon-vpc-cniからCalicoに切り替えた

プライベートで使用している Kubernetes のクラスタは今まで amazon-vpc-cni-k8s を使用していました。 amazon-vpc-cni-k8s は EKS で公式でサポートされています。 基本的にはこれを使うで良いのですが、個人的に辛い欠点がありました。 それは Node あたり…

Goで開発してる時のデバッグ

blog.golang.org 4月20日に出たこの Go Developer Survey 2019 Results 眺めていて、 I depend upon the following techniques when developing in Go が気になった。 これは Go で開発する時にどういう手法に頼ってるかみたいな内容で、一番は fmt.Print() …

kops で構築した k8s クラスターの apiserver を ACM で https にしてアクセスする

ある日 kops で構築した k8s の apiserver にブラウザからアクセスした時にオレオレ証明書使った時とかにでるようなプライバシーエラーになっていて、これを解消するために試行錯誤した話。 今回は kops の 1.18.0-alpha.3 を使っています。 cluster_spec に…

Goでlive reloadingツール作った

GW もうすぐ終わりですね。 今回はコロナの影響で家でゆっくりでした。 今回はタイトルにあるように live reloading するツールを Go で作成しました。 コードを変更したらアプリケーション全体が実行され直すやつです。 github.com 特徴 特徴としては設定フ…

Goで良い感じにencrypt, decryptしたい

Go で暗号化、複合化を良い感じにやりたい。 良い感じとはプロダクションはAWS KMSを使用しつつローカルはKMSに依存しないものを使いたい。という感じ。 自分で作っても良いかなと思ったけど既存でないかと探したらThe Go Cloud Development Kitというものを…

Diagramsを使ってsystem architecture図をアップデートし続ける

最近 Twitter を見ていたら Diagrams という Python 書いたら良い感じのシステム構成図ができるサービスが流れてきた。 diagrams.mingrammer.com プライベートのインフラ構成図は今まで Cacoo で描いていたけど、今回 Diagrams に移行した。 なぜ Diagrams …

kops で立てた kubernetes の master, node に Session Manager でセッションを開始する

kops で EC2 上に master, node インスタンスをたてて kubernetes のクラスタを立てた時に各インスタンスにSSHしたいとする。 そんな時に思いつくのが踏み台サーバーを立ててそれ経由で各インスタンスにSSHする方法 これはこれで良いのだけど踏み台自体のポ…

kopsでmasterやnodeに自作ポリシーやAWSポリシーをアタッチする

AWS の EC2 上に Kubernetes でクラスター立てて運用する時、 EC2 に対して任意のポリシーをアタッチしたいことがある。 kops を使う場合クラスターを最低限動作させるために必要なポリシーは kops 側で作ってくれる。 ただプラスで自分でポリシーを付与する…

ターミナルに良い感じにタイマーを描画したい

昔 Go の勉強と思って作ったターミナルでポモドーロするツールを年末だし0から書き直すことにした。 そこでまずメインとなるタイマーの部分を書き直してみることにした。 まず今の挙動は次の gif 画像です。 今のタイマーの問題 さきほどの gif を見てわかる…

CKAD に合格しました

Certified Kubernetes Application Developer (CKAD) に合格しました。 www.cncf.io 66% の合格ラインのところを 74% でなんとか通過しました。 この記事ではとりあえず何やったかとか書いていきます。 試験の内容はたぶん書いちゃダメなので当日どんな雰囲…

kops で t3 インスタンスの T2/T3 Unlimited を無効にする

kops で kubernetes のクラスタを構築する時には master と node となるインスタンスが1台以上必要になる。 kops は Instance Groups という概念で これらを表現していて AWS だと AutoScalingGroup にあたる。 今までは t2 インスタンスで master と node …