Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
K3d和OpenFaas中的本地Docker注册表_Docker_Docker Registry_Openfaas_K3d - Fatal编程技术网

K3d和OpenFaas中的本地Docker注册表

K3d和OpenFaas中的本地Docker注册表,docker,docker-registry,openfaas,k3d,Docker,Docker Registry,Openfaas,K3d,我正在修补OpenFaas和K3D,以便为本地开发构建一个无服务器的基础设施。为了有效地工作,我想用K3D在本地添加一个docker注册表,并让OpenFaas从中提取图像,但是我对如何使用主机的IP作为注册表源感到困惑 为了创建集群,我使用了以下命令 k3d cluster create garden --registry-create k3d kubeconfig merge garden --kubeconfig-switch-context # Create local-

我正在修补OpenFaas和K3D,以便为本地开发构建一个无服务器的基础设施。为了有效地工作,我想用K3D在本地添加一个docker注册表,并让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将无法访问docker注册表

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
我想到的唯一解决方案是在K3d中配置一个DNS服务,该服务可以解析到主机的Docker注册表

有人知道如何更容易做到这一点吗

幸运的是,对于生产系统,我不需要它,因为它们会从外部注册表中提取图像