Reflector เป็นส่วนเสริมของ Kubernetes ที่ออกแบบมาเพื่อตรวจสอบการเปลี่ยนแปลงทรัพยากร (ความลับและ configmap) และสะท้อนการเปลี่ยนแปลงต่อทรัพยากรมิเรอร์ในเนมสเปซเดียวกันหรืออื่น
รองรับ
amd64
arm
และarm64
หากคุณต้องการความช่วยเหลือหรือพบข้อบกพร่อง โปรดเปิดปัญหาบน GitHub (https://github.com/emberstack/kubernetes-reflector/issues)
ตัวสะท้อนแสงสามารถติดตั้งได้ด้วยตนเองหรือใช้ Helm (แนะนำ)
Kubernetes 1.14+
Helm 3 (หากใช้งานโดยใช้ Helm)
ใช้ Helm เพื่อติดตั้งแผนภูมิที่ออกล่าสุด:
$ helm repo เพิ่ม emberstack https://emberstack.github.io/helm-charts$ helm repo อัพเดต $ helm อัพเกรด -- ติดตั้งตัวสะท้อนแสง emberstack/reflector
คุณสามารถปรับแต่งค่าของการปรับใช้ helm ได้โดยใช้ค่าต่อไปนี้:
พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
---|---|---|
nameOverride | แทนที่ชื่อรุ่น | "" |
fullnameOverride | แทนที่ชื่อเต็มของการเปิดตัว | "" |
image.repository | ที่เก็บอิมเมจคอนเทนเนอร์ | emberstack/kubernetes-reflector |
image.tag | แท็กรูปภาพคอนเทนเนอร์ | Same as chart version |
image.pullPolicy | นโยบายการดึงอิมเมจคอนเทนเนอร์ | IfNotPresent |
configuration.logging.minimumLevel | การบันทึกระดับขั้นต่ำ | Information |
configuration.watcher.timeout | อายุการใช้งานของผู้ดูสูงสุดในหน่วยวินาที | - |
configuration.kubernetes.skipTlsVerify | ข้ามการตรวจสอบ TLS เมื่อเชื่อมต่อคลัสเตอร์ | false |
rbac.enabled | สร้างและใช้ทรัพยากร RBAC | true |
serviceAccount.create | สร้างบัญชีบริการ | true |
serviceAccount.name | ชื่อบัญชีบริการ | ชื่อการเปิดตัว |
livenessProbe.initialDelaySeconds | livenessProbe ความล่าช้าเริ่มต้น | 5 |
livenessProbe.periodSeconds | ระยะเวลา livenessProbe | 10 |
readinessProbe.initialDelaySeconds | readinessProbe การหน่วงเวลาเริ่มต้น | 5 |
readinessProbe.periodSeconds | readinessProbe ช่วงสอบสวน | 10 |
startupProbe.failureThreshold | เกณฑ์ความล้มเหลวของ startupProbe | 10 |
startupProbe.periodSeconds | ระยะเวลา startupProbe | 5 |
resources | ข้อจำกัดของทรัพยากร | {} |
nodeSelector | ป้ายกำกับโหนดสำหรับการกำหนดพ็อด | {} |
tolerations | ป้ายเกณฑ์ความคลาดเคลื่อนสำหรับการกำหนดพ็อด | [] |
affinity | ความสัมพันธ์ของโหนดสำหรับการกำหนดพ็อด | {} |
priorityClassName | priorityClassName สำหรับพ็อด | "" |
พบกับเราได้ที่ Artifact Hub
แต่ละรุ่น (พบได้ในหน้า Releases GitHub) มีไฟล์การปรับใช้ด้วยตนเอง ( reflector.yaml
)
$ kubectl -n kube-system ใช้ -f https://github.com/emberstack/kubernetes-reflector/releases/latest/download/reflector.yaml
secret
ของแหล่งที่มาหรือ configmap
เพิ่ม reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
ให้กับคำอธิบายประกอบรีซอร์สเพื่ออนุญาตให้สะท้อนไปยังมิเรอร์
เพิ่ม reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "<list>"
ลงในคำอธิบายประกอบของทรัพยากรเพื่ออนุญาตการสะท้อนจากเฉพาะรายการของเนมสเปซที่คั่นด้วยเครื่องหมายจุลภาคหรือนิพจน์ทั่วไป หมายเหตุ: หากละเว้นคำอธิบายประกอบนี้หรือว่างเปล่า เนมสเปซทั้งหมดจะได้รับอนุญาต
ตัวสะท้อนแสงสามารถสร้างมิเรอร์ที่มีชื่อเดียวกันในเนมสเปซอื่นได้โดยอัตโนมัติ คำอธิบายประกอบต่อไปนี้จะควบคุมว่ามิเรอร์จะถูกสร้างขึ้นอย่างไรและอย่างไร:
เพิ่ม reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
ให้กับคำอธิบายประกอบทรัพยากรเพื่อสร้างมิเรอร์โดยอัตโนมัติในเนมสเปซอื่น หมายเหตุ: กำหนดให้ reflector.v1.k8s.emberstack.com/reflection-allowed
เป็น true
เนื่องจากมิเรอร์จำเป็นต้องสามารถสะท้อนแหล่งที่มาได้
เพิ่ม reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "<list>"
ให้กับคำอธิบายประกอบรีซอร์ส ระบุว่าเนมสเปซใดที่จะสร้างมิเรอร์โดยอัตโนมัติ หมายเหตุ: หากละเว้นคำอธิบายประกอบนี้หรือว่างเปล่า เนมสเปซทั้งหมดจะได้รับอนุญาต เนมสเปซในรายการนี้จะถูกตรวจสอบโดย reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces
เนื่องจากมิเรอร์จำเป็นต้องอยู่ในเนมสเปซจากจุดที่อนุญาตให้มีการสะท้อนได้
ข้อสำคัญ: หาก
source
ถูกลบ มิเรอร์อัตโนมัติจะถูกลบ นอกจากนี้ หากปิดการสะท้อนหรือการสะท้อนอัตโนมัติหรือเนมสเปซของกระจกอัตโนมัติไม่ตรงกับเนมสเปซที่อนุญาตอีกต่อไป กระจกอัตโนมัติจะถูกลบ
สำคัญ: ตัวสะท้อนแสงจะข้ามทรัพยากรที่ขัดแย้งกันเมื่อสร้างกระจกอัตโนมัติ หากมีทรัพยากรที่มีชื่อของแหล่งที่มาอยู่ในเนมสเปซที่จะสร้างมิเรอร์อัตโนมัติ เนมสเปซนั้นจะถูกข้ามและบันทึกเป็นคำเตือน
ตัวอย่างความลับของแหล่งที่มา:
apiVersion: v1kind: Secretmetadata: ชื่อ: คำอธิบายประกอบที่เป็นความลับของแหล่งที่มา:flector.v1.k8s.emberstack.com/reflection-allowed: "จริง"flector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace-1 ,เนมสเปซ-2,เนมสเปซ-[0-9]*"ข้อมูล: ...
ตัวอย่างการกำหนดค่าแหล่งที่มา:
apiVersion: v1kind: ConfigMapmetadata: ชื่อ: คำอธิบายประกอบ source-config-map:flector.v1.k8s.emberstack.com/reflection-allowed: "จริง"flector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace -1, เนมสเปซ-2, เนมสเปซ- [0-9] * "ข้อมูล: ...
เพิ่ม reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
ให้กับอ็อบเจ็กต์มิเรอร์ ค่าของคำอธิบายประกอบคือชื่อเต็มของออบเจ็กต์ต้นทางในรูปแบบ namespace/name
หมายเหตุ: เพิ่ม
reflector.v1.k8s.emberstack.com/reflected-version: ""
ให้กับคำอธิบายประกอบรีซอร์สเมื่อทำการเปลี่ยนแปลงมิเรอร์ด้วยตนเอง (เช่น เมื่อปรับใช้กับhelm
หรือใช้สคริปต์การปรับใช้ใหม่) การดำเนินการนี้จะรีเซ็ตเวอร์ชันที่สะท้อนของกระจก
ตัวอย่างความลับของกระจก:
apiVersion: v1kind: Secretmetadata: ชื่อ: คำอธิบายประกอบแบบมิเรอร์ความลับ: reflector.v1.k8s.emberstack.com/reflects: ข้อมูล "ค่าเริ่มต้น / แหล่งที่มาลับ": ...
ตัวอย่างการกำหนดค่ามิเรอร์:
apiVersion: v1kind: ConfigMapmetadata: ชื่อ: คำอธิบายประกอบ mirror-config-map: reflector.v1.k8s.emberstack.com/reflects: "default/source-config-map"data: ...
ตัวสะท้อนจะตรวจสอบการเปลี่ยนแปลงใด ๆ ที่ทำกับออบเจ็กต์ต้นทางและคัดลอกฟิลด์ต่อไปนี้:
data
สำหรับความลับ
data
และ binaryData
สำหรับ configmaps Reflector ติดตามสิ่งที่ถูกคัดลอกโดยการใส่คำอธิบายประกอบมิเรอร์ด้วยเวอร์ชันออบเจ็กต์ต้นทาง
cert-manager
ตั้งแต่เวอร์ชัน 1.5 ของ cert-manager คุณสามารถใส่คำอธิบายประกอบความลับที่สร้างจากใบรับรองสำหรับการมิเรอร์โดยใช้
secretTemplate
(ดู 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: "" ...