无法使用 k3d 集群和本地注册表拉取 Skaffold 图像

Skaffold image can't be pulled using k3d cluster and local registry

我有以下 skaffold yaml 文件:

apiVersion: skaffold/v1
kind: Config
build:
  artifacts:
  - image: k3d-my-registry.localhost:12345/getting-started2
deploy:
  kubectl:
    manifests:
      - target/kubernetes/kubernetes.yml

以及以下 Deplyment yaml 文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    app.quarkus.io/build-timestamp: 2021-12-23 - 20:50:40 +0000
  labels:
    app.kubernetes.io/name: getting-started2
    app.kubernetes.io/version: 1.0.0-SNAPSHOT
  name: getting-started2
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: getting-started2
      app.kubernetes.io/version: 1.0.0-SNAPSHOT
  template:
    metadata:
      annotations:
        app.quarkus.io/build-timestamp: 2021-12-23 - 20:50:40 +0000
      labels:
        app.kubernetes.io/name: getting-started2
        app.kubernetes.io/version: 1.0.0-SNAPSHOT
    spec:
      containers:
        - env:
            - name: KUBERNETES_NAMESPACE
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
          image: k3d-my-registry.localhost:12345/getting-started2
          imagePullPolicy: Always
          name: getting-started2
          ports:
            - containerPort: 8787
              name: http
              protocol: TCP

本地 k3d 注册表和集群创建如下:

k3d registry create my-registry.localhost --port 12345
k3d cluster create my-cluster --registry-use k3d-my-registry.localhost:12345 --port 8787:8787@loadbalancer

当我做 skaffold dev 时,我收到一个错误,说无法拉取镜像

 - deployment/getting-started2: container getting-started2 is waiting to start: k3d-my-registry.localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625 can't be pulled
    - pod/getting-started2-859f8f44c5-pwbvx: container getting-started2 is waiting to start: k3d-my-registry.localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625 can't be pulled
 - deployment/getting-started2 failed. Error: container getting-started2 is waiting to start: k3d-my-registry.localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625 can't be pulled.

我必须手动将 skaffold 生成的图像推送到本地 k3d 注册表,以使 skaffold dev 至少部署应用程序

  docker tag k3d-my-registry.localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625 localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625
  docker push localhost:12345/getting-started2:84e506a59b832cdf63f54ccc45d9b1ccb61f29f066415fe8f162a0604e2fc625

skaffold 是否支持 k3d?我不知道发生了什么。任何想法/

Skaffold 不支持从集群内部推送到集群外部具有不同名称的注册表。存在问题 tracking the feature request