Docker 重启后恢复
Docker Desktop 或 Docker daemon 重启后,k3d 节点、MySQL 容器 IP、Redis Cluster 或 etcd 状态可能变化。
快速体检
docker ps --format '{{.Names}} {{.Status}} {{.Networks}}'
k3d cluster list
kubectl get nodes -o wide
kubectl -n ovra-zero get pods,svc,statefulset,ingress,endpointslice
修复 k3d 节点
如果节点 NotReady:
docker restart k3d-ovra-agent-1
kubectl get nodes -o wide
替换成实际异常节点容器名。
修复 MySQL EndpointSlice
查看新 IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ovra-zero-mysql
更新 Helm:
helm upgrade ovra-zero deploy/helm/ovra-zero \
--namespace ovra-zero \
--set mysql.external.ip=<MYSQL_CONTAINER_IP> \
--wait \
--timeout 5m
恢复 Redis Cluster
开发环境可重建 Redis:
kubectl -n ovra-zero delete statefulset redis --ignore-not-found
kubectl -n ovra-zero delete pod -l app.kubernetes.io/component=redis --ignore-not-found
kubectl -n ovra-zero delete job redis-cluster-init --ignore-not-found
helm upgrade ovra-zero deploy/helm/ovra-zero -n ovra-zero --wait --timeout 5m
恢复 etcd
开发环境使用 emptyDir 时可以重建 Pod:
kubectl -n ovra-zero delete pod etcd-0 etcd-1 etcd-2 --ignore-not-found
生产环境不要直接删除有持久化数据的 etcd 节点。