skaffold / kaniko: получить доступ к сервису из другого пространства имен

Я развернул службу реестра в пространстве имен 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/ ": dial tcp: lookup registry-docker-registry.registry.svc.cluster.local на 127.0.0.53:53: нет такого хоста

Есть идеи, как получить доступ к этому реестру, развернутому внутри тех же кубернетов?

Я пытался получить доступ к реестру из другого модуля:

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

Как видите, он может получить доступ к реестру.


person Jordi    schedule 12.04.2020    source источник
comment
добавить содержимое файла /etc/resolv.conf из модуля, из которого вы выполняете поиск. и добавьте вывод kubectl get pods -n kube-system   -  person Arghya Sadhu    schedule 12.04.2020
comment
по какой-то причине он не проходит через основной DNS-сервер   -  person Arghya Sadhu    schedule 12.04.2020


Ответы (3)


В соответствии с этой инструкцией вы можете получить доступ к:

registry-docker-registry.registry

или в соответствии с инструкциями:

registry-docker-registry.registry.svc.cluster.local
person V. Mokrecov    schedule 12.04.2020

  1. Вы можете попробовать exec pod в предполагаемом пространстве имен и попытаться свернуть сервис, который вы хотите достичь, а также его порт. Формат в целом следующий:
<your-service>.<your-namespace>

Таким образом, вы можете свернуть его из предполагаемого модуля, используя следующую команду :

curl <your-service>.<your-namespace>:<your-port>
  1. Попробуйте port forward ваш сервис на местном уровне, используя следующую команду:
kubectl -n <namespace> svc/<your-service> <your-localhost-port>:<your-service-port> 

Посмотрите, можете ли вы получить к нему доступ таким образом.

person irvifa    schedule 12.04.2020

Попробуйте что-нибудь подобное. Надеюсь, эта команда сработает.

registry-docker-registry.registry.svc.cluster.local
person Dashrath Mundkar    schedule 12.04.2020