0

我已将注册表服务部署到命名空间中registry

$ kubectl get service -n registry
NAME                       TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
registry-docker-registry   ClusterIP   10.43.119.11   <none>        5000/TCP   18h

这是我的skaffold.yaml

apiVersion: skaffold/v2beta1
kind: Config
metadata:
  name: spring-boot-slab
build:
  artifacts:
  - image: skaffold-covid-backend
    kaniko:
      dockerfile: Dockerfile-multistage
      cache: {}
  cluster: {}
deploy:
  kubectl:
    manifests:
    - k8s/*

一切正常,直到 kaniko 试图将图像推送到上面的注册表:

获取“ http://registry-docker-registry.registry.svc.cluster.local:5000/v2/ ”:拨打tcp:在127.0.0.53:53上查找registry-docker-registry.registry.svc.cluster.local:没有这样的主机

关于如何访问部署在同一个 kubernetes 中的这个注册表的任何想法?

我试图从另一个 pod 访问注册表:

$ kubectl exec -ti graylog-1 -- curl registry-docker-registry.registry:5000/v2/_catalog
{"repositories":["skaffold-covid-backend","skaffold-covid-backend/cache"]}

如您所见,它能够访问注册表。

4

3 回答 3

0

根据此指令,您可以访问:

registry-docker-registry.registry

或根据说明

registry-docker-registry.registry.svc.cluster.local
于 2020-04-12T13:53:22.443 回答
0
  1. 您可以尝试exec在您想要的命名空间中创建一个 pod,并尝试 curl 您想要访问的服务及其端口。一般的格式是:
<your-service>.<your-namespace>

因此,从您想要的 pod 中,您可以使用以下命令卷曲它:

curl <your-service>.<your-namespace>:<your-port>
  1. 尝试port forward使用以下命令为您的本地服务:
kubectl -n <namespace> svc/<your-service> <your-localhost-port>:<your-service-port> 

看看你是否可以通过这种方式访问​​它。

于 2020-04-12T14:52:37.190 回答
0

尝试这样的事情。我希望这个命令会起作用。

registry-docker-registry.registry.svc.cluster.local
于 2020-04-12T15:05:26.627 回答