Skip to content

Commit 496a8bd

Browse files
committed
add network tips of k8s
Signed-off-by: JaredforReal <[email protected]>
1 parent 5249c10 commit 496a8bd

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

website/docs/troubleshooting/network-tips.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,36 @@ docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
174174
docker compose -f docker-compose.yml -f docker-compose.override.yml --profile testing up -d
175175
```
176176

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
178207

179208
- Go modules still time out:
180209
- Verify `GOPROXY` and `GOSUMDB` are present in the go-builder stage logs.

0 commit comments

Comments
 (0)