Reflektor adalah add-on Kubernetes yang dirancang untuk memantau perubahan pada sumber daya (rahasia dan peta konfigurasi) dan mencerminkan perubahan pada sumber daya cermin di namespace yang sama atau berbeda.
Mendukung
amd64
,arm
danarm64
Jika Anda memerlukan bantuan atau menemukan bug, silakan membuka Masalah di GitHub (https://github.com/emberstack/kubernetes-reflector/issues).
Reflektor dapat digunakan secara manual atau menggunakan Helm (disarankan).
Kubernet 1.14+
Helm 3 (jika dikerahkan menggunakan Helm)
Gunakan Helm untuk menginstal grafik terbaru yang dirilis:
$ helm repo tambahkan emberstack https://emberstack.github.io/helm-charts$ pembaruan helm repo$ peningkatan helm --install reflektor emberstack/reflector
Anda dapat menyesuaikan nilai penerapan helm dengan menggunakan Nilai berikut:
Parameter | Keterangan | Bawaan |
---|---|---|
nameOverride | Mengganti nama rilis | "" |
fullnameOverride | Mengganti nama lengkap rilis | "" |
image.repository | Repositori gambar kontainer | emberstack/kubernetes-reflector |
image.tag | Tag gambar kontainer | Same as chart version |
image.pullPolicy | Kebijakan penarikan gambar kontainer | IfNotPresent |
configuration.logging.minimumLevel | Pencatatan tingkat minimum | Information |
configuration.watcher.timeout | Masa pakai pengamat maksimum dalam hitungan detik | `` |
configuration.kubernetes.skipTlsVerify | Lewati verifikasi TLS saat menghubungkan cluster | false |
rbac.enabled | Membuat dan menggunakan sumber daya RBAC | true |
serviceAccount.create | Buat Akun Layanan | true |
serviceAccount.name | Nama Akun Layanan | nama rilis |
livenessProbe.initialDelaySeconds | penundaan awal livenessProbe | 5 |
livenessProbe.periodSeconds | periode livenessProbe | 10 |
readinessProbe.initialDelaySeconds | readinessProbe penundaan awal | 5 |
readinessProbe.periodSeconds | periode readinessProbe | 10 |
startupProbe.failureThreshold | ambang kegagalan startupProbe | 10 |
startupProbe.periodSeconds | periode startupProbe | 5 |
resources | Batasan sumber daya | {} |
nodeSelector | Label node untuk penetapan pod | {} |
tolerations | Label toleransi untuk penetapan pod | [] |
affinity | Afinitas node untuk penetapan pod | {} |
priorityClassName | priorityClassName untuk pod | "" |
Temukan kami di Artifact Hub
Setiap rilis (ditemukan di halaman Rilis GitHub) berisi file penerapan manual ( reflector.yaml
).
$ kubectl -n kube-system apply -f https://github.com/emberstack/kubernetes-reflector/releases/latest/download/reflector.yaml
secret
sumber atau configmap
Tambahkan reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
ke anotasi sumber daya untuk mengizinkan refleksi ke cermin.
Tambahkan reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "<list>"
ke anotasi sumber daya untuk mengizinkan refleksi hanya dari daftar namespace atau ekspresi reguler yang dipisahkan koma. Catatan: Jika anotasi ini dihilangkan atau kosong, semua namespace diperbolehkan.
Reflektor dapat membuat cermin dengan nama yang sama di namespace lain secara otomatis. Anotasi berikut mengontrol apakah dan bagaimana mirror dibuat:
Tambahkan reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
ke anotasi sumber daya untuk secara otomatis membuat mirror di namespace lain. Catatan: Membutuhkan reflector.v1.k8s.emberstack.com/reflection-allowed
true
karena cermin harus dapat mencerminkan sumbernya.
Tambahkan reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "<list>"
ke anotasi sumber daya yang menentukan namespace mana yang akan membuat mirror secara otomatis. Catatan: Jika anotasi ini dihilangkan atau kosong, semua namespace diperbolehkan. Namespace dalam daftar ini juga akan diperiksa reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces
karena cermin harus berada di namespace tempat refleksi diizinkan.
Penting: Jika
source
dihapus, mirror otomatis akan terhapus. Juga jika refleksi atau pencerminan otomatis dimatikan atau ruang nama cermin otomatis tidak lagi cocok dengan ruang nama yang diizinkan, cermin otomatis akan dihapus.
Penting: Reflektor akan melewatkan sumber daya apa pun yang bertentangan saat membuat cermin otomatis. Jika sudah ada sumber daya dengan nama sumber di namespace tempat cermin otomatis dibuat, namespace tersebut dilewati dan dicatat sebagai peringatan.
Contoh rahasia sumber:
apiVersion: v1kind: Secretmetadata: nama: anotasi sumber-rahasia: reflektor.v1.k8s.emberstack.com/reflection-allowed: "true" reflektor.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace-1 ,namespace-2,namespace-[0-9]*"data: ...
Contoh peta konfigurasi sumber:
apiVersion: v1kind: ConfigMapmetadata: nama: source-config-map anotasi: reflektor.v1.k8s.emberstack.com/reflection-allowed: "true" reflektor.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace -1,namespace-2,namespace-[0-9]*"data: ...
Tambahkan reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
ke objek cermin. Nilai anotasi adalah nama lengkap objek sumber dalam format namespace/name
.
Catatan: Tambahkan
reflector.v1.k8s.emberstack.com/reflected-version: ""
ke anotasi sumber daya saat melakukan perubahan manual pada mirror (misalnya saat menerapkan denganhelm
atau menerapkan ulang skrip penerapan). Ini akan mengatur ulang versi cermin yang dipantulkan.
Contoh rahasia cermin:
apiVersion: v1kind: Secretmetadata: name: mirror-secret annotations:reflektor.v1.k8s.emberstack.com/reflects: "default/source-secret"data: ...
Contoh peta konfigurasi cermin:
apiVersion: v1kind: ConfigMapmetadata: nama: mirror-config-map anotasi:reflektor.v1.k8s.emberstack.com/reflects: "default/source-config-map"data: ...
Reflektor akan memantau setiap perubahan yang dilakukan pada objek sumber dan menyalin bidang berikut:
data
untuk rahasia
data
dan binaryData
untuk configmaps Reflektor melacak apa yang disalin dengan memberi anotasi pada mirror dengan versi objek sumber.
cert-manager
Sejak cert-manager versi 1.5 Anda dapat membuat anotasi rahasia yang dibuat dari sertifikat untuk mirroring menggunakan
secretTemplate
(lihat https://cert-manager.io/docs/usage/certificate/).
apiVersion: cert-manager.io/v1 kind: Certificate ... spec: secretTemplate: annotations: reflector.v1.k8s.emberstack.com/reflection-allowed: "true" reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "" ...