Reflector est un module complémentaire Kubernetes conçu pour surveiller les modifications apportées aux ressources (secrets et cartes de configuration) et refléter les modifications pour mettre en miroir les ressources dans le même espace de noms ou dans d'autres.
Prend en charge
amd64
,arm
etarm64
Si vous avez besoin d'aide ou avez trouvé un bug, n'hésitez pas à ouvrir un problème sur GitHub (https://github.com/emberstack/kubernetes-reflector/issues).
Le réflecteur peut être déployé manuellement ou à l’aide de Helm (recommandé).
Kubernetes 1.14+
Helm 3 (si déployé à l'aide de Helm)
Utilisez Helm pour installer la dernière carte publiée :
$ helm repo ajouter emberstack https://emberstack.github.io/helm-charts$ helm repo update$ helm mise à niveau --installer réflecteur emberstack/reflector
Vous pouvez personnaliser les valeurs du déploiement helm en utilisant les valeurs suivantes :
Paramètre | Description | Défaut |
---|---|---|
nameOverride | Remplace le nom de la version | "" |
fullnameOverride | Remplace le nom complet de la version | "" |
image.repository | Dépôt d'images de conteneur | emberstack/kubernetes-reflector |
image.tag | Balise d'image de conteneur | Same as chart version |
image.pullPolicy | Politique d'extraction d'images de conteneur | IfNotPresent |
configuration.logging.minimumLevel | Niveau minimum de journalisation | Information |
configuration.watcher.timeout | Durée de vie maximale de l'observateur en secondes | `` |
configuration.kubernetes.skipTlsVerify | Ignorer la vérification TLS lors de la connexion du cluster | false |
rbac.enabled | Créer et utiliser des ressources RBAC | true |
serviceAccount.create | Créer un compte de service | true |
serviceAccount.name | Nom du compte de service | nom de la version |
livenessProbe.initialDelaySeconds | délai initial livenessProbe | 5 |
livenessProbe.periodSeconds | livenessProbe de sonde | 10 |
readinessProbe.initialDelaySeconds | préparationDélai initial readinessProbe | 5 |
readinessProbe.periodSeconds | état de readinessProbe d'enquête | 10 |
startupProbe.failureThreshold | seuil d'échec startupProbe | 10 |
startupProbe.periodSeconds | Période startupProbe | 5 |
resources | Limites des ressources | {} |
nodeSelector | Étiquettes de nœud pour l'attribution de pods | {} |
tolerations | Étiquettes de tolérance pour l'attribution de pods | [] |
affinity | Affinité de nœud pour l'attribution de pods | {} |
priorityClassName | priorityClassName pour les pods | "" |
Retrouvez-nous sur Artifact Hub
Chaque version (trouvée sur la page Releases GitHub) contient le fichier de déploiement manuel ( reflector.yaml
).
$ kubectl -n kube-system apply -f https://github.com/emberstack/kubernetes-reflector/releases/latest/download/reflector.yaml
secret
source ou configmap
Ajoutez reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
aux annotations de ressources pour permettre la réflexion sur les miroirs.
Ajoutez reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "<list>"
aux annotations de ressources pour permettre la réflexion à partir uniquement de la liste des espaces de noms ou des expressions régulières séparés par des virgules. Remarque : Si cette annotation est omise ou est vide, tous les espaces de noms sont autorisés.
Reflector peut créer automatiquement des miroirs portant le même nom dans d’autres espaces de noms. Les annotations suivantes contrôlent si et comment les miroirs sont créés :
Ajoutez reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
aux annotations de ressources pour créer automatiquement des miroirs dans d'autres espaces de noms. Remarque : reflector.v1.k8s.emberstack.com/reflection-allowed
doit être true
car les miroirs doivent pouvoir refléter la source.
Ajoutez reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "<list>"
aux annotations de ressources pour spécifier dans quels espaces de noms créer automatiquement des miroirs. Remarque : Si cette annotation est omise ou est vide, tous les espaces de noms sont autorisés. Les espaces de noms de cette liste seront également vérifiés par reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces
car les miroirs doivent se trouver dans des espaces de noms à partir desquels la réflexion est autorisée.
Important : Si la
source
est supprimée, les miroirs automatiques sont supprimés. De plus, si la réflexion ou la mise en miroir automatique sont désactivées ou si l'espace de noms du miroir automatique ne correspond plus aux espaces de noms autorisés, le miroir automatique est supprimé.
Important : Reflector ignorera toute ressource en conflit lors de la création de miroirs automatiques. S'il existe déjà une ressource portant le nom de la source dans un espace de noms où un miroir automatique doit être créé, cet espace de noms est ignoré et enregistré en tant qu'avertissement.
Exemple de secret source :
apiVersion : v1kind : Secretmetadata : nom : annotations source-secret : reflector.v1.k8s.emberstack.com/reflection-allowed : "true" réflector.v1.k8s.emberstack.com/reflection-allowed-namespaces : "namespace-1 ,espace de noms-2,espace de noms-[0-9]*"données : ...
Exemple de mappe de configuration source :
apiVersion : v1kind : ConfigMapmetadata : nom : source-config-map annotations : reflector.v1.k8s.emberstack.com/reflection-allowed : "true" Reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces : "espace de noms" -1,espace de noms-2,espace de noms-[0-9]*"données : ...
Ajoutez reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
à l'objet miroir. La valeur de l'annotation est le nom complet de l'objet source au format namespace/name
.
Remarque : ajoutez
reflector.v1.k8s.emberstack.com/reflected-version: ""
aux annotations de ressources lors de modifications manuelles du miroir (par exemple lors du déploiement avechelm
ou de la réapplication du script de déploiement). Cela réinitialisera la version réfléchie du miroir.
Exemple de secret miroir :
apiVersion : v1kind : Secretmetadata : nom : miroir-secret annotations : reflector.v1.k8s.emberstack.com/reflects : "default/source-secret"data : ...
Exemple de mappe de configuration miroir :
apiVersion : v1kind : ConfigMapmetadata : nom : miroir-config-map annotations : reflector.v1.k8s.emberstack.com/reflects : "default/source-config-map"data : ...
Reflector surveillera toutes les modifications apportées aux objets source et copiera les champs suivants :
data
pour les secrets
data
et binaryData
pour configmaps Reflector garde une trace de ce qui a été copié en annotant les miroirs avec la version de l'objet source.
cert-manager
Depuis la version 1.5 de cert-manager, vous pouvez annoter les secrets créés à partir de certificats pour la mise en miroir à l'aide de
secretTemplate
(voir 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: "" ...