Azure ポータルに表示される AKS の API サーバーアドレスの謎を追う

こちらは Microsoft Azure Advent Calendar 2024 の 6 日目の記事です。 AKS の API サーバーアドレスの謎 Azure ポータルでいろいろな AKS クラスタの状態を眺めていたところ、AKS の概要ページにある 「API サーバーアドレス」に表示されている内容がクラスタによって異なることに気づきました。 当然クラスタごとに一意となる文字列は異なるのですが、ドメイン部分が大きく異なります。 以下は状況を再現したクラスタのスクショです。 表示されている API サーバーアドレスには hcp.<location>.azmk8s.io と 00000000-0000-0000-0000-000000000000.privatelink.<location>.azmk8s.io の 2 種類あります。 クラスタ A の API サーバーアドレス aks-public-aks-public-fqdn-c209fd-mytdol9d.hcp.japaneast.azmk8s.io クラスタ B の API サーバーアドレス aks-public-aks-public-fqdn-c209fd-rzz0g24p.a47e9794-80a7-4088-9a92-3706e050f9cc.privatelink.japaneast.azmk8s.io 両クラスタともプライベート AKS クラスタとして構築しています。 パブリックアクセスはできないので、VPN などを使っていない端末では Azure ポータルからクラスタのリソースを見ようとしてもエラーになってしまいます。 同じプライベート AKS クラスタなのにどうして差が生まれてしまうのでしょうか? 結論から AKS の「パブリック FQDN enablePrivateClusterPublicFqdn」という設定によって API サーバーアドレスに表示される内容が変わります。 プライベート Azure Kubernetes Service (AKS) クラスターを作成する - Azure Kubernetes Service プライベート Azure Kubernetes Service (AKS) クラスターの作成方法について説明します。 learn.microsoft.com Azure CLI では --disable-public-fqdn オプションをつけて新規クラスタを作成、または既存クラスタを更新することで「パブリック FQDN」を無効化できます。 つまりデフォルトは有効状態です。 ...

December 6, 2024 · 4 min · @nnstt1

Terraform v1.10 で Ephemeral resources が使えるようになったので AzureRM Provider で試してみた

こちらは エーピーコミュニケーションズ Advent Calendar 2024 の 1 日目の記事です。 Ephemeral values の登場 先日リリースされた Terraform v1.10.0 で Ephemeral values という新しい機能が登場しました。 error calling resources.GetRemote: Get "https://www.hashicorp.com/blog/terraform-1-10-improves-handling-secrets-in-state-with-ephemeral-values": retry timeout (configured to 30s) fetching remote resource: 429 Too Many Requests Ephemeral values は次の要素で構成されています。 Ephemeral input variables / Ephemeral output variables Ephemeral resources Write-only attribute (v1.11 で追加予定) この中でも今回は Ephemeral resources に焦点を当ててみます。 Ephemeral resources Terraform にはクラウドプロバイダー等が提供しているリソースを管理する resource ブロックと、リソースを参照するための data ブロックがあります。 例えば、Azure のリソースグループ “example” を Terraform で作成する場合は resource ブロックを次のように記述します。 ...

December 1, 2024 · 7 min · @nnstt1

HCP Vault Dedicated で Secrets Sync が利用できるようになったので試してみた

HashiCorp Vault に Secrets Sync という機能があります。 これは Vault で管理しているシークレットを Azure Key Vault などのクラウドプロバイダが持つシークレットマネージャーや GitHub Actions などの開発ツールに同期できるものです。 Secrets Sync は Vault Enterprise で使えるようになり、マネージドサービスの HCP Vault Dedicated にもベータ機能として公開されていたんですが、不具合があったのかしばらくして利用できなくなっていました。 その後、2024年11月11日にリリースされた v1.18.1 で HCP Vault Dedicated の Secrets Sync が復活、正式に利用できるようになったので試してみました。 Secrets Sync を有効化 検証用の HCP Vault Dedicated クラスタを立てていたので、まずはそのクラスタで Secrets Sync を試しました。 HCP Vault Dedicated にログインすると Secrets Sync のメニューが追加されています。 Secrets Sync を使うには事前に有効化が必要なようです。 Vault Enterprise では自前で Secrets Sync の activate 作業が必要だったので、それと同じ役割なのでしょう。 [Enable] を押すと警告文が表示されるので、チェックをいれて [Confirm] を選択。 ...

November 25, 2024 · 3 min · @nnstt1

ボストン遠征レポート

HashiConf 2024 に現地参加するため海外出張という形でボストンに行ってきました。 日程は 2024/10/12(土)〜18(金) の一週間。 HashiConf 参加レポートは会社のブログに投稿したので、ここでは HashiConf 以外の部分をメインに、初の海外遠征の内容を記録します。 X.com にも #nnstt1_hashiconf というタグで投稿してます。 持ち物 まずはボストンに持っていった持ち物。 機内持ち込み手荷物は普段使っている無印の肩の負担を軽くするリュックサック、預け入れ手荷物は10数年前に買ったスーツケース(容量不明)。 リュックサックには長時間フライトを快適に過ごすためのグッズを入れた。 今回を機に用意したものもチラホラ。 用途毎に袋にまとめてリュックへ収納。 パスポートケース パスポートや現金(日本円、米ドル)のほか、フライトやホテルの予約のコピーを入れてた。 ホテルの部屋にいるとき以外は肌身離さず持ってた。 Anker の紛失防止トラッカーを装着。 水筒 機内でいつでも水分補給できるようにと持っていった。機内だけじゃなくボストン観光やホテル滞在時にも大活躍した。 個人ノートパソコン Macbook Air M3。 HashiConf 中は主に会社のぶログを書くのと SNS 用に使っていた。 今回の遠征のために買い替えたと言っても過言ではない。 業務用ノートパソコン 仕事せざるを得ない状況だったので持っていった。 業務用スマホ 同上。 Kindle Paperwhite 機内の映像コンテンツに飽きたときのために、と持っていったけど全く使わなかった。 名刺入れ 念の為に名刺を持っていったけどほとんど使わなかった。 プレーリーカードも忍ばせてて、無理やり読み取ってもらったことも。 技術書典の袋(画像左上) 機内持ち込みの液体、薬、お菓子、マスク、蒸気マスクといった機内で使うケア用品を収納。 ガジェットポーチ(画像左下) モバイルバッテリー もともと持っていた 20,100mh のやつ。 買い替えようかと考えていたけど、Macbook Air のバッテリー持ちを信じてそのままに。 イベント会場と宿泊先が同じホテルだったこともあり、結果的にこのモバイルバッテリーで十分だった。 AC アダプタ Anker Nano II 45W 一つだけ。 これだけでスマホも Macbook Air も業務用ノートパソコンも充電できる優れモノ。 自撮り棒 自撮りには使わなかったけど、知人の登壇風景を録画するときに一脚として使えて便利だった。 ELECOM の Bluetoothオーディオトランスミッター/レシーバー LBT-ATR01BK と φ3.5mm プラグ延長ケーブル。 自撮り棒の左隣のやつ。 機内のオーディオが Bluetooth に対応してなかったときに備えて、手持ちのワイヤレスイヤホンで機内映画の音声を聞けるようにするためのもの。遠征直前に購入したものの往復の便で大活躍した。 Microsoft Copilot ロゴのついた白いもの マルチ端子ケーブル(?)とかいう USB Type-A を USB Type-C、Micro USB、Lightning と繋げられるもの。9月の Microsoft イベントでノベルティとしてもらった。念の為持って行ったけど使わなかった。 ベージュのポーチ 無印の吊るして使える着脱ポーチ付ケース。衛生用品などを入れていて常に持ち歩いてた。 機内快適グッズ(画像右) 長時間フライトを快適に過ごすためのグッズをネットに入れてまとめて持ち運んだ。 フライトソックス 今回はじめて使ってみたけど効果あった、と思う……。このソックスはふくらはぎまで履くんだけど、ボストンついたときにはくるぶしまでずり下がっていたので怪しいが、帰りはちゃんと装着できていてむくみも無かった。 ヨックション(フライトソックス右のやつ) お尻を守ってくれるクッション。 お尻だけでなく腰も守ってくれた、神アイテム。 普段使いもできそう。 ネックピロー ポンプがついてて手で空気を入れられるタイプのやつ。 ユニクロのウルトラライトダウン ド定番のやつ、だけど今回はじめて買った。 機内の寒さ対策でもって行ったけど、ボストンは日本より 10℃ ほど気温が低くて結構着てた。 アイマスク アマゾンで買ったシルク 100% のやつ 今までアイマスク使ったことなかったけど周りの明るさを遮って寝られるのはよかった。 耳栓 ノイキャンイヤホンのバッテリーがなくなったときに使った。 スマホスタンド iFLEX ってメーカーのシリコン製スタンド。座席モニターの隙間に差し込んで使うやつ。 スマホを目線の高さに置いて動画見れると思って買ってみたけど、飛行機の揺れがダイレクトにスマホに伝わってほとんど使わなかった。 使い捨てスリッパ 機内では靴を脱いで過ごしたかったので、ビジネスホテルのアメニティだったスリッパを持参。 ホテルの部屋でも使ってた。 微妙にサイズが合わなかったので事前に確認しておくべきだった。 預け入れ手荷物も写真撮って記録しているけど下着が写ってるので割愛。 ...

October 28, 2024 · 4 min · @nnstt1

Grafana Cloud を始めてみた

先日、Grafana Meetup Japan というコミュニティのイベントが開催されていました。 キーノートは JAXA の SLIM 月面着陸時に使われていた Grafana ダッシュボードの紹介で、着陸時の配信を見ていた自分はこのイベントを視聴(オンライン参加)して、案の定 Grafana 熱が高まってしまいました。 Grafana Meetup Japan #1 (2024/04/24 19:00〜) ## Grafana Meetup Japanへようこそ! このイベントは、オープンソースの監視・可視化ツールであるGrafanaについて、互いに学び、発信し、交流することを目的としています。 Grafanaは、ITインフラやアプリケーションの監視から、IoTデバイス、ビジネス指標、工場、物流、自然災害、宇宙に至るまで、あらゆる分野でのデータ可視化と監視を支援するツールです。 日本でも広く利用されつつありますが、Grafanaの最新情報や導入事例、プラクティスを学んだり発信したりする場は多くありませんでした。そこで、Grafana Labsと共にGrafana Meetup Jap... grafana-meetup-japan.connpass.com 我が家の Grafana は Kubernetes クラスタで稼働済みですが、自宅外では見れないような状況です。 そこで、Grafana 熱が冷めないうちに Grafana Cloud を使って外部からも自宅ラボの状況を確認できるようにします。 今回は Grafana Cloud を登録、自宅内の Kubernetes クラスタにある Prometheus をデータソースとしてダッシュボードに表示するところまでやっていきます。 Grafana Cloud の登録 まずは Grafana Cloud の登録から。 Grafana Cloud | Observability platform overview grafana.com 公式サイトでアカウントを作成して、Grafana stack とやらを作成します。 ...

May 1, 2024 · 2 min · @nnstt1

ドメインを Cloudflare に移行したので cert-manager も対応した

Google Domains が事業売却されるという話から約半年、重い腰をあげてついに我が家のドメインも Cloudflare に移行対応しました。 半年も経てば Cloudflare への移行手順は多くの記事で紹介されているので、今回は Cloudflare 移行に伴って発生した自宅ラボで使っている cert-manager の移行対応を記録しておきます。 なぜドメイン移行先を Cloudflare にしたのか このブログでも使っている nnstt1.dev というドメインは Google Domains で購入していましたが、ネームサーバーを設定してレコードの管理自体は Azure DNS でおこなっていました。 Azure DNS で管理しているなら Azure 自体でドメインを購入すればいいじゃないかと思ったのですが、Azure でドメインを購入するサービスの App Service ドメインでは com、net、co.uk、org、nl、in、biz、org.uk、co.in のトップレベルドメイン (TLD) しか対応していなかったため、.dev ドメインは別のサービスを利用するしかありませんでした。 (そもそも Google Domains にしたのも Azure が .dev に対応してなかったからなのに、今回も移行できないか確認してしまったという…) というわけで他のドメインサービスを探すことになったのですが、おネームドットコムは論外ということ以外は特にこだわりはありませんでした。 半年前でもそうでしたが、やっぱり Cloudflare が移行先として人気のようで、右にならえで自分も Cloudflare に移行することにしました。 移行自体はすんなり完了したのと、レコード自体の管理も Terraform を使うようにしました。 cert-manager の対応 自宅ラボの Kubernetes クラスタでは証明書管理のための cert-manager を使っています。 クラスタで(自宅内に閉じて)公開しているサービスの証明書を Let’s Encrypt で発行していますが、そのためにはドメインの検証が必要になります。 検証の方法は 2 つあって、Let’s Encrypt から対象ドメインを使っているサービスにアクセスする HTTP Validation と、DNS に指定の TXT レコードを作成する DNS Validation があります。 ...

March 17, 2024 · 2 min · @nnstt1

2023 年振り返りと 2024 年の抱負

今年は2度目の転職をするなど人生の転機にもなった年でした。 そんな 2023 年の振り返りと 2024 年の抱負を掲げてみます。 2022 年振り返りと 2023 年の抱負 今年の年末は大きな仕事があって丸一日休みという日がなく慌ただしい日々です。 とはいえ、スポットで対応する感じでスキマ時間があるので、昨年掲げた抱負を確認しつつ1年を振り返ります。 昨年は ↓ の抱負を掲げていたようです。 家族との時間を大切にする 転職の目処をつける 2022 年の振り返り 育休取得 今年の4月に双子(第2、3子)が生まれました。 長男出生時は特別休暇をもらったので、その日数(3日?5日?既に覚えてない)休んだだけでした。 その休み中は書類関係の手続きしたり、退院準備をしたり、と育児以外のミッションをしていたらあっという間に休みが終わりました。 次の子も同じ感じになるかなぁと朧気ながら思っていましたが、昨年に双子妊娠がわかって、更には妻が早期に入院する可能性が出てきた(結果的にそうなった)ため、育休を取ることにしました。 結果的には 3~4 月に長男分、5~7 月に次男三男の育休を取得して、計5ヶ月お休みしました。 5ヶ月は職場への負担が大きいかと思ったのですが、現職では男性の育休がボチボチ出てきたところだったので、相談はしやすかったです。 そういうことで、今年1年の約半分は家族メインの生活ができたので「家族との時間を大切にする」という抱負は達成できました。 育休中の振り返りは Note に投稿しました。 育休が終わったので振り返ってみた 転職活動 昨年から転職活動をしていましたが、子供が生まれることもあって中断していました。 まだ具体的な内容は言及できませんが「転職の目処をつける」という抱負は達成できたと思います。 アウトプット 今年は本ブログに 17 本投稿しました。 ラズパイ Ceph を Zabbix で監視する Cephadm のアラートを消す PG の修復 Ceph ホストのメンテナンス Red Hat Developer Subscription の有効期限が切れたので再登録した AMD CPU 使っていて RHEL 9 にアップグレードできなかった話 Fedora ラズパイの PoE+ HAT ファンをコントロールする 仮想化基盤の Proxmox VE への移行 Proxmox VE を管理するため Terraform に入門した Terraform で Proxmox VE の VM パラメータ設定 ansible.cfg を作成する ansible-config init コマンド AWS SAA に合格したので振り返る Rook v1.10 へアップグレード Terraform で AGIC を使おうとしてハマった K8s@home で LT したので振り返る Terraform で AKS と AGW をデプロイする Podman Desktop がリリースされたのでインストールする Google Analytics で年間のアクセス数を見ると、以下のような感じでした。 Proxmox VE の記事が多く見ていただけたようです。 Twitter でも Proxmox のワードを見かける頻度が増えた気がします。 昨年は ↓ の抱負を掲げていました。 ...

December 31, 2023 · 2 min · @nnstt1

自宅ラボに Terraform Cloud Operator for Kubernetes を入れた

普段プライベートでは Terraform Cloud は Azure のリソース(このブログの Static Apps や自宅ラボと連携しているサービス)を管理するために使ってます。 最近 Terraform Cloud を触る、というかドキュメントを読み漁る機会があって、この機会に Terraform Cloud Operator for Kubernetes を自宅ラボに入れてみるかぁ、となったのでやってみました。 ちなみに最近アップデートされた v2 のほうです。 HCP Terraform Operator for Kubernetes overview | Terraform | HashiCorp Developer The HCP Terraform Operator for Kubernetes allows you to provision infrastructure directly from the Kubernetes control plane. developer.hashicorp.com Terraform Cloud Operator for Kubernetes は長すぎるので、以降 TFC Operator と記載します。 TFC Operator は何ができるの? TFC Operator はカスタムリソースを使って Terarform Cloud のワークスペースやモジュール、そしてエージェントプールを Kubernetes のリソースとして管理することができます。 ...

December 19, 2023 · 2 min · @nnstt1

自宅ラボ ジャーニー 2023

この記事は エーピーコミュニケーションズ Advent Calendar 2023 の1日目の投稿です。 今年の 4 月に株式会社エーピーコミュニケーションズ (以降、APC) に入社して半年経ちました。 今はがっつり Azure をやっている感じですが、前職では Azure だけでなく色々なことにチャレンジさせてもらいました。 その中でも一番最初にチャレンジ(通常業務とは別で取り組んだ業務改善)したのは Ansible の導入でした。 そもそも Ansible とはなんぞや?って状態だったので Ansible を実際に触ってみようと、まずは Ansible もくもく会に参加しました。 当時はまだコロナ禍前の世界ということもあり Ansible コミュニティが開催していたもくもく会は数少ないオンライン参加が可能な勉強会で、これが自分にとって初めての技術コミュニティへの接触でした。 それから度々 Ansible コミュニティのイベントに参加していき、その中で某金魚の方を始めとした APC 所属の方をよくお見かけして APC という会社を知りました。 自分の興味が Ansible に加えて Kubernetes や Azure に広がっていった際も APC の名前を見ることが多く、Ansible に限らずアウトプット活動が盛んでとても楽しそうな会社という印象を持っていました。 アドベントカレンダーもその楽しそうな活動一つで、APC のアドカレ(組織のアドカレと言ったほうが正しいかも)に参加することは一種の憧れでもありました。 そんな APC に入社できたのも、自宅で自由に検証ができる環境「自宅ラボ」を導入してスキルアップできたのが大きいです。 というわけで、アドカレの初日にポエムっぽい投稿になってしまいますが「自宅ラボ ジャーニー 2023」と銘打って自分の過去ツイートを引用しながら自宅ラボの遍歴を紹介します。 ちなみに見出しは有名どころのサブタイトルを引用していますが特に意味はないです。 【序章】自宅ラボは出ているか? はじめに自宅ラボを導入するに至った動機ですが、理由は単純で「自由に使える環境が欲しい」と思ったからです。 冒頭で話したとおり、前職で自動化やサーバ管理を推進するために Ansible を触り始めたのですが、検証環境を用意するのもなかなか難しいものがありました。 特にプロキシに阻まれまくった。 最初の頃は Ansible もくもく会で使える環境で十分満足していたのですが、そのうちもっと色々な検証をしたくなって自由に使える プロキシに阻まれない 自宅ラボを導入することにしました。 おそらく自宅ラボを構築している方の多くが同じ動機なんではないでしょうか。 あと、ロマンとか探究心みたいな気持ちも少しはありましたね。 クラウドサービスを利用するのもよかったんですが、インフラの勉強をするにあたってやっぱり物理で触れるものが欲しいという理由でクラウドは除外しました。 とは言っても一部のサービスは自宅ラボと連携する形で利用しています。 そういうわけで自宅ラボを導入することを決意したのですが、この時期に Ansible と並行して OpenShift にも興味を持ち始めていて、まずは OpenShift の導入を目標に自宅ラボを構築していきました(そもそも最初に自宅ラボとして OpenShift を選択することの無謀さをまだ知らなかった)。 ...

December 1, 2023 · 5 min · @nnstt1

Azure Key Vault と連携して HashiCorp Vault を Auto Unseal する

おうち K8s クラスタで HashiCorp Vault を動かしているのですが、Pod が再起動すると Vault が Seal 状態となってしまうので都度 Unseal Key を入力しています。 そろそろ煩わしさが限界なので Azure Key Vault と連携して Vault の Auto Unseal 機能を使ってみます。 Auto-unseal Vault using Azure Key Vault | Vault | HashiCorp Developer Enable auto-unseal with Azure Key Vault. developer.hashicorp.com Auto Unseal 設定 Auto Unseal を使うためには以下の設定が必要になります。 Entra ID サービスプリンシパル Azure Key Vault Vault Config サービスプリンシパル Microsoft Entra ID に Vault の Auto Unseal で使用するサービスプリンシパルを作成します。 ...

November 21, 2023 · 4 min · @nnstt1