fix: control_plane_hostをFQDNに変更しk8s1/k8s2/k8s4のAレコードを追加 - #51
Draft
kigawa01 wants to merge 1 commit into
Draft
Conversation
hardware/k8s-worker3等の各モジュールがcontrol_plane_hostにbareホスト名
("k8s1"/"k8s4"等)をデフォルト値として使い、SSH接続先として解決していたが、
このbareホスト名はどのDNSインフラ(Knot DNS authority/kresd/CoreDNS)にも
存在しないレコードだった。kigawa.net.zoneにもk8s1.kigawa.net等のAレコードは
無く、k8s.kigawa.net(CNAME/A)のみが存在していた。
これまで動いていたのは、手動で/etc/hostsを設定済みの管理マシンから実行
されていたためと考えられ、IaCで管理されたCI Runner(Kubernetes Pod)からは
"ssh: Could not resolve hostname k8s1"で失敗していた
(kigawa-net/kinfraの変更検出フィルタ実地検証中、k8s-worker3のjoin_infoで発覚)。
- hardware/zones/kigawa.net.zone: k8s1(10.0.0.103)/k8s2(10.0.0.120)/
k8s4(10.0.0.140)のAレコードを追加(docs/network.mdの静的割当IPを使用)
- hardware/{k8s1,k8s2,k8s4,k8s-worker3,k8s-worker5}/variables.tf:
control_plane_hostのデフォルト値をbareホスト名からFQDN
(例: "k8s1" → "k8s1.kigawa.net")に変更
ゾーンの変更はk8s1/k8s2/k8s4上のKnot DNSにterraform apply(each moduleの
knotサブモジュール経由)で反映される。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
2 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
kinfraのR2変更検出フィルタ実地検証を通じて、
hardware/k8s-worker3のjoin_infoが一貫して失敗する根本原因を特定した:(#48でjoin_infoスクリプトに診断メッセージを追加して判明)
調査の結果、
k8s1というbareホスト名は、このリポジトリが管理するどのDNSインフラにも存在しないことが分かった:hardware/zones/kigawa.net.zone)にk8s1.kigawa.netのAレコードが無い(k8s.kigawa.netはあるがk8s1は無い)kresd) はkigawa.net等のゾーンをKnot DNS authorityに転送するのみで、bareホスト名の解決手段は持たないこれまで動いていたのは、手動で
/etc/hostsにk8s1等を設定済みの管理マシンからrun.shベースのCIが実行されていたためと考えられる。IaCで管理されたCI Runner(Kubernetes Pod)にはそのような手動設定が無いため、ssh: Could not resolve hostname k8s1で失敗する。hardware/k8s-worker3以外にも、k8s1/k8s2/k8s4/k8s-worker5が同様にcontrol_plane_host変数にbareホスト名をデフォルト値として使っており、同じ問題を抱えている(今回はk8s-worker3のリソースがtainted状態だったため顕在化したが、他のモジュールも潜在的に同じ問題を持つ)。Changes
hardware/zones/kigawa.net.zone:k8s1.kigawa.net(10.0.0.103) /k8s2.kigawa.net(10.0.0.120) /k8s4.kigawa.net(10.0.0.140) のAレコードを追加(IPはdocs/network.md記載の静的割当を使用)。SOAシリアルを更新hardware/{k8s1,k8s2,k8s4,k8s-worker3,k8s-worker5}/variables.tf:control_plane_hostのデフォルト値をbareホスト名からFQDNに変更(例:"k8s1"→"k8s1.kigawa.net")ゾーンファイルの変更は、k8s1/k8s2/k8s4上のKnot DNSに実際に反映されるには各モジュールで
terraform applyが必要(module "knot"経由でゾーンファイルがSSH+リモートコマンドで配信される)。マージ後、plan/applyで実際にDNSサーバーへ反映されるまではk8s1.kigawa.net等はまだ解決できない点に注意。Test plan
terraform init -backend=false && terraform validateを影響する5モジュール全てで実行し成功を確認hardware全体(またはk8s1/k8s2/k8s4個別)でterraform applyしゾーンを反映terraform-kinfra.ymlをworkflow_dispatchで再実行し、k8s1.kigawa.netが名前解決できること、k8s-worker3のplanが完走することを確認🤖 Generated with Claude Code