VK Cloud logo

Міндетті белгілерді баптау

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

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

  • Шектеу үлгісі және оған сәйкес келетін шектеу. Ол жүйелік емес кеңістіктерде жасалатын Kubernetes ресурстарында creator-name белгісінің (label) болуын талап етеді
  • Шектеудің жұмысын тексеруге арналған бірнеше Kubernetes ресурсы.

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

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

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

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

Белгілерді тексеретін шектеуді жасаңыз

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

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

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

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

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

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

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

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

    kubectl get constraints,constrainttemplates

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

    NAME                                                              ENFORCEMENT-ACTION TOTAL-VIOLATIONSk8srequiredlabels.constraints.gatekeeper.sh/require-creator-label ...                ... NAME                                                              AGE...constrainttemplate.templates.gatekeeper.sh/k8srequiredlabels      ...
  4. Бірнеше аттар кеңістігін (namespaces) жасап көру арқылы шектеудің жұмысын тексеріңіз:

    1. Аттар кеңістігінің манифесін жасаңыз:

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

      kubectl apply -f example-allowed.yaml

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

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

      kubectl get ns allowed-namespace

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

      NAME                STATUS   AGEallowed-namespace   Active   ...

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

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

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

    kubectl delete ns allowed-namespacekubectl delete k8srequiredlabels.constraints.gatekeeper.sh/require-creator-labelkubectl delete constrainttemplate.templates.gatekeeper.sh/k8srequiredlabels
  2. Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.