How To Manually Push Docker Image Registry?

Problem

Node in NotReady state, Nodeletd Phases output failing, with missing images.

{"L":"INFO","T":"2023-12-01T07:01:51.885Z","C":"command/command.go:120","M":"[2023-12-01 07:01:51] docker: Error response from daemon: manifest for localhost:5100/kube-proxy:v1.20.11 not found: manifest unknown: manifest unknown."}

Environment

  • Platform9 Edge Cloud (PEC) - Airctl v-5.3.0-2075501

Solution

Manually push the Docker registry from DU Host to the DU VM.

Procedure to manually push the images:

Verify if the DU host has the required docker registry tar available at /opt/pf9/airctl/imgs/docker-imgs-{airctl-version}.tar.gz.

# la /opt/pf9/airctl/imgs/docker-imgs-v-5.3.0-2075501.tar.gz

Once tar is available for the required Airctl version, proceed with the below steps to push the Docker registry from the DU host to DU VM.

  1. Execute the push-images command as shown below:

# /opt/pf9/airctl/airctl --config /opt/pf9/airctl/conf/airctl-config.yaml advanced-du push-images --img-tar /opt/pf9/airctl/imgs/docker-imgs-v-5.3.0-2075501.tar.gz --verbose
Pushing images 100% |████████████████████████████████████████| [12m42s:0s]2023-06-23T08:01:18.873Z info finish progressbar: success
2023-06-23T08:01:18.874Z info success
success
2023-06-23T08:01:18.960Z info closing tunnel
registry push done
  1. Verify if the images are available now.

[root@airctl-1-2683490-924.pf9.localnet ~(admin)]# cd /opt/pf9/images/data/docker/registry/v2/
[root@airctl-1-2683490-924.pf9.localnet v2(admin)]# ll
total 4
drwxr-xr-x 3 root root 20 Jun 23 07:48 blobs
drwxr-xr-x 32 root root 4096 Jun 23 08:01 repositories
[root@airctl-1-2683490-924.pf9.localnet v2(admin)]# du -sch *
4.0G blobs
4.5M repositories
4.0G total

OR

[root@airctl-1-2683490-924.pf9.localnet v2(admin)]# curl http://localhost:5100/v2/_catalog | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1438 100 1438 0 0 43255 0 --:--:-- --:--:-- --:--:-- 43575
{
"repositories": [
"addon-resizer",
"autoscaling/addon-resizer",
"busybox",
"calico/cni",
.
.
// multiple images should list here
.
"prometheus-operator/prometheus-operator",
"python"
]
}
  1. Once confirmed with the above output, docker images are successfully extracted to the DU VM.

  2. Restart the Nodeletd stack as mentioned in https://platform9.com/kb/kubernetes/how-to-restart-pmk-stack-