feat: k8s-worker3/k8s-worker5をiBGPフルメッシュに参加させる - #57
Draft
kigawa01 wants to merge 1 commit into
Draft
Conversation
kigawa-net/kinfraの変更検出フィルタ実地検証を通じて、Kubernetes Pod
(CI Runner含む)がDNS VIP(10.0.0.53、iBGP経由で広告)に到達できない
ことが判明した。原因を辿ると、iBGPフルメッシュはk8s1/k8s2/k8s4の
コントロールプレーンのみで構成されており、ワーカーノード
(k8s-worker3/k8s-worker5)はメッシュに参加していないため、
10.0.0.0/24サブネット向けのルートを持っていないことが分かった。
- hardware/k8s-worker3, hardware/k8s-worker5:
- 既存のプライマリIP(192.168.1.x/24)を維持したまま、セカンダリIP
(docs/network.mdで既に予約されているserver_ip: worker3=10.0.0.30,
worker5=10.0.0.40)をnetplan経由で追加するnull_resourceを新規追加。
既存ファイルへの追記(バックアップ付き)であり、新規drop-inで
addressesリストを上書きしない(既存プライマリIPを失うとSSH接続
自体を失うため)
- module "bgp"(bgp-bird)呼び出しを追加し、iBGPメッシュに参加
- k8s-worker3の既存だが未配線だったbgp_local_as/bgp_peers変数を
修正(AS番号を他ノードと同じ65000に、bgp_peersの型を
list(string)に統一)。k8s-worker5には同等の変数を新規追加
- hardware/{k8s1,k8s2,k8s4}/variables.tf: bgp_peersのデフォルト値に
10.0.0.30/10.0.0.40を追加し、5ノードのフルメッシュに拡張
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
Terraform Plan
|
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変更検出フィルタ実地検証を通じて、Kubernetes Pod(CI Runner含む)がDNS VIP(
10.0.0.53、iBGP経由で広告)に到達できないことが判明した。原因は、iBGPフルメッシュがk8s1/k8s2/k8s4のコントロールプレーンのみで構成されており、ワーカーノード(k8s-worker3/k8s-worker5)がメッシュに参加していないため。docs/network.mdには既にk8s-worker3(10.0.0.30)/k8s-worker5(10.0.0.40)向けの静的IPが予約済みだったが、実際にはまだ割り当てられておらず、BGPモジュールも呼び出されていなかった。null_resource.bgp_static_ipが、各ワーカーの既存netplanファイルに直接セカンダリIPを追記する(新規drop-inファイルではなく、既存ファイルへの追記+バックアップ)。既存のプライマリIP(192.168.1.x/24)を上書きしないよう設計・ローカルでdry-run検証済みだが、実機での適用は必ずplanで差分を確認してから、可能であれば1台ずつapplyすることを強く推奨k8s-worker3は現在DiskPressure状態(別件、本PRとは無関係)。ディスク容量に余裕がない状態での追加変更はリスクが上がる可能性があるため、先に確認することを推奨Changes
hardware/k8s-worker3,hardware/k8s-worker5:null_resource.bgp_static_ip: 既存プライマリIPを維持したまま、セカンダリIP(var.server_ip)をnetplan経由で追加(バックアップ付き、追記のみ、netplan generateで検証後にapply)module "bgp"(bgp-bird)呼び出しを追加k8s-worker3の既存だが未配線だったbgp_local_as/bgp_peers変数を修正(AS番号を他ノードと同じ65000に、型をlist(string)に統一)。k8s-worker5には同等の変数を新規追加hardware/{k8s1,k8s2,k8s4}/variables.tf:bgp_peersのデフォルト値に10.0.0.30/10.0.0.40を追加し、5ノードのフルメッシュに拡張Test plan
terraform init -backend=false && terraform validateを影響する5モジュール全てで成功確認k8s-worker5(DiskPressureが無い方)でterraform plan→慎重にapplyし、SSH接続とBGPピアリングを確認してからk8s-worker3に進める10.0.0.53)への到達性がPodから確認できることを確認terraform-kinfra.ymlを再実行し、k8s-worker3のplanが完走することを確認🤖 Generated with Claude Code