kopsで構築したKubernetesクラスタでIRSAを使う

IAM Role for Service Account(IRSA)自体はEKS以外でも利用可能ということだったので,自前のkopsクラスタで構築してみた. ほぼ,こちらのお世話になっている.

blog.hatappi.me

ほぼ同じことをしているのだが,いかんせん複雑なので自分用の記録として残しておく.

続きを読む

ArgoCDをAWS EKS上で構築する

GitOpsがやりたくてArgoCDを導入しようと思ったんだけど,そもそもArgoCD自体はみんなどこで動かしてるんです?

もちろんin clusterでも動くので,デプロイ対象のアプリケーションが乗っているKubernetesクラスタに構築しようと思いました.

が,ArgoCDのチュートリアルを試すという意味では,みんなport-forwardを使う例が多くて(確かに圧倒的に楽なんだけど),本番で使うことを前提に構築している例があまり見当たらない. ので,AWS EKS上に,外部(といっても社内とか)からアクセスできるArgoCDを,helmを使って構築する例を書き残しておく.

続きを読む

AWS KMSで暗号化したSecretsをそのままapplyしたい!

KubernetesでGitOpsを実践しようと思うときに,Secretsをどうするかという問題は結構大きい.GitOpsをしていなかったとしても,Kubernetesyamlファイルをgitにコミットしようと思うとき,Secretsをどうするかというのは結構大きな問題ではないだろうか. PrivateRepositoryであれば,そこまで危なくはない.けれどパスワードとかクレデンシャルとかを,base64エンコードしただけの平文でコミットしたくはない.

となると何かしらの方法で暗号化してコミットしたくなる. どうせ普段AWSを触ることが多いのだし,AWS KMSでSecretsを暗号化したら良くない?それ自体はいろいろOSSがあるのだし.

そして, KMSで暗号化したSecretsをそのままapplyできたら良くない?

と思ったので作りました.

github.com

続きを読む

WhalebirdはMisskeyサポートを開始します

Whalebird 4.0.0より,Misskeyをサポートします. Misskeyのドメインを入れていただければ,ログインできるようになってます.

f:id:h3poteto:20200325215330p:plain

ただし,一部機能は使えない(かもしれない)のと,対応していない機能はあります.

対応予定

  • 絵文字リアクション
  • 引用Renote

その他要望,バグ等がある場合はIssueを立ててください.

github.com

続きを読む

PodにfluentdのSidecarを自動でinjectする

本番でWebアプリケーションを運用していると,様々なログを取り扱う必要がある.これはKubernetesでも同じで,Kubernetes上で動かしているコンテナのログも,何かしらの方法で集約してどこかに蓄えておいて,分析とか検索とかをしたくなる.

こういう用途でまず思いつくのがfluentdで,fluentdはKubernetes用にDaemonSetを用意してくれている.

github.com

こいつを使えば,コンテナの標準出力に出てきたログは,すべてfluentdで拾えることになる.

では,標準出力以外の,例えばファイルに吐き出すようなログはどうなるだろう? こういったログを集めるためには,アプリケーションのコンテナのサイドカーとしてfluentdを動かし,ログファイルをVolumeMountすることでサイドカー側のfluentdにログファイルを読ませる,というようなことをする必要がある.

blog.mosuke.tech

でもこれ, アプリケーションが増えてきたときに,毎回すべてのDeploymentにSidecarの定義書くのめんどくさくない?

というわけで作りました.

github.com

こいつをKubernetesクラスタに入れておくと,(annotationsで指定した)Podを立ち上げたときに,勝手にfluentdのSidecarを突っ込んでくれる.

続きを読む