Registry - Kulichanin/speedtest GitHub Wiki
Custom registry for speedtest
Хранение кастомных image
Проблема! Есть кастомные image, который нужно предоставить k8s для развертывания на нодах приложения
Задание со звездочкой Все должно работать через авторизацию к registry
Решение! Готовое self-host решение для всего этого Harbor registry
Install Docker
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Get harbor installer
wget https://github.com/goharbor/harbor/releases/download/v2.12.1/harbor-online-installer-v2.12.1.tgz && \
tar xvzf harbor-online-installer-v2.12.1.tgz && \
rm -rf harbor-online-installer-v2.12.1.tgz && \
cd harbor
Update ca policy
Важно!!!
Если сертификаты самоподписаные необходимо их добавить на каждую ноду кубера или в докер
Докер
mkdir -p /etc/docker/certs.d/yourdomain.com/
cp yourdomain.com.cert /etc/docker/certs.d/yourdomain.com/
cp yourdomain.com.crt /etc/docker/certs.d/yourdomain.com/
cp ca.crt /etc/docker/certs.d/yourdomain.com/
systemctl restart docker
Для кубера (containerd)
mkdir -p /etc/containerd/certs.d/yourdomain.com/
cp yourdomain.com.cert /etc/containerd/certs.d/yourdomain.com/
cp yourdomain.com.crt /etc/containerd/certs.d/yourdomain.com/
cp ca.crt /etc/containerd/certs.d/yourdomain.com/
In this way, Kubernetes already has the credentials for specifically this registry.
Modify the containerd conf
vim /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
Bypass TLS Verification Example
Add registry add skip verify
for example, if you add this: vim /etc/containerd/certs.d/docker.io/hosts.toml
server = "https://registry-1.docker.io"
[host."http://192.168.31.250:5000"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true
Afer restart containerd
systemctl restart containerd
Add custom registry
kubectl create secret generic homelab-harbor \
--from-file=.dockerconfigjson=<path/to/.docker/config.json> \
--type=kubernetes.io/dockerconfigjson
Для любого хоста
For Ubuntu/Debian
sudo cp ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
For Centos/Fedora
sudo cp ca.crt /etc/pki/ca-trust/source/anchors/
sudo dnf -y install ca-certificates
sudo update-ca-trust
Show system cert
awk -v cmd='openssl x509 -noout -subject' '
/BEGIN/{close(cmd)};{print | cmd}' < /etc/pki/tls/cert.pem | grep "RU"