Infograb logo
teleport-cluster 차트 참조

teleport-cluster Helm 차트는 Kubernetes에 Teleport 클러스터를 배포합니다.
여기에는 프록시, 인증 서버, 및 kubernetes-access를 배포하는 것이 포함됩니다.
자세한 내용은 Teleport HA 아키텍처 페이지를 참조하십시오.

소스를 GitHub에서 탐색할 수 있습니다.

teleport-cluster 차트는 두 개의 파드 세트로 나누어진 세 개의 Teleport 서비스를 실행합니다:

Teleport 서비스실행 위치용도문서
auth_serviceauth Deployment사용자를 인증하고 인증서를 발급합니다.인증 문서
kubernetes_serviceauth DeploymentTeleport 클러스터가 호스팅된 Kubernetes
클러스터에 안전하게 액세스할 수 있도록 제공합니다.
Kubernetes Access 문서
proxy_serviceproxy Deployment웹 UI, SSH 프록시 및 리버스 터널 서비스와 같은 Teleport
클러스터의 외부-facing 부분을 실행합니다.
프록시 문서
추가 Kubernetes 클러스터 및 Teleport 서비스

데이터베이스, 애플리케이션 또는 Teleport 클러스터를 호스팅하는 다른 Kubernetes 클러스터와 같은 리소스에 대한 액세스를 제공하려면 teleport-kube-agent Helm 차트를 사용해야 합니다.

  • teleport-cluster는 Teleport 클러스터를 호스팅하며, 하나만 필요합니다.
  • teleport-kube-agent는 기존 Teleport 클러스터에 연결하고 구성된 리소스를 노출합니다.

이 참조는 teleport-cluster 차트에 대해 사용할 수 있는 값을 상세히 설명합니다.

teleport-cluster 차트는 네 가지 다른 모드에서 배포될 수 있습니다.
각 모드에 대한 가이드를 시작하려면 다음을 참조하십시오:

chartMode용도가이드
standaloneKubernetes 리소스만 활용하여 실행됩니다.시작하기 - Kubernetes
awsAWS 관리 서비스를 활용하여 데이터를 저장합니다.AWS EKS 클러스터를 이용한 HA Teleport 클러스터 실행
gcpGCP 관리 서비스를 활용하여 데이터를 저장합니다.Google Cloud GKE 클러스터를 이용한 HA Teleport 클러스터 실행
azureAzure 관리 서비스를 활용하여 데이터를 저장합니다.Microsoft Azure AKS 클러스터를 이용한 HA Teleport 클러스터 실행
scratch (버전 12 이상)빈 Teleport 구성을 생성합니다. 사용자가 자신의 구성을 제공해야 합니다. 이는 권장되지 않으며, auth.teleportConfigproxy.teleportConfig를 사용하여 standalone 모드를 사용하는 것이 좋습니다.사용자 정의 구성을 이용한 Teleport 클러스터 실행
사용자 정의 모드 제거

custom 모드는 Teleport 버전 12에서 제거되었습니다. 자세한 내용은 버전 12 마이그레이션 가이드를 참조하십시오.

버전 호환성

차트는 Teleport와 함께 버전 관리됩니다. 새로운 차트와 이전의 주요 Teleport 버전 간에 호환성 보장은 제공되지 않습니다.
Helm 차트와 동일한 주요 버전의 Teleport 버전을 항상 배포하는 것이 강력히 권장됩니다.

경고

프로덕션 인스턴스, 환경 및/또는 설정을 영구적으로 수정하기 전에 백업하는 것이 모범 사례로 권장됩니다. 이렇게 하면 필요할 경우 기존 상태로 롤백할 수 있습니다.

clusterName

유형기본값필수?teleport.yaml에 대응하는 항목
stringnilauth_service.cluster_name, proxy_service.public_addr

clusterName은 Teleport 클러스터를 참조하는 데 사용되는 이름과 클러스터에 접근하기 위한 외부 노출 주소를 제어합니다.
대부분의 설정에서 이는 완전한 도메인 이름이어야 합니다 (예: teleport.example.com),
이 값은 기본적으로 클러스터의 공용 주소로 사용됩니다.

Note

clusterName으로 완전한 도메인 이름을 사용하는 경우, 해당 도메인의 DNS 제공자를 구성해야 외부 로드 밸런서의 IP 주소를 가리켜야 합니다.

IP 주소 또는 호스트 이름이 로드 밸런서를 위한 외부 주소로 제공되는지는 공급자에 따라 다릅니다.

EKS는 호스트 이름을 사용합니다:

kubectl --namespace teleport-cluster get service/teleport -o jsonpath='{.status.loadBalancer.ingress[*].hostname}'

a5f22a02798f541e58c6641c1b158ea3-1989279894.us-east-1.elb.amazonaws.com

GKE는 IP 주소를 사용합니다:

kubectl --namespace teleport-cluster get service/teleport -o jsonpath='{.status.loadBalancer.ingress[*].ip}'

35.203.56.38

DNS A 레코드를 수동으로 추가하여 teleport.example.com을 IP로 지정하거나 혹은 Kubernetes 로드 밸런서의 호스트 이름을 가리키는 CNAME 레코드를 추가해야 합니다.

Teleport은 애플리케이션 접근을 위해 구성한 각 애플리케이션에 서브도메인을 할당합니다. 예를 들어, Grafana를 리소스로 등록하면 Teleport은 리소스를 grafana.teleport.example.com 서브도메인에 할당합니다.

Teleport 클러스터를 자체 네트워크에서 호스팅하는 경우, 애플리케이션 서브도메인을 반영하도록 DNS 구성을 업데이트해야 합니다.
DNS를 업데이트하는 방법은 두 가지가 있습니다:

  • 서브도메인 이름에 대한 와일드카드 치환을 사용하여 단일 DNS 주소(A) 또는 정식 이름(CNAME) 레코드를 생성합니다. 예를 들어, *.teleport.example.com이라는 이름으로 DNS 레코드를 생성합니다.
  • 각 애플리케이션 서브도메인에 대해 별도의 DNS 주소(A) 또는 정식 이름(CNAME) 레코드를 생성합니다.

DNS 수정은 인증 기관(예: Let's Encrypt)이 각 서브도메인에 대해 인증서를 발급할 수 있도록 하며, 클라이언트가 접근하는 애플리케이션에 관계없이 Teleport 호스트를 확인할 수 있도록 합니다.

Teleport 클라우드 플랫폼을 사용하는 경우, DNS 업데이트가 필요하지 않습니다. 왜냐하면 Teleport 클러스터가 자동으로 서브도메인과 서명된 TLS 인증서를 제공하기 때문입니다.

Warning

clusterName은 Teleport 클러스터의 생애 주기 동안 변경할 수 없습니다.
변경해야 하는 경우, 완전히 새로운 클러스터를 재배포해야 합니다.

kubeClusterName

유형기본값필수?teleport.yaml에 대응하는 항목
stringclusterName아니요kubernetes_service.kube_cluster_name

kubeClusterName은 Kubernetes 접근을 위한 이름을 설정합니다.
이 이름은 Kubernetes 클러스터에 연결하는 Teleport 사용자에게 표시됩니다.

auth

유형기본값필수?
object아니요

teleport-cluster 차트는 Auth 서비스와 Proxy 서비스에 대해 두 개의 파드 세트를 배포합니다.

auth는 Teleport Auth 서비스와 관련된 Kubernetes 리소스에 대해서만 차트 값을 설정할 수 있습니다.
이는 차트 범위 값과 병합되어 충돌이 발생할 경우 우선권을 가집니다.

예를 들어, 오직 auth 파드에 대해 postStart 값을 재정의하려면:

# 기본적으로 모든 파드의 postStart 명령은 "echo starting"입니다.
postStart: ["echo", "starting"]

auth:
  # 그러나 우리는 오직 auth 파드에 대한 `postStart` 값을 재정의합니다.
  postStart: ["curl", "http://hook"]
  imagePullPolicy: Always

proxyProtocol

구성 요소유형기본값필수?teleport.yaml에 대응하는 항목
proxystringnull아니요proxy_service.proxy_protocol

proxyProtocol 값은 프록시 파드가 L4 로드 밸런서 뒤에 있을 때 클라이언트의 IP 주소가 포함된 PROXY 라인을 수락할지를 제어합니다.
L4 LBs는 클라이언트의 IP 주소를 보존하지 않기 때문에 Teleport가 클라이언트의 IP 주소를 적절히 감사할 수 있도록 PROXY 프로토콜이 필요합니다.

Teleport 파드가 PROXY 프로토콜이 활성화된 L4 LB 뒤에 있지 않은 경우, 이 값은 Teleport가 신뢰할 수 없는 소스의 PROXY 헤더를 수락하지 않도록 off로 설정해야 합니다.

가능한 값은 다음과 같습니다:

  • on: 모든 연결을 위한 PROXY 프로토콜을 활성화하고 L4 LB가 PROXY 헤더를 보낼 것을 요구합니다.
  • off: 모든 연결에 대해 PROXY 프로토콜을 비활성화하고 PROXY 헤더로 접두사된 모든 연결을 거부합니다.

proxyProtocol이 지정되지 않은 경우, Teleport는 연결에 대해 PROXY 헤더를 요구하지 않지만, 있으면 수락합니다.
이 모드는 안전하지 않으며 테스트 용도로만 사용해야 합니다.

자세한 내용은 PROXY 프로토콜 보안 섹션을 참조하십시오.

auth.teleportConfig

유형기본값필수?
object아니요

auth.teleportConfig는 auth 파드에 대한 YAML teleport 구성을 포함합니다.
이 구성은 차트에서 생성된 구성과 병합되며 충돌 시 우선권을 가집니다. 이 필드는 teleport.yaml의 구성의 사용자 정의/재정의를 가능하게 합니다
스크래치 차트 모드를 사용하지 않고도.

병합 로직은 다음과 같습니다:

  • 객체 필드는 재귀적으로 병합됩니다.
  • 목록은 대체됩니다.
  • 값(문자열, 정수, 불리언 등)은 교체됩니다.
  • 필드는 null 또는 ~로 설정하여 설정할 수 있습니다.

지원되는 필드 목록은 Teleport 구성 참조를 참조하십시오.

auth:
  teleportConfig:
    teleport:
      cache:
        enabled: false
    auth_service:
      client_idle_timeout: 2h
      client_idle_timeout_message: "활동 없이 2시간 후에 연결이 종료되었습니다"

proxy

유형기본값필수?
object아니요

teleport-cluster 차트는 인증 서비스와 프록시 서비스를 위한 두 세트의 파드를 배포합니다.

proxy는 Teleport 프록시 서비스와 관련된 Kubernetes 리소스에 대해서만 차트 값을 설정할 수 있게 해줍니다.
이는 차트 범위 값과 병합되어 충돌이 발생할 경우 우선권을 가집니다.

예를 들어, Teleport 프록시 서비스 파드에 대해 오직 postStart 값을 재정의하고,
Teleport 프록시 서비스에 대해 배포된 Kubernetes 서비스에 주석을 추가하려면:

# 기본적으로 모든 파드의 postStart 명령은 "echo starting"입니다.
postStart: ["echo", "starting"]

proxy:
  # 그러나 우리는 오직 프록시 파드에 대한 `postStart` 값을 재정의합니다.
  postStart: ["curl", "http://hook"]
  imagePullPolicy: Always

  # 우리는 또한 프록시 서비스 파드로 트래픽을 보내는 Kubernetes 서비스에 주석을 추가합니다.
  annotations:
    service:
      external-dns.alpha.kubernetes.io/hostname: "teleport.example.com"

proxy.teleportConfig

유형기본값필수?
object아니요

proxy.teleportConfig는 프록시 파드에 대한 YAML teleport 구성을 포함합니다.
이 구성은 차트에서 생성된 구성과 병합되며 충돌 시 우선권을 가집니다. 이 필드는 teleport.yaml
구성의 사용자 정의/재정의를 가능하게 합니다.

병합 로직은 다음과 같습니다:

  • 객체 필드는 재귀적으로 병합됩니다.
  • 목록은 대체됩니다.
  • 값(문자열, 정수, 불리언 등)은 교체됩니다.
  • 필드는 null 또는 ~로 설정하여 설정할 수 있습니다.

자세한 내용은 Teleport 구성 참조를 참조하십시오.

proxy:
  teleportConfig:
    teleport:
      cache:
        enabled: false
    proxy_service:
      https_keypairs:
        - key_file: /my-custom-mount/key.pem
          cert_file: /my-custom-mount/cert.pem

authentication

authentication.type

유형기본값필수?teleport.yaml에 대응하는 항목
stringlocalauth_service.authentication.type

authentication.type은 Teleport에서 사용하는 인증 체계를 제어합니다.
가능한 값은 Teleport 커뮤니티 에디션의 경우 localgithub, 엔터프라이즈의 경우 oidcsaml입니다.

authentication.connectorName

유형기본값필수?teleport.yaml에 대응하는 항목
string""아니요auth_service.authentication.connector_name

authentication.connectorName은 기본 인증 커넥터를 설정합니다.
SSO 문서는 일반적인 ID 공급자에 대한 인증 커넥터를 만드는 방법을 설명합니다.
SSO 커넥터 이름 외에 이와 같은 내장 커넥터가 지원됩니다:

  • local: 로컬 사용자
  • passwordless: 기본적으로 비밀번호 없는 인증을 활성화합니다.

기본적으로 local입니다.

authentication.localAuth

유형기본값필수?teleport.yaml에 대응하는 항목
booltrue아니요auth_service.authentication.local_auth

authentication.localAuth는 로컬 인증이 활성화될지를 제어합니다.
비활성화하면 사용자는 saml, oidc 또는 github와 같은 인증 커넥터를 통해서만 로그인할 수 있습니다.

로컬 인증 비활성화는 FedRAMP / FIPS에 필요합니다.

authentication.lockingMode

유형기본값필수?teleport.yaml에 대응하는 항목
string""아니요auth_service.authentication.locking_mode

authentication.lockingMode는 클러스터 전체의 잠금 모드를 제어합니다. 가능 값은 best_effortstrict입니다.
자세한 내용은 잠금 모드 문서를 참조하십시오.

기본적으로 비어 있는 경우 Teleport의 이진 기본값인 best_effort가 사용됩니다.

authentication.passwordless

유형기본값필수?teleport.yaml에 대응하는 항목
boolnil아니요auth_service.authentication.passwordless

authentication.passwordless는 비밀번호 없는 인증이 활성화될지를 제어합니다.
클러스터에 대한 비밀번호 없는 액세스를 금지하는 데 사용될 수 있습니다.

authentication.secondFactor

유형기본값필수?teleport.yaml에 대응하는 항목
stringotpauth_service.authentication.second_factor

authentication.secondFactor는 로컬 사용자 인증에 사용되는 두 번째 요인을 제어합니다.
이 차트에서 지원되는 가능한 값은 on, otp, 및 webauthn입니다.

on 또는 webauthn으로 설정 시, authenticationSecondFactor.webauthn 섹션도 사용할 수 있습니다.
구성된 rp_id의 기본값은 clusterName입니다.

Warning

사용자가 clusterName과 다른 도메인에서 클러스터에 접근할 수 있도록 publicAddr를 설정한 경우,
웹 인증신뢰할 수 있는 당사자 식별자(RP ID)를 수동으로 설정해야 합니다.
그렇지 않으면 RP ID는 clusterName의 기본값이 되어 사용자가 두 번째 요소를 등록하는 데 실패합니다.

이 값을 설정하여 auth.teleportConfig.auth_service.authentication.webauthn.rp_id로 설정할 수 있습니다.

RP ID는 유효한 도메인이어야 하며 사용자가 연결하는 전체 도메인의 일부여야 합니다.
예를 들어, 사용자가 "teleport.example.com" 도메인으로 클러스터에 접근하는 경우, RP ID는 "teleport.example.com" 또는 "example.com"이 될 수 있습니다.

RP ID를 변경하면 이미 등록된 모든 웹 인증 두 번째 요소가 무효화됩니다.

authentication.webauthn

자세한 내용은 두 번째 요소 - WebAuthn를 참조하십시오.

authentication.webauthn.attestationAllowedCas

유형기본값필수?teleport.yaml에 대응하는 항목
array[]아니요auth_service.authentication.webauthn.attestation_allowed_cas

authentication.webauthn.attestationAllowedCas장치 검증을 위해
허용된 인증 기관의 선택적 허용 목록입니다(로컬 파일 경로 또는 인라인 PEM 인증서 문자열).
이 필드는 신뢰하는 장치 모델과 공급자를 제한하는 데 사용할 수 있습니다.
목록 외부의 장치는 등록 시 거부됩니다. 기본적으로 모든 장치가 허용됩니다.

authentication.webauthn.attestationDeniedCas

유형기본값필수?teleport.yaml에 대응하는 항목
array[]아니요auth_service.authentication.webauthn.attestation_denied_cas

authentication.webauthn.attestationDeniedCas
장치 검증을 위해
특정 장치 모델 및 공급자를 금지하는 선택적 거부 목록입니다(로컬 파일 경로 또는 인라인 PEM 인증서 문자열).
이 필드는 등록 시 특정 장치 모델 및 공급자를 금지하면서 모두(허용 목록을 통과한 경우)는 허용하도록 하는 데 사용할 수 있습니다.
이 목록 내의 장치는 등록 시 거부됩니다. 기본적으로 어떤 장치도 금지되지 않습니다.

proxyListenerMode

유형기본값필수?teleport.yaml에 대응하는 항목
stringnil아니요auth_service.proxy_listener_mode

proxyListenerMode는 Teleport에서 사용되는 프록시 TLS 라우팅을 제어합니다.
가능한 값은 multiplex, separate입니다.

values.yaml 예시:

proxyListenerMode: multiplex

sessionRecording

유형기본값필수?teleport.yaml에 대응하는 항목
string""아니요auth_service.session_recording

sessionRecordingteleport.yaml 구성에서 session_recording 필드를 제어합니다.
이는 구성에서 있는 그대로 전달됩니다. 가능한 값은 Teleport 구성 참조를 참조하십시오.

values.yaml 예시:

sessionRecording: proxy

separatePostgresListener

유형기본값필수?teleport.yaml에 대응하는 항목
boolfalse아니요proxy_service.postgres_listen_addr

separatePostgresListener는 Teleport가 PostgreSQL 트래픽을 Teleport 웹 UI에 대해 별도의 TLS 수신기를 통해 멀티플렉싱할지를 제어합니다.

separatePostgresListenerfalse(기본값)인 경우, PostgreSQL 트래픽은 포트 443(기본 Teleport 웹 UI 포트)으로 향합니다.
이는 Teleport가 자신의 TLS 트래픽을 종료할 때 즉, LetsEncrypt의 인증서를 사용할 때 정상적으로 작동합니다
또는 Teleport의 proxy_service.https_keypairs 구성을 통해 인증서/개인 키 쌍을 제공할 때 작동합니다.

separatePostgresListenertrue인 경우, PostgreSQL 트래픽은 포트 5432의 별도의 Postgres 전용 수신기로 향하게 됩니다.
이것은 차트가 생성하는 Service에 포트를 추가합니다. 이는 AWS ACM을 사용할 때와 같이 Teleport 앞에 로드 밸런서에서 TLS를 종료할 때 유용합니다.

이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않습니다.

values.yaml 예시:

separatePostgresListener: true

separateMongoListener

유형기본값필수?teleport.yaml에 대응하는 항목
boolfalse아니요proxy_service.mongo_listen_addr

separateMongoListener는 Teleport가 PostgreSQL 트래픽을 Teleport 웹 UI에 대해 별도의 TLS 수신기를 통해 멀티플렉싱할지를 제어합니다.

separateMongoListenerfalse(기본값)인 경우, MongoDB 트래픽은 포트 443(기본 Teleport 웹 UI 포트)으로 향합니다.
이는 Teleport가 자신의 TLS 트래픽을 종료할 때 즉, LetsEncrypt의 인증서를 사용할 때 정상적으로 작동합니다
또는 Teleport의 proxy_service.https_keypairs 구성을 통해 인증서/개인 키 쌍을 제공할 때 작동합니다.

separateMongoListenertrue인 경우, MongoDB 트래픽은 포트 27017의 별도의 Mongo 전용 수신기로 향하게 됩니다.
이것은 차트가 생성하는 Service에 포트를 추가합니다. 이는 AWS ACM을 사용할 때와 같이 Teleport 앞에 로드 밸런서에서 TLS를 종료할 때 유용합니다.

이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않습니다.

values.yaml 예시:

separateMongoListener: true

publicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.public_addr

publicAddr는 TLS 연결을 위한 광고된 주소를 제어합니다.

publicAddr가 설정되어 있지 않은 경우, 사용되는 주소는 clusterName과 포트 443입니다.

Warning

사용자가 clusterName과 다른 도메인에서 클러스터에 접근할 수 있도록 publicAddr를 설정한 경우,
웹 인증신뢰할 수 있는 당사자 식별자(RP ID)를 수동으로 설정해야 합니다.
그렇지 않으면 RP ID는 clusterName의 기본값이 되어 사용자가 두 번째 요소를 등록하는 데 실패합니다.

이 값을 설정하여 auth.teleportConfig.auth_service.authentication.webauthn.rp_id로 설정할 수 있습니다.

RP ID는 유효한 도메인이어야 하며 사용자가 연결하는 전체 도메인의 일부여야 합니다.
예를 들어, 사용자가 "teleport.example.com" 도메인으로 클러스터에 접근하는 경우, RP ID는 "teleport.example.com" 또는 "example.com"이 될 수 있습니다.

RP ID를 변경하면 이미 등록된 모든 웹 인증 두 번째 요소가 무효화됩니다.

values.yaml 예시:

publicAddr: ["loadbalancer.example.com:443"]

kubePublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.kube_public_addr

kubePublicAddr는 Kubernetes 프록시를 위한 광고된 주소를 제어합니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있는 경우 적용되지 않습니다.

kubePublicAddr가 설정되어 있지 않은 경우, 주소는 설정된 경우 publicAddr에서 유추되며, 설정되어 있지 않으면 clusterName이 사용됩니다.
기본 포트는 3026입니다.

values.yaml 예시:

kubePublicAddr: ["loadbalancer.example.com:3026"]

mongoPublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.mongo_public_addr

mongoPublicAddr는 MongoDB 클라이언트를 위한 광고된 주소를 제어합니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않으며,
separateMongoListener 활성화가 필요합니다.

mongoPublicAddr가 설정되어 있지 않은 경우, 주소는 clusterName에서 유추됩니다.
기본 포트는 27017입니다.

values.yaml 예시:

mongoPublicAddr: ["loadbalancer.example.com:27017"]

mysqlPublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.mysql_public_addr

mysqlPublicAddr는 MySQL 프록시를 위한 광고된 주소를 제어합니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않습니다.

mysqlPublicAddr가 설정되어 있지 않은 경우, 주소는 설정된 경우 publicAddr에서 유추되며, 설정되어 있지 않으면 clusterName에서 유추됩니다.
기본 포트는 3036입니다.

values.yaml 예시:

mysqlPublicAddr: ["loadbalancer.example.com:3036"]

postgresPublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.postgres_public_addr

postgresPublicAddr는 PostgreSQL 클라이언트를 위한 광고된 주소를 제어합니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않으며,
separatePostgresListener 활성화가 필요합니다.

postgresPublicAddr가 설정되어 있지 않은 경우, 주소는 설정된 경우 publicAddr에서 유추되며, 설정되어 있지 않으면 clusterName에서 유추됩니다.
기본 포트는 5432입니다.

values.yaml 예시:

postgresPublicAddr: ["loadbalancer.example.com:5432"]

sshPublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.ssh_public_addr

sshPublicAddr는 SSH 클라이언트를 위한 광고된 주소를 제어합니다.
이 주소는 tsh 클라이언트에 의해 사용됩니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않습니다.

sshPublicAddr가 설정되어 있지 않은 경우, 주소는 설정된 경우 publicAddr에서 유추되며, 설정되어 있지 않으면 clusterName에서 유추됩니다.
기본 포트는 3023입니다.

values.yaml 예시:

sshPublicAddr: ["loadbalancer.example.com:3023"]

tunnelPublicAddr

유형기본값필수?teleport.yaml에 대응하는 항목
list[string][]아니요proxy_service.tunnel_public_addr

tunnelPublicAddr는 신뢰할 수 있는 클러스터 또는 노드가 노드 터널링을 통해 조인하는 데 사용하는 광고된 주소를 제어합니다.
이 설정은 proxyListenerModemultiplex로 설정되어 있을 경우 적용되지 않습니다.

tunnelPublicAddr가 설정되어 있지 않은 경우, 주소는 설정된 경우 publicAddr에서 유추되며, 설정되어 있지 않으면 clusterName에서 유추됩니다.
기본 포트는 3024입니다.

values.yaml 예시:

tunnelPublicAddr: ["loadbalancer.example.com:3024"]

enterprise

유형기본값
boolfalse

enterprise는 Teleport 커뮤니티 에디션 또는 Teleport 엔터프라이즈를 사용할지를 제어합니다.

enterprisetrue로 설정하면 Teleport 엔터프라이즈 이미지가 사용됩니다.
또한 이를 사용하기 위해 Teleport 대시보드에서 Enterprise 라이센스를 다운로드하여 Kubernetes 비밀로 추가해야 합니다:

kubectl --namespace teleport create secret generic license --from-file=/path/to/downloaded/license.pem
Tip

Teleport 차트를 특정 네임스페이스에 설치한 경우, 생성한 license 비밀은 동일한 네임스페이스에도 추가해야 합니다.

Note

비밀에 추가할 파일은 license.pem이라는 이름을 가져야 합니다.
이름을 변경한 경우, 비밀 생성 명령에서 사용할 파일 이름을 지정할 수 있습니다:

kubectl --namespace teleport create secret generic license --from-file=license.pem=/path/to/downloaded/this-is-my-teleport-license.pem

values.yaml 예시:

enterprise: true

installCRDs

유형기본값
boolfalse

CRD는 네임스페이스 범위가 없는 리소스입니다 - 클러스터에 한 번만 설치할 수 있습니다.

CRD는 Teleport Kubernetes Operator에서 필요하며, operator.enabledtrue인 경우 기본적으로 설치됩니다.
installCRDs는 이를 재정의하여 사용자가 Teleport CRD를 배포할지를 나타낼 수 있게 합니다.

같은 Kubernetes 클러스터에 여러 개의 teleport-cluster 차트를 배포하는 경우,
하나의 릴리스만 installCRDs를 활성화해야 합니다. Teleport CRDs를 직접 설치할 경우가 아니라면
이 값을 설정할 필요가 없습니다.

values.yaml 예시:

installCRDs: true

operator

operator.enabled

유형기본값
boolfalse

operator.enabled는 Teleport Kubernetes Operator를 사이드카로 배포할지를 제어합니다.
오프를 활성화하면 Teleport CRD가 Kubernetes 클러스터에 배포됩니다.
동일한 클러스터에서 Helm 차트를 여러 번 배포하는 경우, installCRDs로 이 동작을 재정의할 수 있습니다.

values.yaml 예시:

operator:
   enabled: true

operator.image

유형기본값
stringpublic.ecr.aws/gravitational/teleport-operator

operator.image는 클러스터의 Teleport 파드를 위한 Teleport Kubernetes Operator 컨테이너 이미지 설정합니다.
이 설정은 오프될 경우 사용할 자체 Teleport Operator 이미지를 사용하도록 재정의할 수 있습니다.

values.yaml 예시:

operator:
    image: my.docker.registry/teleport-operator-image-name

operator.resources

유형기본값
object{}

Kubernetes 리소스에 대한 문서를 참조하십시오.

각 컨테이너에 대해 관찰된 사용량에 따라 리소스 요청/제한을 설정하는 것이 권장됩니다.

values.yaml 예시:

operator:
    resources:
      requests:
        cpu: 1
        memory: 2Gi

global

global.clusterDomain

유형기본값
stringcluster.local

global.clusterDomain은 Kubernetes DNS 서비스에서 사용되는 도메인 접미사를 설정합니다.
이는 클러스터 내의 서비스 이름을 해석하는 데 사용됩니다.

values.yaml 예시:

global:
    clusterDomain: custom-domain.org

teleportVersionOverride

유형기본값
stringnil

일반적으로 사용되는 Teleport 버전은 설치되는 차트의 버전과 일치합니다.
차트 버전 10.0.0을 설치하면 Teleport 10.0.0을 사용합니다.
Helm 차트를 업그레이드하면 리포지토리의 최신 버전에 따라 업그레이드됩니다.

특정 다른 Teleport Docker 이미지 태그(예: 10.1.2 또는 11)를 사용하기 위해 이를 선택적을 재정의할 수 있습니다.

Danger

teleportVersionOverride는 Teleport 버전을 제어하는 데 사용되어서는 안 됩니다.
이 차트는 특정 Teleport 버전에서 실행되도록 설계되었습니다.
이를 사용하려고 할 경우 호환성 문제가 발생할 수 있습니다.

Teleport 버전 X.Y.Z를 실행하려면 helm --version X.Y.Z를 사용해야 합니다.

자세한 내용은 설치 가이드를 참조하여 Docker 이미지 버전을 확인하십시오.

values.yaml 예시:

teleportVersionOverride: "11"

acme

유형기본값teleport.yaml에 대응하는 항목
boolfalseproxy_service.acme.enabled

ACME는 웹 X.509 인증서를 가져오는 프로토콜입니다.

acmetrue로 설정하면 ACME 프로토콜이 활성화되고 Let's Encrypt로부터 무료 TLS 인증서를 얻으려 할 것입니다.
acmefalse로 설정하면(기본값) Teleport는 자체 서명된 인증서를 생성하고 웹 UI에 사용합니다.

Note

ACME는 단일 파드 클러스터에만 사용할 수 있습니다. 고가용성 구성에 적합하지 않습니다.

Warning

자체 서명된 TLS 인증서를 사용하고 TLS 검증을 활성화하는 것은
테스트에 적합하지만, 프로덕션 Teleport 클러스터를 실행하려면 실용적이지 않습니다.
프로덕션 워크로드에 대해 유효한 TLS 인증서를 Teleport 클러스터에 구성해야 합니다.

한 가지 옵션은 Teleport의 내장 ACME 지원을 사용하는 것이거나
cert-manager 지원을 활성화하는 것입니다.

acmeEmail

유형기본값teleport.yaml에 대응하는 항목
stringnilproxy_service.acme.email

acmeEmail은 인증서 등록 중 제공해야 할 이메일 주소입니다(이는 Let's Encrypt의 요구사항입니다).

acmeURI

유형기본값teleport.yaml에 대응하는 항목
stringLet's Encrypt 프로덕션 서버proxy_service.acme.uri

acmeURI는 인증서를 받기 위해 사용할 ACME 서버입니다.

예를 들어, 테스트를 위해 Let's Encrypt staging 서버를 사용할 수 있습니다.
또한 ACME 호환 서버를 사용할 수 있습니다.

values.yaml 예시:

acme: true
acmeEmail: user@email.com
acmeURI: https://acme-staging-v02.api.letsencrypt.org/directory

podSecurityPolicy

podSecurityPolicy.enabled

유형기본값
booltrue (1.22 이하) 및 false (1.23 이상)

기본적으로 Teleport 차트는 PodSecurityPolicy를 설치하는 데 사용됩니다.

PodSecurityPolicy 리소스는 Kubernetes 1.25에서 제거되었으며,
1.23 이후 PodSecurityAdmission으로 대체되었습니다.
Kubernetes 1.23 이상에서 실행하는 경우 PSP 생성 비활성화를 권장합니다.
이 단계들은 PSP 제거 가이드에 문서화되어 있습니다.

PSP 생성을 비활성화하려면 enabledfalse로 설정할 수 있습니다.

Kubernetes 참조

values.yaml 예시:

podSecurityPolicy:
    enabled: false

labels

유형기본값
object{}

labels를 사용하여 배포되는 Teleport 클러스터와 관련된 키-값 쌍의 맵을 추가할 수 있습니다.
이 레이블은 이후 Teleport의 RBAC 정책과 함께 사용되어 클러스터에 대한 액세스 규칙을 정의하는 데 사용될 수 있습니다.

Note

이는 Teleport 전용 RBAC 레이블이며, Kubernetes 레이블이 아닙니다.
Kubernetes 리소스에 추가 레이블을 설정하려면 extraLabels를 참조하세요.

values.yaml 예시:

labels:
    environment: production
    region: us-east

chartMode

유형기본값
stringstandalone

chartMode는 차트의 동작 모드를 구성하는 데 사용됩니다. 각 모드에 대한 자세한 내용은 해당 특정 가이드 페이지에서 확인할 수 있습니다:

chartMode가이드
standalone시작하기 - Kubernetes
awsAWS EKS 클러스터를 이용한 HA Teleport 클러스터 실행
gcpGoogle Cloud GKE 클러스터를 이용한 HA Teleport 클러스터 실행
azureMicrosoft Azure AKS 클러스터를 이용한 HA Teleport 클러스터 실행
scratch사용자 정의 구성을 이용한 Teleport 클러스터 실행
Warning

scratch 차트 모드는 사용이 권장되지 않습니다.
정확한 차트 및 Teleport 지식이 있어야 완전히 작동하는 클러스터 구성을 작성할 수 있습니다.

작동하는 클러스터를 원하거나 사용자 정의 구성 블록을 원할 경우, 다른 모드를 사용하고
auth.teleportConfigproxy.teleportConfig를 사용하여 사용자 정의 구성을 주입할 것을 권장합니다.

podMonitor

podMonitorPodMonitor CR (from monitoring.coreos.com/v1)
차트를 통해 배포된 Auth 및 Proxy 서비스를 모니터링합니다.
이 사용자 정의 리소스는 Prometheus를 구성하고 Teleport 메트릭스를 스크랩하도록 설정합니다.

CRD는 prometheus-operator에 의해 배포되며 워크로드를 모니터링할 수 있게 해줍니다.
podMonitor 섹션을 구성하기 전에 클러스터 내에 prometheus-operator를 배포해야 합니다.
설치 지침은 prometheus-operator 문서를 참조하십시오.

podMonitor.enabled

유형기본값
boolfalse

차트를 통해 PodMonitor 리소스를 배포해야 하는지 여부입니다.
기본적으로 비활성화되어 있으며, PodMonitor CRD가 클러스터에 설치되어 있어야 활성화할 수 있습니다.

podMonitor.additionalLabels

유형기본값
object[string]string{"prometheus":"default"}

생성된 PodMonitor 리소스에 추가할 레이블입니다.
이 레이블은 특정 Prometheus 인스턴스에 의해 선택되는데 사용됩니다.

podMonitor.interval

유형기본값
string30s

interval은 Prometheus에 의해 두 메트릭 스크랩 간의 간격입니다.

persistence

Kubernetes 1.23+의 변경 사항으로 인해
영구 볼륨은 추가 구성 없이 AWS EKS 클러스터에서 자동으로 프로비저닝되지 않습니다.

자세한 내용은 EBS CSI 드라이버에 대한 AWS 문서를 참조하십시오.
이 드라이버 추가 기능은 Kubernetes 1.23 이후 EKS 클러스터에서 영구 볼륨을 사용하기 위해 구성되어야 합니다.

persistence.enabled

유형기본값
booltrue

persistence.enabled는 새 PersistentVolumeClaim을 사용하여 데이터 영속성을 활성화 또는 기존 PersistentVolumeClaim을 사용할 수 있습니다.

values.yaml 예시:

persistence:
  enabled: true

persistence.existingClaimName

유형기본값
stringnil

persistence.existingClaimName는 필요 시 사용할 기존 PersistentVolumeClaim의 이름을 제공하는 데 사용될 수 있습니다.
기본적으로 비워두면 자동으로 standalone 또는 scratch 모드에서 Teleport 저장소를 사용하기 위해 PersistentVolumeClaim이 생성됩니다.

values.yaml 예시:

persistence:
  existingClaimName: my-existing-pvc-name

persistence.storageClassName

유형기본값
stringnil

persistence.storageClassNamePersistentVolumeClaim의 저장소 클래스를 설정하는 데 사용될 수 있습니다.

values.yaml 예시:

persistence:
  storageClassName: ebs-ssd

persistence.volumeSize

유형기본값
string10Gi

volumeSize를 설정하여 standalone 또는 scratch 모드에서 Teleport 차트를 설치할 때
영속적 볼륨의 크기를 다르게 요청할 수 있습니다.

Note

volumeSizeexistingClaimName이 설정된 경우 무시됩니다.

values.yaml 예시:

persistence:
  volumeSize: 50Gi

aws

aws 설정은 AWS 가이드에 설명되어 있습니다: AWS EKS 클러스터를 이용한 HA Teleport 클러스터 실행

aws.region

aws.region은 DynamoDB 테이블이 위치한 AWS 지역입니다.

aws.backendTable

aws.backendTable은 백엔드 저장소에 사용할 DynamoDB 테이블의 이름입니다.
Teleport는 자동으로 이 테이블을 생성하려고 시도할 것입니다.
컨테이너는 DynamoDB 테이블을 생성하기 위한 권한이 있는 적절히 프로비전된 IAM 역할이 필요합니다.

aws.auditLogTable

aws.auditLogTable은 감사 로그 저장소에 사용할 DynamoDB 테이블의 이름입니다.
Teleport는 자동으로 이 테이블을 생성하려고 시도할 것입니다.
컨테이너는 DynamoDB 테이블을 생성하기 위한 권한이 있는 적절히 프로비전된 IAM 역할이 필요합니다.
이 테이블은 aws.backendTable과 다른 이름이어야 합니다. 스키마가 다르기 때문입니다.

Athena 백엔드를 사용하는 경우 이 값을 설정할 필요가 없습니다.
이 값을 설정하면 감사 로그가 Athena와 DynamoDB 백엔드로 모두 전송됩니다.
이는 백엔드를 마이그레이션할 때 유용합니다.
aws.athenaURLaws.auditLogTable(DynamoDB)가 모두 설정된 경우,
aws.auditLogPrimaryBackend 값이 쿼리 실행에 사용되는 백엔드를 구성합니다.
Teleport는 감사 백엔드를 쿼리하여 감사 로그를 웹 UI에 표시하거나 감사 로그 수집기를 통해 이벤트를 내보내거나
과거 감사 이벤트를 검사해야 하는 모든 작업을 수행합니다.

aws.auditLogMirrorOnStdout

aws.auditLogMirrorOnStdout는 감사 로그 항목을 JSON 형식으로 stdout에 미러링할지를 제어합니다(외부 로그 수집기에 유용함).

기본값은 false입니다.

aws.auditLogPrimaryBackend

auditLogPrimaryBackend는 여러 감사 백엔드가 활성화된 경우 쿼리에 사용되는 백엔드를 제어합니다.
이 설정은 단일 감사 로그 백엔드가 활성화된 경우에는 영향을 주지 않습니다.
이 설정은 DynamoDB에서 Athena로 마이그레이션할 때 사용됩니다.
가능한 값은 dynamoathena입니다.

aws.athenaURL

athenaURL은 Athena 감사 로그 백엔드 구성입니다.
이 값이 설정되면 Teleport는 Athena 감사 백엔드에 이벤트를 내보냅니다.

Athena 감사 백엔드를 사용하려면 필요한 인프라를 설정해야 합니다(S3 버킷, SQS 큐, AthenaDB, IAM 역할 및 권한 등).
요구 사항은 Athena 백엔드 문서에서 설명합니다.

aws.athenaURLaws.auditLogTable(DynamoDB)를 모두 설정하면,
aws.auditLogPrimaryBackend 값이 쿼리에 사용되는 백엔드를 구성합니다.

aws.sessionRecordingBucket

aws.sessionRecordingBucket은 기록된 세션 저장소에 사용할 S3 버킷의 이름입니다.
Teleport는 자동으로 이 버킷을 생성하려고 시도할 것입니다.

컨테이너는 S3 버킷을 생성하기 위한 권한이 있는 적절히 프로비전된 IAM 역할이 필요합니다.

aws.backups

aws.backups는 Teleport가 DynamoDB 백엔드를 구성할 때 백업이 활성화되어야 하는지 여부를 제어합니다.

aws.dynamoAutoScaling

Teleport가 DynamoDB의 자동 확장을 구성해야 할지 여부입니다. 기본값은 false입니다.

Warning

DynamoDB 자동 확장은 더 이상 권장되지 않습니다.
Teleport는 이제 "on demand" DynamoDB 청구기 설정으로 기본값을 제공하며, 이 설정이 더 신뢰할 수 있는 성능을 제공합니다.

aws.accessMonitoring

aws.accessMonitoring는 Auth 서비스의 액세스 모니터링 기능을 구성합니다.

이 기능을 사용하려면 액세스 모니터링 구성 섹션에서 설명하는 특정 AWS 인프라를 설정해야 합니다.
Terraform 예제 코드는 이 섹션에 대한 차트 값을 출력합니다.

aws.accessMonitoring.enabled

aws.accessMonitoring.enabled는 액세스 모니터링을 활성화합니다. 이는
aws.athenaURL이 설정되어 있어야 합니다.

aws.accessMonitoring.reportResults

aws.accessMonitoring.reportResults는 쿼리 결과가 보고되는 버킷 URI입니다.

예: s3://example-athena-long-term/report_results.

aws.accessMonitoring.roleARN

aws.accessMonitoring.roleARN는 보고서를 실행할 때 사용되는 역할의 ARN입니다.

aws.accessMonitoring.workgroup

aws.accessMonitoring.workgroup는 Teleport가 쿼리를 실행하는 Athena 작업 그룹입니다.

gcp

gcp 설정은 GCP 가이드에 설명되어 있습니다: Google Cloud GKE 클러스터를 이용한 HA Teleport 클러스터 실행

azure

azure 설정은 Azure 가이드에 설명되어 있습니다: Microsoft Azure AKS 클러스터를 이용한 HA Teleport 클러스터 실행

highAvailability

highAvailability는 Teleport 파드가 복제 및 스케줄되는 방식을 제어하는 설정을 포함합니다.
이를 통해 Teleport는 고가용성으로 실행될 수 있습니다: Teleport는 서비스 중단 없이 머신의 충돌/손실을 견뎌야 합니다.

Auth 파드를 위한 경우

standalone 또는 scratch 모드를 사용할 경우,
여러 개의 복제를 지원하기 위해서는 고가용성 저장소(etcd, DynamoDB 또는 Firestore)를 사용해야 합니다.
NFS 기반 저장소 또는 ReadWriteMany 볼륨 청구를 수동적으로 구성하는 것은 지원되지 않으며 오류가 발생합니다.
여러 복제를 사용할 때 Teleport의 내장 ACME 클라이언트를 사용하는 것은 지원되지 않습니다.

Proxy 파드를 위한 경우

프록시 파드는 복제를 위해 인증서를 제공해야 하며,
이에 대해 tls.existingSecretName 또는 highAvailability.certManager를 사용해야 합니다.
프록시 파드가 복제 가능할 경우, 기본적으로 2개의 복제본이 제공됩니다.
이 경우 highAvailability.replicaCount가 1일지라도 기본값이 2로 설정됩니다.
프록시 복제본을 강제로 하나로 유지하려면 proxy.highAvailability.replicaCount: 1로 설정합니다.

highAvailability.replicaCount

유형기본값
int1

파드 복제 수를 제어합니다.
highAvailability 섹션에서는 복제 요구 사항을 설명합니다.

버전 호환성

값이 1보다 큰 경우, 필수적으로 위에 설명된 복제 기준을 충족해야 합니다.
이를 어기면 오류 및 불일치하는 데이터가 발생할 수 있습니다.

highAvailability.requireAntiAffinity

유형기본값
boolfalse

Kubernetes 참조

highAvailability.requireAntiAffinitytrue로 설정하면,
requiredDuringSchedulingIgnoredDuringExecution를 사용하여 여러 Teleport 파드가 동일한 물리적 호스트에 배치되지 않도록 요구합니다.

Warning

이는 매우 작은 클러스터에서 또는 노드 다운타임 동안 Teleport 파드가 스케줄링되지 않게 될 수 있는 위험이 있으므로 주의하고 사용해야 합니다.

highAvailability.requireAntiAffinityfalse로 설정하는 경우(기본값),
노드 반대 친화력이 부드러운 요구 사항으로 정의됩니다.

Note

이 설정은 highAvailability.replicaCount가 1보다 클 때만 영향을 줍니다.

values.yaml 예시:

highAvailability:
    requireAntiAffinity: true

highAvailability.podDisruptionBudget

highAvailability.podDisruptionBudget.enabled

유형기본값
boolfalse

Kubernetes 참조

Teleport 파드에 대한 Pod Disruption Budget을 활성화하여 자발적인 중단 동안 HA를 보장합니다.

values.yaml 예시:

highAvailability:
    podDisruptionBudget:
      enabled: true

highAvailability.podDisruptionBudget.minAvailable

유형기본값
int1

Kubernetes 참조

자발적인 중단 동안 사용 가능한 이 수의 복제본을 보장합니다.
복제본 수 또는 백분율일 수 있습니다.

values.yaml 예시:

highAvailability:
    podDisruptionBudget:
      minAvailable: 1

highAvailability.certManager

자세한 내용은 cert-manager 문서를 참조하십시오.

highAvailability.certManager.enabled

유형기본값teleport.yaml에 대응하는 항목
boolfalseproxy_service.https_keypairs (인증서를 제공하기 위해)

highAvailability.certManager.enabledtrue로 설정하면
HA 모드에서 배포된 Teleport 클러스터의 TLS 인증서를 프로비저닝하기 위해 cert-manager를 사용합니다.

cert-manager 설치

Kubernetes 클러스터 내에 cert-manager를 직접 설치하고 구성해야 합니다.
cert-manager Helm 설치 지침
AWS와 GCP 가이드의 관련 섹션을 참조하여 자세한 내용을 확인하십시오.

highAvailability.certManager.addCommonName

유형기본값teleport.yaml에 대응하는 항목
boolfalseproxy_service.https_keypairs (인증서를 제공하기 위해)

highAvailability.certManager.addCommonNametrue로 설정하면
cert-manager는 인증서 서명 요청의 commonName 필드를 발급 CA로 설정하도록 지시합니다.

공통 이름 필드 활성화

Kubernetes 클러스터 내에 적절한 Issuer를 설치하고 구성해야 합니다.
적절한 DNS01 챌린지를 지원하는 Issuer를 구성하는 방법은 cert-manager DNS01 문서를 참조하십시오.
AWS 및 GCP 가이드의 관련 섹션도 참조하십시오.

values.yaml 예시:

highAvailability:
    certManager:
      enabled: true
      addCommonName: true
      issuerName: letsencrypt-production

highAvailability.certManager.addPublicAddrs

유형기본값teleport.yaml에 대응하는 항목
boolfalseproxy_service.https_keypairs (인증서를 제공하기 위해)

highAvailability.certManager.addPublicAddrstrue로 설정하면
cert-manager는 추가 주소를 인증서 서명 요청 시 발급 CA에 추가하도록 지시합니다.

values.yaml 예시:

publicAddr: ['teleport.example.com:443']
highAvailability:
    certManager:
      enabled: true
      addPublicAddrs: true
      issuerName: letsencrypt-production

highAvailability.certManager.issuerName

유형기본값teleport.yaml에 대응하는 항목
stringnil없음

발급 인증서를 발급시키기 위해 사용할 cert-managerIssuer 또는 ClusterIssuer의 이름을 설정합니다.

발급자 구성

사용자가 DNS01 챌린지를 지원하는 적절한 Issuer를 설정해야 합니다.
cert-manager 문서에서 DNS01 챌린지에 대한 내용을 확인하십시오.
AWS 및 GCP 가이드의 관련 섹션이나 Terraform 예제도 확인하십시오.

values.yaml 예시:

highAvailability:
    certManager:
      enabled: true
      issuerName: letsencrypt-production

highAvailability.certManager.issuerKind

유형기본값teleport.yaml에 대응하는 항목
stringIssuer없음

발급 인증서를 발급하기 위해 사용할 인증서의 Issuer 유형을 설정합니다.
기본적으로 Issuer로 설정되어 있어 단일 네임스페이스로 권한이 제한됩니다.

values.yaml 예시:

highAvailability:
    certManager:
      issuerKind: ClusterIssuer

highAvailability.certManager.issuerGroup

유형기본값
stringcert-manager.io

인증서 발급 시 사용할 IssuerGroup을 설정합니다.
기본적으로 내장 발급자를 사용하기 위해 cert-manager.io로 설정되어 있습니다.

values.yaml 예시:

highAvailability:
    certManager:
      issuerGroup: cert-manager.io

highAvailability.minReadySeconds

| 유형       | 기본값        |
|------------|---------------|
| `integer`  | `15`          |

포드 롤아웃 중 다음 포드로 이동하기 전에 기다릴 시간.
[쿠버네티스 문서 보기](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#min-ready-seconds).

이는 롤아웃을 계속하기 전에 에이전트가 새롭게 생성된 포드에 다시 연결할 수 있는 시간을 제공하는 데 사용됩니다.

`values.yaml` 예시:

  ```yaml
  highAvailability:
    minReadySeconds: 15

tls.existingSecretName

유형기본값teleport.yaml 해당 항목
string""proxy_service.https_keypairs

tls.existingSecretName은 Teleport에게 HTTPS를 사용하여 웹 UI를 보호하기 위해 기존의 쿠버네티스 TLS 비밀을 사용하도록 지시합니다. 이는 Let's Encrypt와 같은 공공 CA가 아닌 신뢰할 수 있는 내부 CA가 발급한 TLS 인증서를 사용하도록 설정할 수 있습니다.

다음과 같은 명령어를 사용하여 Teleport와 같은 네임스페이스에서 비밀을 생성해야 합니다:

kubectl create secret tls my-tls-secret --cert=/path/to/cert/file --key=/path/to/key/file

자세한 정보는 쿠버네티스 비밀 문서 보기를 참조하세요.

values.yaml 예시:

tls:
  existingSecretName: my-tls-secret

tls.existingCASecretName

유형기본값
string""

tls.existingCASecretNameSSL_CERT_FILE 환경 변수를 설정하여 Teleport 포드에 신뢰할 수 있는 CA 또는 PEM 형식의 번들을 로드합니다. 이는 Teleport가 시작 시 전체 신뢰 체인을 구축할 수 있도록 루트 및/또는 중간 CA를 주입하는 데 사용될 수 있습니다. OIDC 공급자, S3 호환 백엔드 또는 Teleport 기본 이미지를 수정하지 않고 외부 서비스와 통신할 때 개인 CA를 신뢰하는 데 사용할 수 있습니다.

이는 tls.existingSecretName이 설정되었을 때 포드 로그에 사용자 메시지: HTTPS 인증서 체인을 확인할 수 없습니다 오류가 발생할 경우 필요할 수 있습니다.

다음과 같은 명령어를 사용하여 Teleport와 같은 네임스페이스에서 비밀을 생성해야 합니다:

kubectl create secret generic my-root-ca --from-file=ca.pem=/path/to/root-ca.pem

비밀에 사용되는 루트 CA의 파일 이름은 ca.pem이어야 합니다.

values.yaml 예시:

tls:
  existingCASecretName: my-root-ca

image

유형기본값
stringpublic.ecr.aws/gravitational/teleport

image는 클러스터 내 Teleport 커뮤니티 포드에 사용되는 Teleport 컨테이너 이미지를 설정합니다.

이를 통해 Teleport에서 제공하는 이미지를 대신하여 자신의 Teleport 커뮤니티 이미지를 사용할 수 있습니다.

values.yaml 예시:

image: my.docker.registry/teleport-community-image-name

enterpriseImage

유형기본값
stringpublic.ecr.aws/gravitational/teleport-ent

enterpriseImage는 클러스터 내 Teleport 엔터프라이즈 포드에 사용되는 컨테이너 이미지를 설정합니다.

이를 통해 Teleport에서 제공하는 이미지를 대신하여 자신의 Teleport 엔터프라이즈 이미지를 사용할 수 있습니다.

values.yaml 예시:

enterpriseImage: my.docker.registry/teleport-enterprise-image-name

log

log.level

Note

이 필드는 이전에 logLevel이라고 불렸습니다. 이전 호환성을 위해 이 이름을 여전히 사용할 수 있지만, 값 파일을 log.level 사용으로 변경하는 것이 좋습니다.

유형기본값teleport.yaml 해당 항목
stringINFOteleport.log.severity

log.level은 Teleport 프로세스에 사용되는 로그 수준을 설정합니다.

사용 가능한 로그 수준(가장 상세한 것부터 가장 적은 것까지): DEBUG, INFO, WARNING, ERROR.

기본 값은 프로덕션에서 권장되는 INFO입니다.

DEBUG는 처음 설정할 때 유용하거나 디버깅을 위한 보다 자세한 로그를 보는 데 유용합니다.

values.yaml 예시:

log:
  level: DEBUG

log.output

유형기본값teleport.yaml 해당 항목
stringstderrteleport.log.output

log.output은 Teleport 프로세스에 대한 출력 대상을 설정합니다.

이는 기본 제공 값인 stdout, stderr 또는 syslog 중 하나로 설정할 수 있습니다.

값은 출력을 파일 경로(예: /var/log/teleport.log)로 설정하여 로그를 파일에 쓸 수 있습니다. 몇 가지 서비스 시작 메시지는 여전히 복원성을 위해 stderr로 전송됩니다.

values.yaml 예시:

log:
  output: stderr

log.format

유형기본값teleport.yaml 해당 항목
stringtextteleport.log.format.output

log.format은 Teleport 프로세스에 대한 출력 유형을 설정합니다.

가능한 값은 text(기본값) 또는 json입니다.

values.yaml 예시:

log:
  format: json

log.extraFields

유형기본값teleport.yaml 해당 항목
list["timestamp", "level", "component", "caller"]teleport.log.format.extra_fields

log.extraFields는 Teleport 프로세스의 로그에 사용할 필드를 설정합니다.

extra_fields에 대한 가능한 값에 대한 자세한 내용은 Teleport 구성 파일 참조를 참조하세요.

values.yaml 예시:

log:
  extraFields: ["timestamp", "level"]

nodeSelector

유형기본값
object{}

nodeSelector는 Teleport 포드가 실행될 노드를 제약하기 위해 키-값 쌍의 맵을 추가하는 데 사용할 수 있습니다.

쿠버네티스 참조

values.yaml 예시:

nodeSelector:
  role: bastion
  environment: security

affinity

유형기본값
object{}

Kubernetes reference

쿠버네티스가 포드 할당을 위해 설정해야 하는 친화도.

Note

affinityhighAvailability.requireAntiAffinity를 동시에 설정할 수 없습니다. 서로 충돌하므로 하나만 설정해야 합니다.

values.yaml 예시:

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: gravitational.io/dedicated
          operator: In
          values:
          - teleport

annotations

annotations.config

유형기본값teleport.yaml 해당 항목
object{}없음

쿠버네티스 참조

차트에 의해 생성된 ConfigMap에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  config:
    kubernetes.io/annotation: value

annotations.deployment

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 Deployment에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  deployment:
    kubernetes.io/annotation: value

annotations.pod

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 각 Pod에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  pod:
    kubernetes.io/annotation: value

annotations.service

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 Service에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  service:
    kubernetes.io/annotation: value

annotations.serviceAccount

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 serviceAccount에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  serviceAccount:
    kubernetes.io/annotation: value

annotations.certSecret

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 certificate에서 cert-manager가 생성하는 secret에 적용해야 하는 쿠버네티스 주석. 이는 highAvailability.certManager.enabledtrue로 설정될 때만 유효하며 cert-manager v1.5.0+를 요구합니다.

values.yaml 예시:

annotations:
  certSecret:
    kubernetes.io/annotation: value

annotations.ingress

유형기본값
object{}

쿠버네티스 참조

차트에 의해 생성된 Ingress에 적용해야 하는 쿠버네티스 주석.

values.yaml 예시:

annotations:
  ingress:
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/backend-protocol: HTTPS

extraLabels

extraLabels는 차트에 의해 생성된 리소스에 적용할 추가 쿠버네티스 레이블을 포함합니다.

레퍼런스에 대한 자세한 정보는 쿠버네티스 레이블 문서 보기를 참조하세요.

참고: PodMonitor 레이블은 대신 podMonitor.additionalLabels를 참조하세요.

extraLabels.certSecret

유형기본값
object{}

extraLabels.certSecrethighAvailability.certManager.enabled가 true일 때 cert-manager v1.5+에 의해 생성된 인증서 비밀에 설정할 레이블입니다.

extraLabels.clusterRole

유형기본값
object{}

extraLabels.clusterRole는 ClusterRole에 설정할 레이블입니다.

extraLabels.clusterRoleBinding

유형기본값
object{}

extraLabels.clusterRoleBinding는 ClusterRoleBinding에 설정할 레이블입니다.

extraLabels.role

유형기본값
object{}

extraLabels.role는 Role에 설정할 레이블입니다.

extraLabels.deployment

유형기본값
object{}

extraLabels.deployment는 Deployment에 설정할 레이블입니다.

extraLabels.ingress

유형기본값
object{}

extraLabels.ingress는 Ingress에 설정할 레이블입니다.

extraLabels.job

유형기본값
object{}

extraLabels.job는 Helm hook에 의해 실행되는 Job에 설정할 레이블입니다.

extraLabels.persistentVolumeClaim

유형기본값
object{}

extraLabels.persistentVolumeClaim는 PersistentVolumeClaim에 설정할 레이블입니다.

extraLabels.pod

유형기본값
object{}

extraLabels.pod는 Deployment에 의해 생성되는 Pods에 설정할 레이블입니다.

extraLabels.podDisruptionBudget

유형기본값
object{}

extraLabels.podDisruptionBudget는 podDisruptionBudget에 설정할 레이블입니다.

extraLabels.secret

유형기본값
object{}

extraLabels.secret는 Secret에 설정할 레이블입니다.

extraLabels.service

유형기본값
object{}

extraLabels.service는 Service에 설정할 레이블입니다.

extraLabels.serviceAccount

유형기본값
object{}

extraLabels.serviceAccount는 ServiceAccount에 설정할 레이블입니다.

serviceAccount.create

유형기본값필수?
booleantrue아니오

쿠버네티스 참조

서비스 계정을 생성할지 여부를 지정하는 부울 값입니다.

serviceAccount.name

유형기본값필수?
string""아니오

teleport 서비스 계정에 사용할 이름. serviceAccount.create가 false인 경우, 이 이름으로 현재 네임스페이스에 서비스 계정을 설치하기 전에 생성해야 합니다.

service.type

유형기본값필수?
stringLoadBalancer

쿠버네티스 참조

서비스 유형을 지정할 수 있습니다.

values.yaml 예시:

service:
  type: LoadBalancer

service.spec.loadBalancerIP

유형기본값필수?
stringnil아니오

쿠버네티스 참조

loadBalancerIP을 지정할 수 있습니다.

values.yaml 예시:

service:
  spec:
    loadBalancerIP: 1.2.3.4

ingress.enabled

유형기본값필수?
booleanfalse아니오

쿠버네티스 참조

Teleport 배포에 대한 쿠버네티스 Ingress를 생성할지 여부를 지정하는 부울 값입니다.

values.yaml 예시:

ingress:
  enabled: true

ingress.useExisting

유형기본값필수?
booleanfalse아니오

ingress.useExisting는 차트에게 현재 자신의 ingress(또는 HTTPRoute, 또는 TLS를 종료하는 다른 LoadBalancing 방법)를 관리하고 있음을 알립니다. 차트는 Teleport가 ingress 뒤에서 실행되는 것처럼 구성하지만 ingress 리소스는 생성하지 않습니다. ingress는 사용자가 생성하고 관리해야 합니다.

values.yaml 예시:

ingress:
  enabled: true
  useExisting: true

ingress.suppressAutomaticWildcards

유형기본값필수?
booleanfalse아니오

suppressAutomaticWildcards를 true로 설정하면 Ingress에서 자동으로 *.<clusterName>을 호스트 이름으로 추가하지 않습니다. 이는 Teleport 애플리케이션 액세스 기능을 사용하지 않거나 애플리케이션에 대한 개별 공용 주소를 구성하려는 경우 바람직할 수 있습니다.

values.yaml 예시:

ingress:
  enabled: true
  suppressAutomaticWildcards: true

ingress.spec

유형기본값필수?
object{}아니오

설정된 Ingress에 대한 추가 속성을 정의하는 데 사용할 수 있는 객체 값.

예를 들어, 여기서 ingressClassName을 설정할 수 있습니다:

values.yaml 예시:

ingress:
  enabled: true
  spec:
    ingressClassName: alb

extraArgs

유형기본값
list[]

Teleport Pod를 실행할 때 teleport start 명령에 전달할 추가 인수 목록입니다.

values.yaml 예시:

extraArgs:
- "--bootstrap=/etc/teleport-bootstrap/roles.yaml"

extraEnv

유형기본값
list[]

쿠버네티스 참조

주요 Teleport 컨테이너에 설정할 추가 환경 변수 목록입니다.

values.yaml 예시:

extraEnv:
- name: MY_ENV
  value: my-value

extraVolumes

유형기본값
list[]

쿠버네티스 참조

차트가 생성하는 모든 Pod에서 사용할 수 있는 추가 쿠버네티스 Volume 목록입니다. 이러한 볼륨은 또한 차트가 구성한 모든 initContainers에서 사용할 수 있습니다.

values.yaml 예시:

extraVolumes:
- name: myvolume
  secret:
    secretName: mysecret

extraVolumeMounts

유형기본값
list[]

쿠버네티스 참조

차트가 생성하는 모든 Pod에 마운트할 추가 쿠버네티스 볼륨 마운트 목록입니다. 이러한 볼륨 마운트는 또한 차트에 의해 구성된 모든 initContainers에 마운트됩니다.

values.yaml 예시:

extraVolumeMounts:
- name: myvolume
  mountPath: /path/to/mount/volume

imagePullPolicy

유형기본값
stringIfNotPresent

쿠버네티스 참조

차트에 의해 생성된 모든 포드에 대한 imagePullPolicy를 재정의할 수 있습니다.

values.yaml 예시:

imagePullPolicy: Always

imagePullSecrets

유형기본값
list[]

쿠버네티스 참조

비공식 도커 레지스트리에 접근하기 위해 선택적으로 사용할 수 있는 인증 토큰이 포함된 비밀 목록입니다.

values.yaml 예시:

imagePullSecrets:
- name: my-docker-registry-key

initContainers

유형기본값
list[]

쿠버네티스 참조

차트에 의해 생성된 모든 포드에서 주요 Teleport 컨테이너 이전에 실행될 initContainers 목록입니다.

values.yaml 예시:

initContainers:
- name: teleport-init
  image: alpine
  args: ['echo test']

postStart

유형기본값
object{}

쿠버네티스 참조

주요 Teleport 컨테이너에서 구성할 postStart 생애주기 핸들러입니다.

values.yaml 예시:

postStart:
  command:
  - echo
  - foo

resources

유형기본값
object{}

쿠버네티스 참조

Teleport 컨테이너에 설정해야 할 리소스 요청/제한입니다. 이러한 리소스 제한은 initContainers에도 적용됩니다.

Danger

CPU 제한을 설정하는 것은 안티 패턴이며 대부분의 경우 유해합니다. 정적 CPU 관리 정책을 활성화하지 않는 한, CPU 제한이 있는 멀티스레드 워크로드는 CPU 제한 근처에서 예상치 못한 방식으로 동작할 것입니다.

스로틀링이 시작되면 Teleport는 불안정해질 것입니다. 다음을 참조하여 CPU 제한을 설정하지 않는 것이 좋습니다. GitHub PR에서 기술적인 세부사항을 설명합니다.

values.yaml 예시:

resources:
  requests:
    cpu: 1
    memory: 2Gi

podSecurityContext

유형기본값
object{}

쿠버네티스 참조

주요 Teleport 포드에 적용되는 podSecurityContext입니다.

values.yaml 예시:

podSecurityContext:
  fsGroup: 65532

securityContext

유형기본값
object{}

쿠버네티스 참조

주요 Teleport 컨테이너에 적용되는 securityContext입니다.

values.yaml 예시:

securityContext:
  runAsUser: 99

tolerations

유형기본값
list[]

쿠버네티스 참조

포드 할당을 위한 쿠버네티스 내성이 설정됩니다.

values.yaml 예시:

tolerations:
- key: "dedicated"
  operator: "Equal"
  value: "teleport"
  effect: "NoSchedule"

priorityClassName

유형기본값
string""

쿠버네티스 참조

포드에 대해 설정할 쿠버네티스 PriorityClass입니다.

values.yaml 예시:

priorityClassName: "system-cluster-critical"

probeTimeoutSeconds

유형기본값
integer1

쿠버네티스 참조

활성 상태 및 준비 상태 프로브에 대한 쿠버네티스 시간 초과 설정입니다.

values.yaml 예시:

probeTimeoutSeconds: 5
Teleport 원문 보기