VK Cloud logo

Docker реестріне қосылу

Кластерде сәйкес аддон орнатылған болса, Docker реестріне қосыла аласыз.

Аддонды орнату кезінде ол үшін Floating IP-мекенжайы бар стандартты жүктеме теңгергіші жасалады. Сондықтан Docker реестріне интернетке қолжетімділігі бар кез келген хосттан қосылуға болады.

Дайындық қадамдары

  1. Кластерде Docker реестрінің (docker-registry) аддоны орнатылғанына көз жеткізіңіз.
  2. kubectl көмегімен кластерге қосыла алатыныңызға көз жеткізіңіз.
  3. Docker реестріне қол жеткізу үшін деректерді алыңыз.

Docker реестріне қосылу

Реестрге қосылу жоспарланған хостта:

  1. Егер Docker Engine әлі орнатылмаған болса, Docker Engine орнатыңыз. Таңдау бойынша Docker Desktop немесе графикалық интерфейссіз Docker Engine серверлік нұсқасы қолжетімді.

    Docker Engine реестр қолданылатын хостта орнатылуы керек. Келесі қадамдарды осы хостта орындаңыз.

  2. Docker реестрін сенімді реестрлер тізіміне қосыңыз:

    1. Docker конфигурациялық файлы daemon.json ішіне Docker реестрінің эндпоинт мекенжайы бар insecure-registries параметрін қосыңыз.

      Мекенжай <IP_АДРЕС_РЕЕСТРА_DOCKER>:<ПОРТ_РЕЕСТРА_DOCKER> форматында беріледі.

      {  ...  "insecure-registries": [    "192.0.2.2:5000"  ],  ...}

      Docker Engine-дің әртүрлі инсталляциялары үшін осы файлдың орналасуы Docker ресми құжаттамасында берілген.

    2. Docker Engine-ді қайта іске қосыңыз.

      • Docker Engine серверлік нұсқасы үшін қайта іске қосу мақсатында келесі командалардың бірін орындаңыз:

        sudo systemd restart docker
        sudo service docker restart
      • Docker Desktop үшін графикалық интерфейсті пайдаланыңыз.

  3. Реестрге кіріңіз:

    docker login <IP_АДРЕС_РЕЕСТРА_DOCKER> --username <ЛОГИН_ДЛЯ_РЕЕСТРА_DOCKER>

    Docker реестрі үшін құпиясөзді енгізіңіз.

Енді сіз реестрмен кез келген операцияларды орындай аласыз, мысалы, оған Docker-образдарды push жасау.

Реестрмен жұмыс туралы толығырақ Docker ресми құжаттамасында.

Kubernetes кластерінде Docker реестрін пайдалану

Docker реестріндегі образдарды пайдаланып кластерде жұмыс жүктемелерін (workloads) жаю үшін:

  1. Реестрге қол жеткізу деректерін қамтитын k8s-registry-creds құпиясын жасаңыз.

    Егер --namespace параметрі көрсетілмесе, құпия әдепкі (default) атаулар кеңістігінде (namespace) жасалады.

    kubectl create secret docker-registry k8s-registry-creds \   --docker-server=<IP_АДРЕС_РЕЕСТРА_DOCKER>:5000 \  --docker-username=<ЛОГИН> \  --docker-password=<ПАРОЛЬ> \  --namespace=<ПРОСТРАНСТВО_ИМЕН>
  2. Жұмыс жүктемесінің манифестінде мыналарды көрсетіңіз:

    • ìmagePullSecrets параметрінде жасалған құпияның атауын.

    • containers.image параметрінде реестрдегі образға жолды.

      Жол <IP_АДРЕС_РЕЕСТРА_DOCKER>:5000/<ДИРЕКТОРИЯ_С_ОБРАЗОМ>/<ИМЯ_ОБРАЗА>:<ТЕГ> форматында беріледі.

    Манифест мысалдары:

    apiVersion: v1kind: Podmetadata:  name: my-appspec:  imagePullSecrets:  - name: k8s-registry-creds  containers:  - name: my-app    image: <IP_АДРЕС_РЕЕСТРА_DOCKER>:5000/<ДИРЕКТОРИЯ_С_ОБРАЗОМ>/<ИМЯ_ОБРАЗА>:<ТЕГ>