Reflector ist ein Kubernetes-Add-on, das dazu dient, Änderungen an Ressourcen (Secrets und Configmaps) zu überwachen und Änderungen an Spiegelressourcen im gleichen oder anderen Namespaces widerzuspiegeln.
Unterstützt
amd64
,arm
undarm64
Wenn Sie Hilfe benötigen oder einen Fehler finden, können Sie gerne ein Problem auf GitHub eröffnen (https://github.com/emberstack/kubernetes-reflector/issues).
Reflector kann entweder manuell oder mit Helm bereitgestellt werden (empfohlen).
Kubernetes 1.14+
Helm 3 (bei Bereitstellung mit Helm)
Verwenden Sie Helm, um das neueste veröffentlichte Diagramm zu installieren:
$ Helm Repo Emberstack hinzufügen https://emberstack.github.io/helm-charts$ Helm Repo Update$ Helm Upgrade --install Reflector Emberstack/Reflector
Sie können die Werte der Helmbereitstellung anpassen, indem Sie die folgenden Werte verwenden:
Parameter | Beschreibung | Standard |
---|---|---|
nameOverride | Überschreibt den Release-Namen | "" |
fullnameOverride | Überschreibt den vollständigen Release-Namen | "" |
image.repository | Container-Image-Repository | emberstack/kubernetes-reflector |
image.tag | Container-Image-Tag | Same as chart version |
image.pullPolicy | Container-Image-Pull-Richtlinie | IfNotPresent |
configuration.logging.minimumLevel | Mindestprotokollierungsgrad | Information |
configuration.watcher.timeout | Maximale Watcher-Lebensdauer in Sekunden | „ |
configuration.kubernetes.skipTlsVerify | Überspringen Sie die TLS-Überprüfung, wenn Sie eine Verbindung zum Cluster herstellen | false |
rbac.enabled | Erstellen und verwenden Sie RBAC-Ressourcen | true |
serviceAccount.create | Erstellen Sie ein Servicekonto | true |
serviceAccount.name | ServiceAccount-Name | Release-Name |
livenessProbe.initialDelaySeconds | Anfangsverzögerung livenessProbe | 5 |
livenessProbe.periodSeconds | livenessProbe Zeitraum | 10 |
readinessProbe.initialDelaySeconds | Anfangsverzögerung readinessProbe | 5 |
readinessProbe.periodSeconds | readinessProbe Zeitraum | 10 |
startupProbe.failureThreshold | startupProbe Fehlerschwelle | 10 |
startupProbe.periodSeconds | startupProbe Zeitraum | 5 |
resources | Ressourcengrenzen | {} |
nodeSelector | Knotenbezeichnungen für die Pod-Zuweisung | {} |
tolerations | Toleranzbezeichnungen für die Pod-Zuweisung | [] |
affinity | Knotenaffinität für die Pod-Zuweisung | {} |
priorityClassName | priorityClassName für Pods | "" |
Finden Sie uns auf Artifact Hub
Jede Version (zu finden auf der GitHub-Seite „Releases“) enthält die manuelle Bereitstellungsdatei ( reflector.yaml
).
$ kubectl -n kube-system apply -f https://github.com/emberstack/kubernetes-reflector/releases/latest/download/reflector.yaml
secret
oder configmap
Fügen Sie reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
zu den Ressourcenanmerkungen hinzu, um die Reflexion auf Spiegeln zu ermöglichen.
Fügen Sie reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "<list>"
zu den Ressourcenanmerkungen hinzu, um die Reflektion nur aus der Liste der durch Kommas getrennten Namespaces oder regulären Ausdrücke zu ermöglichen. Hinweis: Wenn diese Annotation weggelassen wird oder leer ist, sind alle Namespaces zulässig.
Reflector kann automatisch Spiegelungen mit demselben Namen in anderen Namespaces erstellen. Die folgenden Anmerkungen steuern, ob und wie die Spiegel erstellt werden:
Fügen Sie reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
zu den Ressourcenanmerkungen hinzu, um automatisch Spiegelungen in anderen Namespaces zu erstellen. Hinweis: Erfordert, dass reflector.v1.k8s.emberstack.com/reflection-allowed
true
ist, da Spiegel in der Lage sein müssen, die Quelle zu reflektieren.
Fügen Sie reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "<list>"
zu den Ressourcenanmerkungen hinzu und geben Sie an, in welchen Namespaces automatisch Spiegel erstellt werden sollen. Hinweis: Wenn diese Annotation weggelassen wird oder leer ist, sind alle Namespaces zulässig. Namespaces in dieser Liste werden auch reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces
überprüft, da sich Spiegel in Namespaces befinden müssen, aus denen Reflektion zulässig ist.
Wichtig: Wenn die
source
gelöscht wird, werden automatische Spiegel gelöscht. Auch wenn entweder die Reflektion oder die automatische Spiegelung deaktiviert ist oder der Namespace des automatischen Spiegels nicht mehr mit den zulässigen Namespaces übereinstimmt, wird der automatische Spiegel gelöscht.
Wichtig: Reflector überspringt beim Erstellen automatischer Spiegelungen alle widersprüchlichen Ressourcen. Wenn in einem Namespace, in dem ein automatischer Spiegel erstellt werden soll, bereits eine Ressource mit dem Namen der Quelle vorhanden ist, wird dieser Namespace übersprungen und als Warnung protokolliert.
Beispiel für ein Quellengeheimnis:
apiVersion: v1kind: Secretmetadata: Name: Source-Secret-Anmerkungen: Reflektor.v1.k8s.emberstack.com/reflection-allowed: „true“ Reflektor.v1.k8s.emberstack.com/reflection-allowed-namespaces: „namespace-1 ,namespace-2,namespace-[0-9]*"data: ...
Beispiel für eine Quellkonfigurationszuordnung:
apiVersion: v1kind: ConfigMapmetadata: Name: source-config-map Anmerkungen: Reflektor.v1.k8s.emberstack.com/reflection-allowed: „true“ Reflektor.v1.k8s.emberstack.com/reflection-allowed-namespaces: „Namespace -1,namespace-2,namespace-[0-9]*"data: ...
Fügen Sie reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
zum Spiegelobjekt hinzu. Der Wert der Annotation ist der vollständige Name des Quellobjekts im namespace/name
.
Hinweis: Fügen Sie
reflector.v1.k8s.emberstack.com/reflected-version: ""
zu den Ressourcenanmerkungen hinzu, wenn Sie manuelle Änderungen am Spiegel vornehmen (z. B. bei der Bereitstellung mithelm
oder der erneuten Anwendung des Bereitstellungsskripts). Dadurch wird die reflektierte Version des Spiegels zurückgesetzt.
Beispiel für ein Spiegelgeheimnis:
apiVersion: v1kind: Secretmetadata: Name: Mirror-Secret Anmerkungen: Reflector.v1.k8s.emberstack.com/reflects: "default/source-secret"Data: ...
Beispiel einer Spiegelkonfigurationskarte:
apiVersion: v1kind: ConfigMapmetadata: Name: Mirror-Config-Map Anmerkungen: Reflector.v1.k8s.emberstack.com/reflects: "default/source-config-map"Data: ...
Reflector überwacht alle an den Quellobjekten vorgenommenen Änderungen und kopiert die folgenden Felder:
data
für Geheimnisse
data
und binaryData
für Konfigurationszuordnungen Reflector verfolgt, was kopiert wurde, indem Spiegel mit der Quellobjektversion mit Anmerkungen versehen werden.
cert-manager
Seit Version 1.5 des Cert-Managers können Sie aus Zertifikaten erstellte Geheimnisse für die Spiegelung mit
secretTemplate
mit Anmerkungen versehen (siehe 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: "" ...