Локальный реестр Docker в K3d и OpenFaas

Я возился с OpenFaas и K3D, чтобы построить бессерверную инфраструктуру для локальной разработки. Чтобы это работало эффективно, я хотел добавить реестр докеров локально с помощью K3D и заставить OpenFaas извлекать изображения оттуда, однако я не понимаю, как я могу использовать IP-адрес хост-машины в качестве источника реестра.

Для создания кластера я использовал следующие команды

        k3d cluster create garden --registry-create
  k3d kubeconfig merge garden --kubeconfig-switch-context 

  # Create local-path-provisioner
  kustomize build "github.com/rancher/local-path-provisioner/deploy?ref=master" | kubectl apply -f -

  # Install OpenFaaS
  arkade install openfaas
  kubectl rollout status -n openfaas deploy/gateway

  ## Forward local 8080 port
  kubectl port-forward -n openfaas svc/gateway 8080:8080 & 

  PASSWORD=$(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)
  echo -n $PASSWORD | faas-cli login --username admin --password-stdin

  kubectl get secret basic-auth -n openfaas -o yaml > basic-auth.yml
  vim basic-auth.yml # change namespace to `openfaas-fn`
  kubectl apply -f basic-auth.yml 

Таким образом, создание примера функции работает нормально, но очевидно, что OpenFaas / Kubernetes не сможет получить доступ к реестру докеров.

      version: 1.0
provider:
  name: openfaas
  gateway: http://127.0.0.1:8080
functions:
  main:
    lang: node12
    handler: ./main
    image: 127.0.0.1:5000/main:latest

Единственное решение, которое я имею в виду, - это настроить службу DNS в K3d, которая может разрешать реестр Docker хостов.

Есть ли у кого-нибудь идеи, как это можно сделать проще?

К счастью, мне это не нужно для производственных систем, поскольку они извлекают образы из внешнего реестра.

0 ответов

Другие вопросы по тегам