k3s の ServiceAccount Token Issuer を独自 URL に変える
GitHub Actions とはてなブログの連携テストついでの記事。
k3s の ServiceAccount Token Issuer を独自 URL に変える
LAN 内の private な k3s を、外部の OIDC verifier と federate させたかった。WIF Provider は受信した JWT の iss claim を文字列照合するので、k8s デフォルトの https://kubernetes.default.svc.cluster.local を相手に渡すのは見栄えも悪いし将来 IdP を再利用しづらい。https://oidc.<自分のドメイン> に揃える方法と、その過程で知った小ネタをメモしておく。
kubectl get --raw が便利
最初に「今 apiserver は何を返してるか」を確認したい。/.well-known/openid-configuration を curl で叩こうとすると以下の 2 段でハマる:
$ curl https://192.168.10.110:6443/openid/v1/jwks
curl: (60) SSL certificate problem: self signed certificate in certificate chain
$ curl -sk https://192.168.10.110:6443/openid/v1/jwks
{"kind":"Status","status":"Failure","message":"Unauthorized","code":401}
- TLS: k3s が自前 CA で署名した cert を持ってる。Mac の trust store にはない
- 認証:
/openid/v1/jwksは anonymous には開放されていない (k3s default ではsystem:serviceaccountsgroup のみ accept)
-k で TLS をバイパスして、さらに kubectl create token default | xargs -I {} curl -sk -H "Authorization: Bearer {}" ... みたいに SA token を投げれば見れるが面倒。
実は kubectl get --raw 一発で解決する:
kubectl get --raw /.well-known/openid-configuration | jq . kubectl get --raw /openid/v1/jwks | jq .
kubeconfig の certificate-authority-data で CA verify を解決、client-cert/key で認証を解決してくれる。apiserver の任意エンドポイントを叩けるみたいで、知らなかった。
デフォルトはこう:
{ "issuer": "https://kubernetes.default.svc.cluster.local", "jwks_uri": "https://192.168.10.110:6443/openid/v1/jwks", "response_types_supported": ["id_token"], "subject_types_supported": ["public"], "id_token_signing_alg_values_supported": ["RS256"] }
issuer を変える
kube-apiserver には --service-account-issuer というフラグがあり、ここに渡した値が発行 JWT の iss claim に入る。
k3s は kube-apiserver を別プロセスにせず k3s server に embed しているので、apiserver の独立 systemd unit も静的 manifest (/etc/kubernetes/manifests/kube-apiserver.yaml) も存在しない。vanilla kubeadm 用の情報を探すと混乱する。k3s では k3s server 経由で apiserver の引数を渡す。
sudo EDITOR=vi systemctl edit --full k3s
ExecStart= ブロックの中、既存の '--disable=servicelb' \ の下あたりに 2 行追加:
'--kube-apiserver-arg=service-account-issuer=https://oidc.your-domain.example.com' \ '--kube-apiserver-arg=service-account-issuer=https://kubernetes.default.svc.cluster.local' \
1 行目が「新規 token に署名する時の iss」。2 行目はデフォルト issuer を「検証時の accept リスト」に残しておく保険。--service-account-issuer は複数指定可能で、kube-apiserver の公式仕様にこう書かれている:
When this flag is specified multiple times, the first is used to generate tokens and all are used to determine which issuers are accepted.
なので k3s 再起動直後に「まだ rotation していない古い token を持った Pod」がいても、その token は accept リストに残った旧 issuer で検証され、TokenReview API がコケない。 反映:
sudo systemctl daemon-reload sudo systemctl restart k3s
確認
kubectl get --raw /.well-known/openid-configuration | jq .issuer # => "https://oidc.your-domain.example.com"
念のため実際に発行された JWT を見て iss を確認:
kubectl create token default -n default | cut -d. -f2 | base64 -d 2>/dev/null | jq .iss # => "https://oidc.your-domain.example.com"
ハマったポイント: discovery doc に 1 つしか出ない
--service-account-issuer を 2 回渡したのに、/.well-known/openid-configuration のレスポンスには 1 個目 (primary) しか含まれない。
{ "issuer": "https://oidc.your-domain.example.com", ... }
「旧 issuer 消えた?」と一瞬焦るが正常動作。OpenID Connect Discovery 1.0 仕様で issuer フィールドは単一値と決まっている。2 個目は apiserver 内部の accept リストに乗るだけで外部からは見えない (公示はしないが受理はする)。
config.yaml で書く手もあった
k3s には /etc/rancher/k3s/config.yaml という公式のオプション設定ファイルがある。あれば k3s server 起動時に自動で読まれる。systemd unit 直書きより、こっちの方が k3s upgrade で unit が再生成されたときに編集が消えない、というメリット。
# /etc/rancher/k3s/config.yaml kube-apiserver-arg: - service-account-issuer=https://oidc.your-domain.example.com - service-account-issuer=https://kubernetes.default.svc.cluster.local
systemd unit から該当行を消して systemctl restart k3s すれば移行完了。CLI 引数と config.yaml は merge されるので、混在状態でも動く。
今回は systemd unit に直接書いてしまったが、後から config.yaml に寄せても良いし、寄せなくても害はない。
まとめ
LAN 内 k8s を OIDC IdP として外部 federation に登録したい時の最小手順:
- apiserver に
--service-account-issuer=<新 URL>を渡す - 旧 issuer も並列で渡しておく (既存 token 互換)
kubectl get --raw /.well-known/openid-configurationで確認kubectl create token defaultで実際の JWT のissを確認
これで k8s 側完了。外部 IdP 側 (GCP WIF Provider 等) に同じ issuer URL を登録すれば federation 成立。
なお issuer URL を変えても /openid/v1/jwks を internet 公開する必要は別問題。GCP WIF の場合は WIF Provider 設定の oidc.jwks_json に JWKS を静的に注入できるので、LAN 専用クラスタのまま federation を通せる。
参考
- k3s Server CLI Reference (
--kube-apiserver-arg): https://docs.k3s.io/cli/server - k3s Installation Configuration (
/etc/rancher/k3s/config.yaml): https://docs.k3s.io/installation/configuration - Kubernetes kube-apiserver Reference (
--service-account-issuer): https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/ - Kubernetes Service Account Issuer Discovery: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery
- OpenID Connect Discovery 1.0 : https://openid.net/specs/openid-connect-discovery-1_0.html
2024 年買ってよかったもの
いつもスマホばかり見てる皆様、お久しぶりです。今年も残すところあとわずかとなりました。皆様にとって今年はどんな年だったでしょうか。私はたくさんのものを買いました。その中でも、特に買ってよかったと思うものをいくつか紹介したいと思います。なお、各商品に Amazon のリンクを貼っていますが、アフィリエイトではないのでご安心ください。
スピール膏
ランニングをしていたら、足に豆というか魚の目というか痛いやつができてしまいました。そこで本製品を貼って、2,3日すると固くなった皮膚がふやけて取れるようになりました。
らくハピ マッハ泡バブルーン
洗面所にオリャ!ってやると、泡が出てきます。なんか汚れが取れるっぽいです。見た目が面白いので買いです。
プレミアム野菜チョッパー ステンレス鋼 7枚刃
ガシャンとすると野菜が切れるやつです。これを使うと、野菜を切るのが楽になります。まだ使ったことはないですが、俺はたくさん野菜を切れるぞという気持ちを持っているのは QOL を向上させます。
猫用自動トイレ
これを語らずして 2024 年を語ることはできません。12 月の Amazon ブラックフライデーで買ったので使い始めて1ヶ月経たないですが、確実にマストバイかつ買ってよかったものナンバーワンとも言えます。 猫飼いの方はわかると思いますが、猫のお世話で大変なのはおトイレ掃除です。いつ行われるかわからない排泄物の処理は、猫飼いの方にとっては日々の負担です。そこで登場するのが、猫用自動トイレです。これを使えば、猫がトイレを使った後に自動で排泄物を処理してくれます。これにより、猫飼いの方はトイレ掃除の負担を大幅に軽減できます。また、本製品はいい感じに消臭するやつが付いているので、ニオイもだいぶ軽減されます。メリットは製品のプロモーション通りなので、ええやんという感じなので敢えて微妙な点を挙げると
- 本体が大きい
- これは仕方ないですが、大都会一人暮らし男性の部屋にはちょっと大きい
- 思ったより消臭は弱い
- けれども元々のトイレよりは全然いい
- 重みで猫の有無判定しているので、トイレじゃなく上に乗ったらトイレ判定される
- 些細だけど、うちの猫はトイレの上で和んでいるので誤作動しがち
くらいでしょうか。それでも、猫飼いの方にはおすすめです。
ヒゲ脱毛
去年の6月くらいから始めたので今年ではないのですが、確実にやっててよかったものです。一年半くらい経過しましたが、そこそこ効いています。思い立ってすぐに実施したのでクリニックの比較をしてないので分からないですが、自分はゴリラクリニックでやりました。各地にクリニックがあり、どこでも受けられるのがいいような気がしています。麻酔はプラス3,4万円で付けられるそうですが、自分は付けませんでした。痛みはあるけど、長男でなければ耐えられないかもしれません。
毎日つかえる重曹パッド
台所掃除にいい。
まとめ
以上、2024 年に買ってよかったものを紹介しました。皆様も、今年買ってよかったものがあれば教えてください。それでは、良いお年をお迎えください。
2024年3月の振り返り
こんにちは。3月の振り返りです。
今日で社会人2年目が終わります。大変お世話になりました。
走り
3 月は 5 ランで 30 km 走った。大体週イチペースです。
暖かくなってきたりして走りやすい反面、マラソン的にはシーズンオフになる時期なので、のんびりと走っていました。 幸い、自分は花粉症がないので、この時期は走りやすいです。引き続き、体力やタイムが落ちない程度に走りたい。
ちなみに次回の赤羽マラソンは 6 月です。初めてのハーフマラソンが2023年6月の赤羽マラソンだったので、1周年ということで、どれだけタイムが伸びているか挑戦したいと思います。
読書
最近あまりにも集中力がないので、SINGLE TASK 一点集中術――「シングルタスクの原則」ですべての成果が最大になる という本を読んでみました。 自分の集中力がない原因は、通知をすぐに確認したくなることだと考え、シングルタスクや集中力について書かれているのでとりあえず読んでみました。
集中して本を読んでみた結果、眠くなりました。本の内容は概ね同意で、つまりマルチタスクするなとのことでした。
また、最近 X で宇宙兄弟の名場面的なものが流れてきた影響で、読み始めました。 昔、アニメは見ていたのでコミックス18巻から読んでいます。日々人が復帰テストを受けた後くらいです。
ここから先の展開は知らないので、楽しみです。島耕作は読んでません。
ねこ
風邪が治ったと思ったら、またくしゃみが出るようになりました。薬を飲んで、体感くしゃみや鼻水が減ったので、もう少し様子を見てみます。 ちなみに、みなさんは猫の体温の測り方を知っていますか?
英語
相変わらで、ちらほら Elsa をしたり、英語の動画を見たりしています。やはりアウトプットが足りないので、もっと英語で書いたり話したりする機会を増やしたいです。 チームを動かすIT英語実践マニュアル という本を読んでいますが、普段から英語で業務をしていないと応用しにくく、なかなか難しいですね。
仕事
4月から社会人3年目になります。2年目は、新しいやっていきプロジェクトが立ち上がったり、他の開発チームにお邪魔したりと自由にやらせてもらえる環境でした。 引き続き頑張っていきたいです。好き勝手やってきましたが、そろそろなにかにフォーカスして強みを持ちたいですね。
その他
- 2つライブ(片方はフェス)に行きました
- 室内フェスは足がつかれるのでいい感じな靴とか中敷きでいったほうが良いですね
- 亀戸二郎にいきました
- 二郎系は8ヶ月ぶり、直系は1年ぶりでした
- 学生時代は少なくとも週イチで食べていたので、めっちゃ減ったなという感じです
- 二郎(系)をたくさん食べても大丈夫な身体を維持したいですね
- マネーフォワード
- 何も機能していない

2024年2月の振り返り
こんにちは。2月の振り返りです。
走り
2 月は 12 ラン で約 40 km 走った。思ったより走っていなかった。 インターバルトレーニングを始めたのでランの回数よりも距離が少ないのはそのせいかも。インターバルトレーニングは適当に 1 km を 4 分で走り、 0.2 km ジョグをするというのをやっています。㌔ 4 分でもめっちゃキツイです。
暖かくなる前にまたハーフに挑戦したい気持ちもある。目標は 2 時間を切る。赤羽マラソン以外を希望。
お出かけ
沼津に行って、深海水族館に行ったり、海鮮丼や魚を食べた。 アブラボウズを食べたかったけど、禁漁中だったので食べられなかった。残念です。
深海水族館は、普段は深海に居られる魚達がみれるのでおすすめです。水族館の方がシーラカンス解説会をしているので、それを聞いてから見るとより楽しめると思います。
メンダコが捕獲されて、タイミングが合えば水族館でメンダコも見られるかもしれないそうです。自分が行った時はメンダコの展示はなかったので、次回に期待。

日帰りで行ったけど、宿泊込みで沼津からの熱海とか、伊豆の方に行くのも楽しそうです。次に行くときはメンダコリベンジを兼ねて、宿泊込みで行きたい。
ねこ
元気そうですが、くしゃみをして鼻水を巻き散らかしているので病院に行きました。 診断としては、風邪を引いたとのことでした。固形の薬と目薬をもらいました。固形の薬は餌だと思っているらしく、ボリボリ食べています。
その後2週間くらいして、比較的くしゃみが減ってきたので、薬が効いているのかなと思っています。それにしても病院代が高いですね。おすすめペット保険ゆる募です。
あと、賞与で猫の給水機を買った。音が静かで、水が汚れにくいので良いです。猫も気に入っているようです。自分もたまにそこから飲んでいます。
読書
※ 島耕作のネタバレがあります。
島耕作が下火です。社長(福岡出向)、取締役になってからおもんないです。いまは中国にいますが、太極拳の達人に弟子入りして武道家編が始まると期待しましたが裏切られました。
最近はもっぱら、薫る花は凛と咲く を読んでいます。おすすめです。
この前、小学生でもわかる世界史という本を本屋で見かけましたが、アレが噂のぴーよぴよ速報というYoutubeのチャンネルの本だったみたいです。立ち読みした感じわかりやすそうだったので、買おうかなと思っています。
英語
Elsa Speak を程々にやっています。適当にデイリーレッスンしてます。自分はPremiumプランで永年会員だけど、調べるとPremiumプランとかProプランとかで表記揺れっぽかったり、永年会員の情報が無いのでなんかわかんないけど、とりあえず使ってます。 あとはMr. Evineの 中学英文法を修了するドリル を買いました。流石に簡単すぎて逆にモチベが上がらないです。もともと英文法はあまり好きではないので余計にという感じです。
最近はUdemyで英語の講座を聞きながら寝ています。知らんけど起きたらコース修了していてウケます。
仕事
大きい変化はないです。やっていること/やりたいこと が周りを巻き込む必要があったり意外と大掛かり(?)だったり勢いが必要ですが、大規模だったりコンテキストが複雑だったりするので大変そうです。がんばれ。
その他
- マネーフォワードを入れた
- 使ったお金の分類が面倒でただの資産確認になっている
来月のTry
- 引き続き走る
- 冬のウェアが安くなりそうなので買おうかな
- 朝方になる
- 7時に起きちゃおうかな、社会人なので
- 洗濯機のクリーニングをする
- 自分でやるやつではなく業者を呼ぶ
- 賞与の使い道
- Elsa Speak のデイリーをやる
- Elsa Speak の会話のやつか英会話をやる
2024年 を考える
あけましておめでとうございます。
まずは2023年の目標を振り返り、2024年の目標を考える。
2023年の目標 の振り返り
実績
- コンタクトをつくる
- 成功した
- 新しい言語を1つ以上学ぶ
- 英語、英会話を勉強する
- やったとは言えない程度
- 体重をもとに戻す
- もとが何を指しているかわからないが、減少してるのでヨシ
- 月に1冊は技術書以外の本を読む
- 月1冊は読んでないのでダメかな
- ふるさと納税をする
- してない
- なにかで発表する
- LT はした
総評
- 継続的に何かをする系はできてない気がするので、2024年でやりたいことは継続的にすることを念頭に置いて考える
2024年の目標
- 英語をやる
- 英会話、動画視聴、英語の本を読む、などなんでもいいけど一日一回はやる
- が、お気持ち的には英会話をやりたい
- 走る
- 走る習慣は出来ているので、これを継続する
- ハーフorフルマラソンを完走する
- ハーフは2時間以内
- フルなら完走
- できたら遠征っぽい感じで走りたい
- 新しい言語を1つ以上学ぶ
- お金に詳しくなる
- まずは家計簿的なアプリを始める
- アプリでお金の流れを把握する習慣をつける
- 貯金もする
- ふるさと納税然り、投資然り、お金に関する知識がないので勉強したい
- まずは家計簿的なアプリを始める
- キャリアを定める(現職)
- 現職は3年目に突入するので、方向性を定めたい
- 1,2年目でわりかし好きなように動いていた(動くことを許容していただいた)けど(特に2年目)、それらをちゃんとアウトプット/アウトカムとして昇華させてやるべきことを見定める
- ねこと仲良くする
- 最近は仲が良いので、これを継続したい
- 昨年に比べ、ねこの通院も減っているので続くと良い
- 島耕作を読破する(最新に追いつく)
- 身を固める
いくつ達成できるかで賭けましょう
2023 年の振り返り
時系列で振り返っていきましょう
1月
トピック
所感
- 記憶無し
2月
トピック
- マイヘアのライブに行った
- 誘われて行ったけど、いまいちだった
- 人生初の火鍋を食べた
所感
- 火鍋、うまい
3月
トピック
- 結婚式に行った
- 伊豆に行った
- なぜか蕎麦屋で2時間待たされた
所感
- 2時間待った蕎麦は普通だった
4月
- 社会人2年目になった
- Uverworld と BiSH の対バンライブに行った
- 最初で最後の BiSH のライブだった
- DevOpsDays Tokyo 2023 に参加した
所感
- 2年目も頑張ろう
5月
トピック
- VIVA LA ROCK に行った
- 体調が悪かったのでリポビタンDの一番高いやつをがぶ飲みしたらなんとかなった
- SUPER BEAVER と Sumika が良かった
- 伝説の飲み会があった
所感
- 特に無し
- GW は何してたんだろう
6月
トピック
- 赤羽最強マラソン大会出場
- 納得できない内容だったのでリベンジを誓う
- 福岡に行った(出張)
- チームメンバーとオフラインで交流できて非常に良かった
- 最強モツ鍋、最強水炊き、最強νガンダムを食べた
- GitHub Universe 2023 に参加した
- リッツカールトンすげえ
所感
- この月はイベントが多かった
- 楽しい月だった
7月
トピック
所感
- 歯医者には定期的に行こう
8月
トピック
- キャンプに行った
- 河口湖のキャンプ場がめっちゃ良かった
- その後のサウナも良かったけど施設名を忘れた
- マラソンシューズを買った
- そこそこのお値段したけどいい買い物だった
- ロッキンに行った
- アチチでした
所感
- 8月は暑かった
9月
トピック
- SWEET LOVE SHOWER2023 に行った
- 遠征っぽいフェスは初めてだったけど楽しかった
- 2日目は雨だったけど、雨の中のポルノは神だった
- インターンの受け入れをした
- 最近の学生はすごいぜ
- 赤羽最強マラソン大会リベンジ
- 走り切ることに成功した
- 次はもっとタイムを伸ばしたい
- 北区花火大会を見た
- コロナ明けで割とちゃんとした花火大会だった
- 近所なのも尚良しだった
- 有料席を買った方が良かったかもしれない
所感
- 赤羽最強マラソン大会は修行
10月
トピック
- 同期の結婚式で福岡に行った
- あまり遊ぶ時間がなかった
- ウェルビーの半個室が安定して良い
所感
- 特に無し
11月
トピック
- 体験入部を始めた
- 個人的には2024年からがキリが良いかな~と思っていたけど、受け入れ先に相談したら翌週から始めることになった
- ありがてぇ!
- LT した
所感
- 特に無し
12月
トピック
- 金沢旅行
- 初めての石川、金沢に行った
- 食べ物が美味しい。やっぱ海鮮が美味しいところはいいね
- コロナも明けて忘年会ラッシュで楽しかった
所感
- 特に無し
良かった点
- そこそこライブに行けた
- ハーフマラソンに挑戦した
- ランニングが趣味と言えるくらいに継続出来ている
- 体験入部を始めた
- 色んな人と交流できた(主に飲み会で)
- 猫の通院がおわった!
改善・反省点
- 歯医者には定期的に行くべき
- 振り返りをサボりがち
- 積読が多い
- 継続的な勉強が出来ていない
- 特に英語
そのうち、2024年の目標を立てるので乞うご期待。
お世話になりました。来年もよろしくお願いします。
2023年8月の振り返り
毎月恒例の振り返りです。
マラソン
8月は70㌔走りました。普段夜中走っているのですが、夜でも非常に蒸し暑く過酷でした。 毎回6kmほど走っているけど、体力消耗がヤバく、3kmラン -> 休憩 -> 3kmラン で走っていました。タイムも思うように伸びず、停滞の夏といった感じ。9月には再び赤羽最強マラソンを走るので、長い距離を走る練習をしていきたい。
あと、最強ランニングシューズを買った。買ったのは NIKEインヴィンシブル 3 SE というやつでクッションがボヨンボヨンだったのが決め手。いまのところめちゃ走りやすく、以前のザコシューズに比べて中長距離走る際の疲労や負担がかなり軽減されていて満足している。きっとハーフマラソンも完走できるはず。
ライブ
夏ということでロッキンとラブシャに行った。両フェス2日間行ったけどどちらのフェスもめちゃ良かったのでライブ熱が高まった。ライブで初めてみたThe Bawdiesが良すぎた。CDJとか冬のイベントは行ったこと無いのでそちらも行ってみたい。
キャンプ
河口湖のコテージに泊まった。気温こそ30度に届いてたけど(多分)湿度が低いので不快な暑さがなく、8月の真ん中だったけど涼しくて過ごしやすかった。2日目は富士山が見られるスパみたいなとこでサウナをキメた(施設名忘れた)。

山梨はそんなに涼しいイメージがなかったけれど避暑的なキャンプをしに行くのにもいいなという感想でした。
仕事
いま取り組んでいるプロジェクトのフェーズが変わりつつあり面白くなりそう。他チームとのやり取りが増え、意思決定もしないといけないことが出てきたりで大変だけど新鮮でたのしい。あと、チラホラと弊チームの週間連載をに参画し始めた。
読書
DevOpsハンドブックを読んでいるけど一生終わらない。なぜかはわからない。 あの頃の増田こうすけ劇場 ギャグマンガ家めざし日和 を読んだ。すげー天才だなという感想でした。久しぶりにギャグマンガ日和を読みたくなった。
英語
全然やってない。英語のドキュメント読んだりたまに英語の動画を見るだけ。俺は弱い。
KPT
前回の Try
- ✅ 朝型人材になる
- ❌ 家計簿的なアプリをちゃんとやる
- ❌ 歴史の本を読む
- ❌ 英語をやる
Keep
- ちゃんと走った
- あそんだ
- 特に夏のイベントに参加したのはよいことだ
Problem
- 英語やっていない
- 読書をしていない
Try
- 家計簿的なアプリをちゃんとやる
- 歴史の本を読む
- イヤホン修理
- 英語
また来月