Harbor Usage
If your organization uses Harbor registry, image path structure and certificate requirements vary by corporate configuration. The general flow is similar to Nexus; obtain the registry host and project path from your organization.
Replace <HARBOR_HOST> and <HARBOR_PROJECT> placeholders with your organization's Harbor address and project name.
Containerd Configuration
Apply this configuration on all worker nodes in the cluster.
sudo vi /etc/containerd/config.toml
Add registry mirror definition for the Harbor host:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."<HARBOR_HOST>"]
endpoint = ["https://<HARBOR_HOST>"]
Example:
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.kurum.gov.tr"]
endpoint = ["https://harbor.kurum.gov.tr"]
sudo systemctl restart containerd
sudo systemctl status containerd
If the corporate certificate is not trusted, -skip-verify may be required:
sudo ctr --namespace k8s.io images pull <HARBOR_HOST>/<HARBOR_PROJECT>/apinizercloud/apimanager:<APINIZER_VERSION> --skip-verify
Example:
sudo ctr --namespace k8s.io images pull harbor.kurum.gov.tr/apinizer/apinizercloud/apimanager:2025.07.6 --skip-verify
Kubernetes Deployment Configuration
image: <HARBOR_HOST>/<HARBOR_PROJECT>/apinizercloud/cache:<APINIZER_VERSION>
Example:
image: harbor.kurum.gov.tr/apinizer/apinizercloud/cache:2025.07.6
If Using Docker Runtime
- Docker daemon.json
sudo vi /etc/docker/daemon.json
If Harbor uses HTTPS and requires a corporate CA certificate, add the certificate to the system. For HTTP or self-signed environments, insecure-registries can be used:
{
"insecure-registries": ["<HARBOR_HOST>"]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
If you encounter x509: certificate is not valid, see the relevant section in Kubernetes, Docker and Containerd Troubleshooting.
Related Documentation
- Nexus Usage — similar corporate proxy scenario
- Container Images and Registry