Рұқсат етілген репозиторийлерді баптау
Gatekeeper көмегімен образдарды жүктеу үшін тек рұқсат етілген репозиторийлерді пайдалануды талап ететін шектеуді орнатуға болады. Мысалы, бұл шектеу компания саясаттары образдарды тек сенімді репозиторийлерден жүктеуді талап етсе, кластер операторлары тексерілмеген көзден сенімсіз қолданбаны кездейсоқ іске қоспауы үшін пайдалы болуы мүмкін.
Gatekeeper жұмысын көрсету үшін мыналар жасалады:
- Шектеу үлгісі және оған сәйкес келетін шектеу. Ол образдарды тек Docker Hub репозиторийінен жүктеуге рұқсат береді.
- Шектеудің жұмысын тексеруге арналған бірнеше Kubernetes ресурсы.
-
Жасаңыз Kubernetes кластерін өзекті нұсқада, егер бұл әлі жасалмаған болса.
Кластер параметрлерін өз қалауыңыз бойынша таңдаңыз.
-
kubectlкөмегімен кластерге қосыла алатыныңызға көз жеткізіңіз.
-
Шектеу үлгісін жасаңыз:
-
Шектеу үлгісінің манифесін жасаңыз.
Осы файлдың мазмұнын пайдаланыңыз. Бұл — образдардың тек сенімді репозиторийлерден жүктелетінін тексеретін Gatekeeper кітапханасындағы дайын
K8sAllowedReposүлгісі. -
Үлгі манифесі негізінде шектеу үлгісін жасаңыз:
kubectl apply -f template.yaml
-
-
Шектеу жасаңыз:
-
Бұрын жасалған үлгі негізінде шектеу манифесін жасаңыз:
-
Шектеу манифесі негізінде шектеуді жасаңыз:
kubectl apply -f constraint.yaml
-
-
Келесі команданы орындап, шектеу үлгісі мен шектеу сәтті жасалғанына көз жеткізіңіз:
kubectl get constraints,constrainttemplatesҰқсас ақпарат көрсетілуі керек:
NAME ENFORCEMENT-ACTION TOTAL-VIOLATIONSk8sallowedrepos.constraints.gatekeeper.sh/require-docker-hub ... ...NAME AGEconstrainttemplate.templates.gatekeeper.sh/k8sallowedrepos ... -
Бірнеше pod жасап көру арқылы шектеудің жұмысын тексеріңіз:
Шектеуге сай келетін podШектеуге сай келмейтін pod-
Pod үшін манифест жасаңыз:
-
Манифес негізінде pod жасап көріңіз:
kubectl apply -f example-allowed.yamlОперация сәтті аяқталуы керек.
-
Келесі команданы орындап, pod сәтті жасалғанына көз жеткізіңіз:
kubectl get pod allowed-podҰқсас ақпарат көрсетілуі керек:
NAME READY STATUS RESTARTS AGEallowed-pod 1/1 Running ... ...
-
Жұмыс істеп тұрған кластер тарифтеледі және есептеу ресурстарын тұтынады. Егер шектеудің жұмысын тексеру үшін жасалған Kubernetes ресурстары енді қажет болмаса, оларды жойыңыз:
-
Жасалған
allowed-podpod-ын, шектеу үлгісін және шектеудің өзін жойыңыз:Linux/macOSWindowskubectl delete pod allowed-podkubectl delete k8sallowedrepos.constraints.gatekeeper.sh/require-docker-hubkubectl delete constrainttemplate.templates.gatekeeper.sh/k8sallowedrepos -
Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.