VK Cloud logo

Рұқсат етілген репозиторийлерді баптау

Gatekeeper көмегімен образдарды жүктеу үшін тек рұқсат етілген репозиторийлерді пайдалануды талап ететін шектеуді орнатуға болады. Мысалы, бұл шектеу компания саясаттары образдарды тек сенімді репозиторийлерден жүктеуді талап етсе, кластер операторлары тексерілмеген көзден сенімсіз қолданбаны кездейсоқ іске қоспауы үшін пайдалы болуы мүмкін.

Gatekeeper жұмысын көрсету үшін мыналар жасалады:

  • Шектеу үлгісі және оған сәйкес келетін шектеу. Ол образдарды тек Docker Hub репозиторийінен жүктеуге рұқсат береді.
  • Шектеудің жұмысын тексеруге арналған бірнеше Kubernetes ресурсы.

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

  1. Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.

    Кластер параметрлерін өз қалауыңыз бойынша таңдаңыз.

  2. kubectl көмегімен кластерге қосыла алатыныңызға көз жеткізіңіз.

Репозиторийлерді тексеретін шектеуді жасаңыз

  1. Шектеу үлгісін жасаңыз:

    1. Шектеу үлгісінің манифесін жасаңыз.

      Осы файлдың мазмұнын пайдаланыңыз. Бұл — образдардың тек сенімді репозиторийлерден жүктелетінін тексеретін Gatekeeper кітапханасындағы дайын K8sAllowedRepos үлгісі.

    2. Үлгі манифесі негізінде шектеу үлгісін жасаңыз:

      kubectl apply -f template.yaml
  2. Шектеу жасаңыз:

    1. Бұрын жасалған үлгі негізінде шектеу манифесін жасаңыз:

    2. Шектеу манифесі негізінде шектеуді жасаңыз:

      kubectl apply -f constraint.yaml
  3. Келесі команданы орындап, шектеу үлгісі мен шектеу сәтті жасалғанына көз жеткізіңіз:

    kubectl get constraints,constrainttemplates

    Ұқсас ақпарат көрсетілуі керек:

    NAME                                                          ENFORCEMENT-ACTION TOTAL-VIOLATIONSk8sallowedrepos.constraints.gatekeeper.sh/require-docker-hub  ...                ...NAME                                                          AGEconstrainttemplate.templates.gatekeeper.sh/k8sallowedrepos    ...
  4. Бірнеше pod жасап көру арқылы шектеудің жұмысын тексеріңіз:

    1. Pod үшін манифест жасаңыз:

    2. Манифес негізінде pod жасап көріңіз:

      kubectl apply -f example-allowed.yaml

      Операция сәтті аяқталуы керек.

    3. Келесі команданы орындап, pod сәтті жасалғанына көз жеткізіңіз:

      kubectl get pod allowed-pod

      Ұқсас ақпарат көрсетілуі керек:

      NAME          READY   STATUS    RESTARTS   AGEallowed-pod   1/1     Running   ...        ...

Қолданылмайтын ресурстарды жойыңыз

Жұмыс істеп тұрған кластер тарифтеледі және есептеу ресурстарын тұтынады. Егер шектеудің жұмысын тексеру үшін жасалған Kubernetes ресурстары енді қажет болмаса, оларды жойыңыз:

  1. Жасалған allowed-pod pod-ын, шектеу үлгісін және шектеудің өзін жойыңыз:

    kubectl delete pod allowed-podkubectl delete k8sallowedrepos.constraints.gatekeeper.sh/require-docker-hubkubectl delete constrainttemplate.templates.gatekeeper.sh/k8sallowedrepos
  2. Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.