fix(executor): K8s ClusterIP 10.43.0.1 不可達 — 加 K8S_API_SERVER_URL 覆蓋 + migration job
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m0s
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m0s
問題: in-cluster config 讀到 10.43.0.1:443,但 K3s Pod 內 iptables/kube-proxy
沒把流量導到實際 API server,導致 Connection refused,批准後 kubectl 永遠失敗
修復:
- executor.py: load_incluster_config() 後讀 K8S_API_SERVER_URL env 覆蓋 host
- 04-configmap.yaml: 設 K8S_API_SERVER_URL=https://192.168.0.120:6443
- migrate-sprint5r-telegram-message-id.yaml: approval_records 新增兩欄 migration job
E2E 驗證: kubectl rollout restart deployment/awoooi-worker success=True ✅
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -122,7 +122,15 @@ class ActionExecutor:
|
||||
try:
|
||||
load_incluster_config()
|
||||
config_source = "in-cluster"
|
||||
logger.info("k8s_using_incluster_config")
|
||||
# 2026-04-09 Claude Sonnet 4.6: K3s ClusterIP 10.43.0.1 在 Pod 內不可達
|
||||
# K8S_API_SERVER_URL 可覆蓋 host(e.g. https://192.168.0.120:6443)
|
||||
import os
|
||||
from kubernetes_asyncio.client import configuration as k8s_conf
|
||||
override_url = os.environ.get("K8S_API_SERVER_URL", "").strip()
|
||||
if override_url:
|
||||
k8s_conf.Configuration.get_default_copy().host = override_url
|
||||
config_source = f"in-cluster+override({override_url})"
|
||||
logger.info("k8s_using_incluster_config", override=bool(override_url))
|
||||
except ConfigException:
|
||||
# 不在 K8s 內部,嘗試 kubeconfig 檔案
|
||||
kubeconfig_path = Path(settings.KUBECONFIG_PATH)
|
||||
|
||||
@@ -97,3 +97,8 @@ data:
|
||||
ANSIBLE_CONTROL_NODE_HOST: "192.168.0.188"
|
||||
ANSIBLE_CONTROL_NODE_USER: "ollama"
|
||||
ANSIBLE_PLAYBOOKS_PATH: "~/openclaw-v5/ansible/playbooks"
|
||||
|
||||
# 2026-04-09 Claude Sonnet 4.6: K3s ClusterIP 10.43.0.1 在 Pod 內 Connection Refused
|
||||
# in-cluster config 讀到 10.43.0.1,但 iptables/kube-proxy 沒把流量導到實際 API server
|
||||
# 用此 URL 覆蓋 host,讓 executor 直接打 K3s API server node IP
|
||||
K8S_API_SERVER_URL: "https://192.168.0.120:6443"
|
||||
|
||||
Reference in New Issue
Block a user