Reflector는 리소스(비밀 및 구성 맵)의 변경 사항을 모니터링하고 동일하거나 다른 네임스페이스의 미러 리소스에 대한 변경 사항을 반영하도록 설계된 Kubernetes 애드온입니다.
amd64
,arm
및arm64
지원
도움이 필요하거나 버그를 발견한 경우 언제든지 GitHub(https://github.com/emberstack/kubernetes-reflector/issues)에서 문제를 열어주세요.
Reflector는 수동으로 배포하거나 Helm(권장)을 사용하여 배포할 수 있습니다.
쿠버네티스 1.14+
Helm 3(Helm을 사용하여 배포된 경우)
Helm을 사용하여 최신 릴리스 차트를 설치하십시오.
$ helm repo emberstack 추가 https://emberstack.github.io/helm-charts$ helm repo update$ helm 업그레이드 --install Reflector 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 | Pod의 priorityClassName | "" |
Artifact Hub에서 우리를 찾아보세요
각 릴리스(릴리스 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는 다른 네임스페이스에 동일한 이름을 가진 미러를 자동으로 생성할 수 있습니다. 다음 주석은 미러 생성 여부와 생성 방법을 제어합니다.
다른 네임스페이스에 미러를 자동으로 생성하려면 리소스 주석에 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
삭제되면 자동 미러도 삭제됩니다. 또한 반사나 자동 미러링이 꺼져 있거나 자동 미러의 네임스페이스가 허용된 네임스페이스와 더 이상 일치하지 않는 경우 자동 미러가 삭제됩니다.
중요: Reflector는 자동 미러를 생성할 때 충돌하는 리소스를 건너뜁니다. 자동 미러가 생성될 네임스페이스에 소스 이름을 가진 리소스가 이미 있는 경우 해당 네임스페이스를 건너뛰고 경고로 기록됩니다.
소스 비밀번호 예시:
apiVersion: v1kind: Secretmetadata: 이름: 소스 비밀 주석: Reflector.v1.k8s.emberstack.com/reflection-allowed: "true" Reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "namespace-1 ,네임스페이스-2,네임스페이스-[0-9]*"데이터: ...
소스 구성 맵 예시:
apiVersion: v1kind: ConfigMapmetadata: 이름: source-config-map 주석: Reflector.v1.k8s.emberstack.com/reflection-allowed: "true" Reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces: "네임스페이스 -1,네임스페이스-2,네임스페이스-[0-9]*"데이터: ...
reflector.v1.k8s.emberstack.com/reflects: "<source namespace>/<source name>"
미러 객체에 추가합니다. 주석의 값은 namespace/name
형식의 소스 개체의 전체 이름입니다.
참고: 미러를 수동으로 변경할 때(예:
helm
사용하여 배포하거나 배포 스크립트를 다시 적용하는 경우) 리소스 주석에reflector.v1.k8s.emberstack.com/reflected-version: ""
를 추가하세요. 그러면 반사된 미러 버전이 재설정됩니다.
미러 비밀번호 예시:
apiVersion: v1kind: Secretmetadata: 이름: 미러-비밀 주석: Reflector.v1.k8s.emberstack.com/reflects: "default/source-secret"data: ...
미러 구성 맵 예시:
apiVersion: v1kind: ConfigMapmetadata: 이름: mirror-config-map 주석: Reflector.v1.k8s.emberstack.com/reflects: "default/source-config-map"data: ...
Reflector는 소스 객체에 대한 모든 변경 사항을 모니터링하고 다음 필드를 복사합니다.
비밀 data
configmaps에 대한 data
및 binaryData
Reflector는 소스 객체 버전으로 미러에 주석을 추가하여 복사된 내용을 추적합니다.
cert-manager
지원cert-manager 버전 1.5부터
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: "" ...