Использование werf для сборки и деплоя локально требует настройки следующих компонент:
.-----------------------------------------.
| Kubernetes (minikube) |
| |
| .-------------. |
| | rc/registry |<-----( kubelet pull ) |
| '-------------' |
| `---------. |
| | |
| .-----------------------. |
| | service/werf-registry | |
| '-----------------------' |
| | |
'-------------------|---------------------'
| .-----------------------------.
'----| proxy localhost:5000 to |
| service/werf-registry |<-----( werf push --repo :minikube )
| with kubectl port-forward |
'-----------------------------'
- Установите minikube.
-
Запустите minikube:
minikube start
-
Включите модуль registry в minikube, реализующий функционал Docker registry:
minikube addons enable registry
-
Запустите сервис
werf-registry
на порту 5000:kubectl -n kube-system expose rc/registry --type=ClusterIP --port=5000 --target-port=5000 --name=werf-registry
-
Добавьте DNS-имя запущенного сервиса Docker registry в виртуальную машину:
export REGISTRY_IP=$(kubectl -n kube-system get svc/werf-registry -o=template={{.spec.clusterIP}}) minikube ssh "echo '$REGISTRY_IP werf-registry.kube-system.svc.cluster.local' | sudo tee -a /etc/hosts"
-
Добавьте DNS-имя запущенного сервиса Docker registry на вашем хосте:
echo "127.0.0.1 werf-registry.kube-system.svc.cluster.local" | sudo tee -a /etc/hosts
-
В отдельном терминале на вашем хосте запустите проброс портов, для доступа к сервису Docker registry:
kubectl port-forward --namespace kube-system service/werf-registry 5000
-
Проверьте подключение на хосте:
curl -X GET werf-registry.kube-system.svc.cluster.local:5000/v2/_catalog