You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docker compose -f docker-compose.yml -f docker-compose.override.yml --profile testing up -d
175
175
```
176
176
177
-
## 5. Troubleshooting
177
+
## 5. Kubernetes clusters with limited egress
178
+
179
+
Container runtimes on Kubernetes nodes do not automatically reuse the host Docker daemon settings. When registries are slow or blocked, pods can sit in `ImagePullBackOff`. Pick one or combine several of these mitigations:
180
+
181
+
### 5.1 Configure containerd or CRI mirrors
182
+
183
+
- For clusters backed by containerd (Kind, k3s, kubeadm), edit `/etc/containerd/config.toml` or use Kind’s `containerdConfigPatches` to add regional mirror endpoints for registries such as `docker.io`, `ghcr.io`, or `quay.io`.
184
+
- Restart containerd and kubelet after changes so the new mirrors take effect.
185
+
- Avoid pointing mirrors to loopback proxies unless every node can reach that proxy address.
186
+
187
+
### 5.2 Preload or sideload images
188
+
189
+
- Build required images locally, then push them into the cluster runtime. For Kind, run `kind load docker-image --name <cluster> <image:tag>`; for other clusters, use `crictl pull` or `ctr -n k8s.io images import` on each node.
190
+
- Patch deployments to set `imagePullPolicy: IfNotPresent` when you know the image already exists on the node.
191
+
192
+
### 5.3 Publish to an accessible registry
193
+
194
+
- Tag and push images to a registry that is reachable from the cluster (cloud provider registry, privately hosted Harbor, etc.).
195
+
- Update your `kustomization.yaml` or Helm values with the new image name, and configure `imagePullSecrets` if the registry requires authentication.
196
+
197
+
### 5.4 Run a local pull-through cache
198
+
199
+
- Start a registry proxy (`registry:2` or vendor-specific cache) inside the same network, configure it as a mirror in containerd, and regularly warm it with the images you need.
200
+
201
+
### 5.5 Verify after adjustments
202
+
203
+
- Use `kubectl describe pod <name>` or `kubectl get events` to confirm pull errors disappear.
204
+
- Check that services such as `semantic-router-metrics` now expose endpoints and respond via port-forward (`kubectl port-forward svc/<service> <local-port>:<service-port>`).
205
+
206
+
## 6. Troubleshooting
178
207
179
208
- Go modules still time out:
180
209
- Verify `GOPROXY` and `GOSUMDB` are present in the go-builder stage logs.
0 commit comments