Reflector es un complemento de Kubernetes diseñado para monitorear los cambios en los recursos (secretos y mapas de configuración) y reflejar los cambios para reflejar los recursos en el mismo espacio de nombres o en otros.
Soporta
amd64
,arm
yarm64
Si necesita ayuda o encontró un error, no dude en abrir un problema en GitHub (https://github.com/emberstack/kubernetes-reflector/issues).
El reflector se puede implementar manualmente o usando Helm (recomendado).
Kubernetes 1.14+
Helm 3 (si se implementa usando Helm)
Utilice Helm para instalar el último gráfico publicado:
$ repositorio de helm agregar emberstack https://emberstack.github.io/helm-charts$ actualización del repositorio de helm$ actualización de helm --instalar reflector emberstack/reflector
Puede personalizar los valores de la implementación de helm utilizando los siguientes valores:
Parámetro | Descripción | Por defecto |
---|---|---|
nameOverride | Anula el nombre de la versión | "" |
fullnameOverride | Anula el nombre completo de la versión | "" |
image.repository | Repositorio de imágenes de contenedores | emberstack/kubernetes-reflector |
image.tag | Etiqueta de imagen de contenedor | Same as chart version |
image.pullPolicy | Política de extracción de imágenes de contenedor | IfNotPresent |
configuration.logging.minimumLevel | Nivel mínimo de registro | Information |
configuration.watcher.timeout | Vida útil máxima del observador en segundos | `` |
configuration.kubernetes.skipTlsVerify | Omita la verificación de TLS al conectar el clúster | false |
rbac.enabled | Crear y utilizar recursos RBAC | true |
serviceAccount.create | Crear cuenta de servicio | true |
serviceAccount.name | Nombre de cuenta de servicio | nombre de lanzamiento |
livenessProbe.initialDelaySeconds | livenessProbe retraso inicial | 5 |
livenessProbe.periodSeconds | livenessProbe de sonda | 10 |
readinessProbe.initialDelaySeconds | readinessProbe inicial de la sonda | 5 |
readinessProbe.periodSeconds | readinessProbe de sonda | 10 |
startupProbe.failureThreshold | Umbral de fallo startupProbe | 10 |
startupProbe.periodSeconds | período de startupProbe | 5 |
resources | Límites de recursos | {} |
nodeSelector | Etiquetas de nodo para asignación de pods | {} |
tolerations | Etiquetas de tolerancia para la asignación de pods | [] |
affinity | Afinidad de nodo para la asignación de pods | {} |
priorityClassName | priorityClassName para pods | "" |
Encuéntrenos en Artifact Hub
Cada versión (que se encuentra en la página Versiones de GitHub) contiene el archivo de implementación manual ( reflector.yaml
).
$ kubectl -n kube-system apply -f https://github.com/emberstack/kubernetes-reflector/releases/latest/download/reflector.yaml
secret
de origen o configmap
Agregue reflector.v1.k8s.emberstack.com/reflection-allowed: "true"
a las anotaciones de recursos para permitir la reflexión en los espejos.
Agregue reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "<list>"
a las anotaciones de recursos para permitir la reflexión solo desde la lista de espacios de nombres separados por comas o expresiones regulares. Nota: Si esta anotación se omite o está vacía, se permiten todos los espacios de nombres.
Reflector puede crear espejos con el mismo nombre en otros espacios de nombres automáticamente. Las siguientes anotaciones controlan si se crean los espejos y cómo:
Agregue reflector.v1.k8s.emberstack.com/reflection-auto-enabled: "true"
a las anotaciones de recursos para crear espejos automáticamente en otros espacios de nombres. Nota: Requiere que reflector.v1.k8s.emberstack.com/reflection-allowed
sea true
ya que los espejos deben poder reflejar la fuente.
Agregue reflector.v1.k8s.emberstack.com/reflection-auto-namespaces: "<list>"
a las anotaciones de recursos para especificar en qué espacios de nombres crear espejos automáticamente. Nota: Si esta anotación se omite o está vacía, se permiten todos los espacios de nombres. Los espacios de nombres en esta lista también serán verificados por reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces
ya que los espejos deben estar en espacios de nombres desde donde se permite la reflexión.
Importante: Si se elimina la
source
, se eliminan las réplicas automáticas. Además, si se desactiva la reflexión o la duplicación automática o si el espacio de nombres de la duplicación automática ya no es una coincidencia válida para los espacios de nombres permitidos, la duplicación automática se elimina.
Importante: Reflector omitirá cualquier recurso en conflicto al crear espejos automáticos. Si ya existe un recurso con el nombre de la fuente en un espacio de nombres donde se va a crear una duplicación automática, ese espacio de nombres se omite y se registra como una advertencia.
Ejemplo de secreto de origen:
apiVersion: v1kind: Secretmetadata: nombre: fuente-secreto anotaciones: reflector.v1.k8s.emberstack.com/reflection-allowed: "true" reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace-1 ,espacio de nombres-2,espacio de nombres-[0-9]*"datos: ...
Mapa de configuración de origen de ejemplo:
apiVersion: v1kind: ConfigMapmetadata: nombre: source-config-map anotaciones: reflector.v1.k8s.emberstack.com/reflection-allowed: "true" reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "espacio de nombres -1, espacio de nombres-2, espacio de nombres-[0-9]*"datos: ...
Agregue reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
al objeto reflejado. El valor de la anotación es el nombre completo del objeto de origen en formato de namespace/name
.
Nota: Agregue
reflector.v1.k8s.emberstack.com/reflected-version: ""
a las anotaciones de recursos cuando realice cambios manuales en el espejo (por ejemplo, cuando implemente conhelm
o vuelva a aplicar el script de implementación). Esto restablecerá la versión reflejada del espejo.
Ejemplo de secreto espejo:
apiVersion: v1kind: Secretmetadata: nombre: anotaciones mirror-secret: reflector.v1.k8s.emberstack.com/reflects: datos "default/source-secret": ...
Ejemplo de mapa de configuración espejo:
apiVersion: v1kind: ConfigMapmetadata: nombre: mirror-config-map anotaciones: reflector.v1.k8s.emberstack.com/reflects: "default/source-config-map"datos: ...
Reflector monitoreará cualquier cambio realizado en los objetos de origen y copiará los siguientes campos:
data
para secretos
data
y binaryData
para mapas de configuración Reflector realiza un seguimiento de lo que se copió anotando espejos con la versión del objeto fuente.
cert-manager
Desde la versión 1.5 de cert-manager, puede anotar secretos creados a partir de certificados para duplicarlos usando
secretTemplate
(consulte 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: "" ...