All Products
Search
Document Center

Container Service for Kubernetes:gatekeeper component overview and release history

Last Updated:Mar 27, 2026

Komponen gatekeeper mengintegrasikan Open Policy Agent (OPA) ke dalam kluster Container Service for Kubernetes (ACK), memungkinkan Anda menentukan dan menerapkan kebijakan admission menggunakan Custom Resource Definitions (CRD) native Kubernetes. Gunakan gatekeeper untuk mengontrol resource yang dapat dibuat di kluster berdasarkan label, jenis resource, namespace, dan atribut lainnya, serta untuk mengelola label namespace.

Untuk mulai menggunakan gatekeeper, ikuti langkah-langkah berikut:

  1. Instal gatekeeper dari halaman Add-ons di Konsol ACK. Lihat Manage components.

  2. Buat templat constraint yang mendefinisikan logika kebijakan dalam Rego.

  3. Buat constraint yang menerapkan templat tersebut ke namespace atau jenis resource tertentu.

  4. Verifikasi bahwa constraint mengizinkan atau menolak permintaan sesuai harapan.

Untuk informasi lebih lanjut tentang OPA, lihat Open Policy Agent.

Gatekeeper architecture

Cara kerja

Gatekeeper beroperasi sebagai admission webhook Kubernetes. Ketika permintaan pembuatan atau pembaruan resource mencapai API server, webhook validation.gatekeeper.sh mencegat permintaan tersebut dan mengevaluasinya terhadap semua constraint aktif.

Model kebijakan terdiri dari dua lapisan:

  • ConstraintTemplate: mendefinisikan logika kebijakan dalam Rego dan mendaftarkan jenis Custom Resource Definition (CRD) baru di kluster.

  • Constraint: instans dari ConstraintTemplate yang menentukan resource yang dikenai kebijakan beserta parameter yang harus diterapkan.

Untuk informasi lebih lanjut tentang penyusunan kebijakan, lihat How to use Gatekeeper.

Terapkan kebijakan label pod

Contoh berikut menunjukkan cara mewajibkan semua pod yang dibuat di namespace tertentu memiliki label yang ditentukan. Templat constraint memerlukan waktu sekitar 10 detik untuk diinisialisasi, dan constraint itu sendiri juga membutuhkan waktu sekitar 10 detik hingga aktif.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster ACK dengan gatekeeper yang telah diinstal

  • kubectl yang dikonfigurasi untuk menyambungkan ke kluster

Buat namespace dan beri label

Buat namespace uji coba dan tambahkan label yang akan dicocokkan oleh constraint:

kubectl create ns test-gatekeeper
kubectl label ns test-gatekeeper name=test-gatekeeper

Buat templat constraint

Templat constraint berikut mendaftarkan jenis CRD baru bernama K8sRequiredLabels dan mendefinisikan logika kebijakan dalam Rego:

kubectl apply -f - <<EOF
apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
  name: k8srequiredlabels
spec:
  crd:
    spec:
      names:
        kind: K8sRequiredLabels
      validation:
        openAPIV3Schema:
          properties:
            labels:
              type: array
              items:
                type: string
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8srequiredlabels

        # Pelanggaran dipicu ketika label yang diperlukan tidak ada pada resource.
        violation[{"msg": msg, "details": {"missing_labels": missing}}] {
          # Kumpulkan semua label pada resource yang masuk.
          provided := {label | input.review.object.metadata.labels[label]}
          # Kumpulkan semua label yang diperlukan oleh parameter constraint.
          required := {label | label := input.parameters.labels[_]}
          # Hitung himpunan label yang diperlukan tetapi tidak disediakan.
          missing := required - provided
          count(missing) > 0
          msg := sprintf("you must provide labels: %v", [missing])
        }
EOF

Tunggu sekitar 10 detik hingga templat constraint selesai diinisialisasi sebelum melanjutkan.

Buat constraint

Buat constraint yang menerapkan templat K8sRequiredLabels ke semua pod di namespace apa pun yang diberi label name=test-gatekeeper, sehingga setiap pod wajib memiliki label gatekeeper-test-label:

kubectl apply -f - <<EOF
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
  name: pod-must-have-gatekeeper-test-label
spec:
  match:
    kinds:
      - apiGroups: [""]
        kinds: ["Pod"]
    namespaceSelector:
      matchExpressions:
      - key: name
        operator: In
        values: ["test-gatekeeper"]
  parameters:
    labels: ["gatekeeper-test-label"]
EOF

Tunggu sekitar 10 detik hingga constraint menjadi aktif.

Verifikasi constraint

Jalankan pengujian berikut untuk memastikan constraint berperilaku sesuai harapan.

Uji 1: Pod tanpa label yang diperlukan ditolak.

kubectl -n test-gatekeeper run test-deny --image=nginx --restart=Never

Output yang diharapkan:

Error from server ([denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}): admission webhook "validation.gatekeeper.sh" denied the request: [denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}

Pod ditolak karena namespace test-gatekeeper sesuai dengan selector constraint dan pod tidak memiliki label gatekeeper-test-label.

Uji 2: Pod dengan label yang diperlukan diizinkan.

kubectl -n test-gatekeeper run test-pass -l gatekeeper-test-label=pass --image=nginx --restart=Never

Output yang diharapkan:

pod/test-pass created

Pod diterima karena memiliki label gatekeeper-test-label.

Uji 3: Pod di namespace yang tidak dibatasi diizinkan.

kubectl -n default run test-deny --image=nginx --restart=Never

Output yang diharapkan:

pod/test-deny created

Namespace default tidak memiliki label name=test-gatekeeper, sehingga constraint tidak berlaku.

Catatan rilis

Maret 2025

Version

Image address

Release date

Description

Impact

v3.18.2.192-ge2860248-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.192-ge2860248-aliyun

2025-03-04

  • OPA Gatekeeper diperbarui ke versi 3.18.2. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.18.2.

  • Versi Go komponen ditingkatkan ke 1.23.6 untuk meningkatkan stabilitas.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Desember 2024

Version

Image address

Release date

Description

Impact

v3.17.1.174-g6383c639-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.17.1.174-g6383c639-aliyun

2024-12-09

OPA Gatekeeper diperbarui ke versi 3.17.1. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.17.1.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

September 2024

Version

Image address

Release date

Description

Impact

v3.16.3.158-g5e73c0ad-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.16.3.158-g5e73c0ad-aliyun

2024-09-25

OPA Gatekeeper diperbarui ke versi 3.16.3. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.16.3.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Maret 2024

Version

Image address

Release date

Description

Impact

v3.15.1.150-g29b8b2a8-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.15.1.150-g29b8b2a8-aliyun

2024-03-27

OPA Gatekeeper diperbarui ke versi 3.15.1. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.15.1.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Oktober 2023

Version

Image address

Release date

Description

Impact

v3.12.0.138-g1ee37e37-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.12.0.138-g1ee37e37-aliyun

2023-10-09

  • OPA Gatekeeper diperbarui ke versi 3.12.0. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.12.0.

  • Kebijakan dapat dikonfigurasi untuk menangani event penghapusan Service.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

April 2023

Version

Image address

Release date

Description

Impact

v3.10.0.130-g0e79597d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.10.0.130-g0e79597d-aliyun

2023-04-18

  • OPA Gatekeeper diperbarui ke versi 3.10.0. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.10.0.

  • Fitur replikasi data dinonaktifkan secara default. Aktifkan fitur tersebut di halaman Add-ons Konsol ACK. Untuk informasi lebih lanjut, lihat Replicating Data.

  • Kebijakan dapat dikonfigurasi untuk menangani event penghapusan namespace.

  • Kubernetes 1.26 didukung.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Juni 2022

Version

Image address

Release date

Description

Impact

v3.8.1.113-geb7947ef-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.8.1.113-geb7947ef-aliyun

2022-06-08

  • OPA Gatekeeper diperbarui ke versi 3.8.1. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.8.1.

  • Pod auditing dinonaktifkan secara default. Aktifkan di halaman Add-ons Konsol ACK.

  • Sumber daya CPU, memori, dan jumlah replika dapat dikonfigurasi di halaman Add-ons Konsol ACK.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

April 2022

Version

Image address

Release date

Description

Impact

v3.7.1.93-gaf375989-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.1.93-gaf375989-aliyun

2022-04-02

Fitur Mutation dapat diaktifkan di halaman Add-ons Konsol ACK. Fitur ini dinonaktifkan secara default. Untuk informasi lebih lanjut, lihat Mutation.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Februari 2022

Version

Image address

Release date

Description

Impact

v3.7.0.84-gf5fd3ffd-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.84-gf5fd3ffd-aliyun

2022-02-15

Kinerja komponen dioptimalkan. Pemanfaatan CPU abnormal dalam kasus ekstrem telah diperbaiki.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Januari 2022

Version

Image address

Release date

Description

Impact

v3.7.0.82-gafe4391b-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.82-gafe4391b-aliyun

2022-01-14

  • OPA Gatekeeper diperbarui ke versi 3.7.0. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.7.0.

  • Arsitektur ARM64 didukung.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

September 2021

Version

Image address

Release date

Description

Impact

v3.6.0.62-g156146d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.6.0.62-g156146d-aliyun

2021-09-20

  • gatekeeper versi 3.6.0.62 dan yang lebih baru hanya mendukung kluster ACK yang menjalankan Kubernetes 1.16.9 ke atas.

  • OPA Gatekeeper diperbarui ke versi 3.6.0. Komponen gatekeeper bergantung pada OPA Gatekeeper. Untuk informasi lebih lanjut, lihat v3.6.0.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Maret 2021

Version

Image address

Release date

Description

Impact

v3.3.0.24-8e68abc-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.3.0.24-8e68abc-aliyun

2021-03-16

  • gatekeeper dapat diinstal di kluster terdaftar.

  • OPA Gatekeeper diperbarui ke versi 3.3.0. Komponen gatekeeper bergantung pada OPA Gatekeeper.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.

Agustus 2020

Version

Image address

Release date

Description

Impact

v3.1.0.11-24bab09-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.1.0.11-24bab09-aliyun

2020-08-20

OPA Gatekeeper diperbarui ke versi 3.1.0-beta.12. OPA Gatekeeper adalah proyek open source yang menjadi dasar gatekeeper. Komponen gatekeeper bergantung pada OPA Gatekeeper.

Jika terjadi pengecualian selama pembaruan komponen, perubahan pada resource kluster mungkin gagal. Lakukan pembaruan selama jam sepi.