Infograb logo
teleport-cluster 차트 참조

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

source on GitHub

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

Teleport 서비스실행 위치목적문서
auth_serviceauth 배포사용자 및 호스트를 인증하고 인증서를 발급합니다.인증 문서
kubernetes_serviceauth 배포Teleport 클러스터가 호스팅되는 Kubernetes
클러스터에 대한 안전한 액세스를 제공합니다.
Kubernetes 액세스 문서
proxy_serviceproxy 배포웹 UI, SSH 프록시 및 리버스 터널 서비스와 같은 Teleport
클러스터의 외부 부분을 실행합니다.
프록시 문서
추가 Kubernetes 클러스터 및 Teleport 서비스

기존 Teleport 클러스터가 호스팅하지 않는 Databases, Applications 또는 기타 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 (v12 및 이후)빈 Teleport 구성 파일을 생성합니다. 사용자는 자신의 구성을 전달해야 합니다. 이는 권장되지 않으며, 대신 auth.teleportConfig proxy.teleportConfig 와 함께 standalone 모드를 사용하십시오.사용자 정의 구성으로 Teleport 클러스터 실행
사용자 정의 모드 제거

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

버전 호환성

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

경고

운영 인스턴스, 환경 및/또는 설정을 영구 수정하기 전에 백업하는 것은 모범 사례로 권장됩니다. 이를 통해 필요할 경우 기존 상태로 롤백할 수 있습니다.

clusterName

TypeDefault valueRequired?teleport.yaml equivalent
stringnilauth_service.cluster_name , proxy_service.public_addr

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

Note

clusterName 으로 완전한 도메인 이름을 사용할 경우, 해당 도메인에 대한 DNS 공급자를 구성하여 Teleport 클러스터의 외부 로드 밸런서 주소를 가리키도록 해야 합니다.

로드 밸런서에 대한 외부 주소로 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

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

Teleport는 Application Access에 대해 구성하는 각 애플리케이션에 서브도메인을 할당합니다. 예를 들어, 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 클라우드 플랫폼을 사용하는 경우, 서브도메인과 애플리케이션에 대한 서명된 TLS 인증서를 자동으로 제공하므로 DNS 업데이트가 필요하지 않습니다.

Warning

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

kubeClusterName

TypeDefault valueRequired?teleport.yaml equivalent
stringclusterName아니오kubernetes_service.kube_cluster_name

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

auth

TypeDefault valueRequired?
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

ComponentTypeDefault valueRequired?teleport.yaml equivalent
proxystringnull아니오proxy_service.proxy_protocol

proxyProtocol 값은 L4 로드 밸런서 (예: AWS ELB, GCP L4 LB 등) 뒤에 있을 때 Proxy 팟이 클라이언트의 IP 주소와 함께 PROXY 라인을 수락할지를 제어합니다. L4 LB는 클라이언트의 IP 주소를 보존하지 않기 때문에 Teleport가 클라이언트의 IP 주소를 올바르게 감사하기 위해 PROXY 프로토콜이 필요합니다.

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

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

  • on : 모든 연결에 대해 PROXY 프로토콜을 활성화하며 L4 LB가 PROXY 헤더를 전송해야 합니다.
  • off : 모든 연결에 대해 PROXY 프로토콜을 비활성화하며 PROXY 헤더가 앞에 붙은 모든 연결을 거부합니다.

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

자세한 내용은 PROXY Protocol 보안 섹션 을 참조하십시오.

auth.teleportConfig

유형기본 값필수 여부
객체아니오

auth.teleportConfig 는 auth pod를 위한 YAML teleport 구성을 포함합니다.
구성은 차트에서 생성된 구성과 병합되며, 충돌 시 우선권을 가집니다. 이 필드는
teleport.yaml 의 구성 어떤 부분을 자유롭게 사용자화하거나 재정의할 수 있도록 허용합니다
스cratch 차트 모드를 사용하지 않고도 가능합니다.

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

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

지원되는 필드 목록은 Teleport Configuration Reference를 참조하세요.

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

proxy

유형기본 값필수 여부
객체아니오

teleport-cluster 차트는 Auth 서비스용과 Proxy 서비스용으로 두 세트의 pods를 배포합니다.

proxy 는 Teleport Proxy 서비스와 관련된 Kubernetes 리소스에 대해 차트 값을 설정할 수 있게 합니다.
이는 차트 범위의 값과 병합되며, 충돌 시 우선권을 가집니다.

예를 들어, Teleport Proxy 서비스 pods에 대해 postStart 값을 재정의하고
Teleport Proxy 서비스에 배포된 Kubernetes Service를 주석 달려면:

# 기본적으로 모든 pods의 postStart 명령은 "echo starting"이어야 합니다.
postStart: ["echo", "starting"]

proxy:
  # 하지만 proxy pods에 대한 `postStart` 값을 특정하게 재정의합니다.
  postStart: ["curl", "http://hook"]
  imagePullPolicy: Always

  # Proxy 서비스 pods에 트래픽을 보내는 Kubernetes Service에만 주석을 추가합니다.
  annotations:
    service:
      external-dns.alpha.kubernetes.io/hostname: "teleport.example.com"

proxy.teleportConfig

유형기본 값필수 여부
객체아니오

proxy.teleportConfig 는 proxy pods를 위한 YAML teleport 구성을 포함합니다.
구성은 차트에서 생성된 구성과 병합되며, 충돌 시 우선권을 가집니다. 이 필드는
teleport.yaml 의 구성 어떤 부분을 자유롭게 사용자화하거나 재정의할 수 있도록 허용합니다
스cratch 차트 모드를 사용하지 않고도 가능합니다.

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

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

지원되는 필드 목록은 Teleport Configuration Reference를 참조하세요.

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 의 동등 값
문자열localauth_service.authentication.type

authentication.type 는 Teleport에서 사용하는 인증 방식을 제어합니다.
가능한 값은 local 및 Teleport Community Edition의 github , 추가로 Enterprise의 경우 oidcsaml 이 있습니다.

authentication.connectorName

TypeDefault valueRequired?teleport.yaml equivalent
string""아니오auth_service.authentication.connector_name

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

  • local 로컬 사용자용
  • passwordless 기본적으로 비밀번호 없는 인증을 활성화하기 위해.

기본값은 local 입니다.

authentication.localAuth

TypeDefault valueRequired?teleport.yaml equivalent
booltrue아니오auth_service.authentication.local_auth

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

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

authentication.lockingMode

TypeDefault valueRequired?teleport.yaml equivalent
string""아니오auth_service.authentication.locking_mode

authentication.lockingMode 는 클러스터 전체의 잠금 모드를 제어합니다. 가능한 값은 best_effortstrict 입니다.
잠금 모드 문서를 참조하여 더 많은 세부정보를 확인하십시오.

빈 경우 Teleport의 이진 기본값에 기본 설정: best_effort .

authentication.passwordless

TypeDefault valueRequired?teleport.yaml equivalent
boolnil아니오auth_service.authentication.passwordless

authentication.passwordless 는 비밀번호 없는 인증이 활성화되어 있는지를 제어합니다.

클러스터에 대한 비밀번호 없는 접근을 금지하는 데 사용할 수 있습니다.

authentication.secondFactor

TypeDefault valueRequired?teleport.yaml equivalent
stringotpauth_service.authentication.second_factor

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

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

Warning

사용자가 다른 도메인에서 클러스터에 접근할 수 있도록 publicAddr 를 설정하는 경우, clusterName 과 다른 도메인 아래의 경우에는 웹 인증 Relying Party Identifier (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

자세한 내용은 Second Factor - WebAuthn을 참조하십시오.

authentication.webauthn.attestationAllowedCas

유형기본값필수 여부teleport.yaml 동등한 항목
배열[]아니요auth_service.authentication.webauthn.attestation_allowed_cas

authentication.webauthn.attestationAllowedCas디바이스 검증을 위한 인증 기관의 선택적 허용 목록입니다 (로컬 파일 경로 또는 인라인 PEM 인증서 문자열로).
이 필드는 신뢰하는 디바이스 모델과 공급업체를 제한할 수 있게 해줍니다.
목록에 없는 디바이스는 등록 중에 거부됩니다.
기본적으로 모든 디바이스가 허용됩니다.

authentication.webauthn.attestationDeniedCas

유형기본값필수 여부teleport.yaml 동등한 항목
배열[]아니요auth_service.authentication.webauthn.attestation_denied_cas

authentication.webauthn.attestationDeniedCas디바이스 검증을 위한 인증 기관의 선택적 거부 목록입니다 (로컬 파일 경로 또는 인라인 PEM 인증서 문자열로).
이 필드는 특정 디바이스 모델과 공급업체를 금지하면서 다른 모든 디바이스를 허용할 수 있게 해줍니다 (이들이 attestation_allowed_cas를 통과할 경우).
목록에 포함된 디바이스는 등록 중에 거부됩니다.
기본적으로 금지된 디바이스는 없습니다.

proxyListenerMode

유형기본값필수 여부teleport.yaml 동등한 항목
문자열nil아니요auth_service.proxy_listener_mode

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

values.yaml 예시:

proxyListenerMode: multiplex

sessionRecording

유형기본값필수 여부teleport.yaml 동등한 항목
문자열""아니요auth_service.session_recording

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

values.yaml 예시:

sessionRecording: proxy

separatePostgresListener

유형기본값필수 여부teleport.yaml 동등한 항목
부울false아니요proxy_service.postgres_listen_addr

separatePostgresListener 는 Teleport가 Teleport 데이터베이스 서비스의 PostgreSQL 트래픽을 Teleport의 웹 UI에 대한 별도의 TLS 리스너를 통해 다중화할지를 제어합니다.

separatePostgresListenerfalse (기본값)인 경우, PostgreSQL 트래픽은 포트 443 (Teleport 웹 UI의 기본 포트)로 전송됩니다. 이는 Teleport가 자체 TLS 트래픽을 종료하는 상황에서 작동합니다. 즉, LetsEncrypt의 인증서를 사용하거나 Teleport의 proxy_service.https_keypairs 설정을 통해 인증서/개인 키 쌍을 제공할 때입니다.

separatePostgresListenertrue 인 경우, PostgreSQL 트래픽은 포트 5432의 PostgreSQL 전용 리스너로 전송됩니다.
이것은 차트가 생성하는 Service 에 포트를 추가합니다. 이는 AWS ACM을 사용하여 Teleport 앞에서 TLS를 종료할 때 유용합니다.

이 설정은 proxyListenerMode multiplex 로 설정된 경우에는 적용되지 않습니다.

values.yaml 예시:

separatePostgresListener: true

separateMongoListener

유형기본값필수 여부teleport.yaml 동등한 항목
boolfalse아니오proxy_service.mongo_listen_addr

separateMongoListener 는 Teleport가 Teleport 데이터베이스 서비스의 PostgreSQL 트래픽을 별도의 TLS 리스너를 통해 Teleport의 웹 UI로 멀티플렉스할지를 제어합니다.

separateMongoListenerfalse (기본값)인 경우, MongoDB 트래픽은 포트 443 (기본 Teleport 웹 UI 포트)로 전송됩니다. 이는 Teleport가 자체 TLS 트래픽을 종료하는 상황에서 작동합니다. 즉, LetsEncrypt의 인증서를 사용하거나 Teleport의 proxy_service.https_keypairs 구성으로 인증서/비공개 키 쌍을 제공하는 경우입니다.

separateMongoListenertrue 인 경우, MongoDB 트래픽은 포트 27017에서 별도의 Mongo 전용 리스너로 전송됩니다. 이는 차트가 생성하는 Service 에 포트를 추가합니다. 이는 AWS ACM과 같은 로드 밸런서에서 TLS를 종료할 때 유용합니다.

이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않습니다.

values.yaml 예:

separateMongoListener: true

publicAddr

유형기본값필수 여부teleport.yaml 동등한 항목
list[string][]아니오proxy_service.public_addr

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

publicAddr 가 설정되지 않은 경우, 사용되는 주소는 clusterName 에서 포트 443을 사용합니다.

Warning

publicAddr 를 설정하여 사용자가 clusterName 과 다른 도메인에서 클러스터에 접근하게 하려면, 웹 인증 신뢰할 수 있는 당사자 식별자 (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 프록시를 위한 광고 주소를 제어합니다. 이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않습니다.

kubePublicAddr 가 설정되지 않은 경우, 설정된 경우 publicAddr 에서 주소를 유추하고, 그렇지 않으면 clusterName 을 사용합니다. 기본 포트는 3026입니다.

values.yaml 예:

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

mongoPublicAddr

TypeDefault valueRequired?teleport.yaml equivalent
list[string][]아니요proxy_service.mongo_public_addr

mongoPublicAddr 는 MongoDB 클라이언트에 광고되는 주소를 제어합니다.
이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않으며,
separateMongoListener 가 활성화되어야 합니다.

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

values.yaml 예시:

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

mysqlPublicAddr

TypeDefault valueRequired?teleport.yaml equivalent
list[string][]아니요proxy_service.mysql_public_addr

mysqlPublicAddr 는 MySQL 프록시에 광고되는 주소를 제어합니다.
이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않습니다.

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

values.yaml 예시:

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

postgresPublicAddr

TypeDefault valueRequired?teleport.yaml equivalent
list[string][]아니요proxy_service.postgres_public_addr

postgresPublicAddr 는 postgres 클라이언트에 광고되는 주소를 제어합니다.
이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않으며,
separatePostgresListener 가 활성화되어야 합니다.

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

values.yaml 예시:

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

sshPublicAddr

TypeDefault valueRequired?teleport.yaml equivalent
list[string][]아니요proxy_service.ssh_public_addr

sshPublicAddr 는 SSH 클라이언트에 광고되는 주소를 제어합니다. 이는 tsh 클라이언트에서도 사용됩니다.
이 설정은 proxyListenerMode multiplex 로 설정된 경우 적용되지 않습니다.

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

values.yaml 예시:

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

tunnelPublicAddr

TypeDefault valueRequired?teleport.yaml equivalent
list[string][]아니요proxy_service.tunnel_public_addr

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

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

values.yaml 예시:

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

enterprise

TypeDefault value
boolfalse

enterprise 는 Teleport Community Edition 또는 Teleport Enterprise를 사용할지 여부를 제어합니다.

enterprisetrue 로 설정하면 Teleport Enterprise 이미지를 사용하게 됩니다.

이것을 사용하려면 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

licenseSecretName

TypeDefault value
stringlicense

licenseSecretName 는 Enterprise 라이센스를 위한 Kubernetes 비밀 이름을 제어합니다.

이 값을 사용하면 사용자 정의 이름을 사용하여 비밀 기반의 볼륨을 컨테이너에 마운트하기 위해 Kubernetes 볼륨 사양을 업데이트할 수 있습니다.

values.yaml 예시:

licenseSecretName: enterprise-license

installCRDs

TypeDefault value
boolfalse

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

CRD는 Teleport Kubernetes Operator에 필요하며 operator.enabled 가 true일 때 기본적으로 설치됩니다. installCRDs 는 이 동작을 재정의하고 사용자가 Teleport CRD를 배포할지 여부를 나타낼 수 있게 합니다.

같은 Kubernetes 클러스터에 여러 teleport-cluster 차트를 배포하는 경우, 오직 하나의 릴리스만 installCRDs 가 활성화되어야 합니다. 여러 teleport-cluster Helm 릴리스를 동일한 Kubernetes 클러스터에 배포하거나 자신이 CRD를 설치하지 않는 한 이 값을 설정할 필요는 없습니다.

values.yaml 예시:

installCRDs: true

operator

operator.enabled

TypeDefault value
boolfalse

operator.enabled 는 Teleport Kubernetes Operator를 사이드카로 배포할지 여부를 제어합니다.

Operator를 활성화하면 Kubernetes 클러스터에 Teleport CRD도 배포됩니다. 같은 클러스터에 Helm 차트의 여러 릴리스를 배포하는 경우 installCRDs 로 이 동작을 재정의할 수 있습니다.

values.yaml 예시:

operator:
  enabled: true

operator.image

TypeDefault value
stringpublic.ecr.aws/gravitational/teleport-operator

operator.image 는 클러스터 내에서 Teleport 팟에 사용될 Teleport Kubernetes Operator 컨테이너 이미지를 설정합니다. 이 설정을 재정의하여 Teleport에서 제공된 이미지 대신 자신의 Teleport Operator 이미지를 사용할 수 있습니다.

이 설정은 operator.enabled 가 필요합니다.

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 차트를 업그레이드하면 저장소의 최신 버전을 사용합니다.

선택적으로 이를 덮어써서 10.1.2 또는 11 과 같은 다른 게시된 Teleport Docker 이미지 태그를 사용할 수 있습니다.

Danger

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

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

Docker 이미지 버전에 대한 정보는 설치 가이드를 참조하십시오.

values.yaml 예시:

teleportVersionOverride: "11"

acme

유형기본값teleport.yaml 동등한 값
boolfalseproxy_service.acme.enabled

ACME는 Web X.509 인증서를 받기 위한 프로토콜입니다.

acme를 true 로 설정하면 ACME 프로토콜이 활성화되고 Let's Encrypt에서 무료 TLS 인증서를 받으려고 시도합니다.
acme를 false 로 설정하면 (기본값) Teleport는 자체 서명된 인증서를 생성하고 웹 UI에 사용합니다.

Note

ACME는 단일 팟 클러스터에서만 사용할 수 있습니다. HA 구성에서는 적합하지 않습니다.

Warning

자체 서명된 TLS 인증서를 사용하고 TLS 검증을 비활성화하는 것은 테스트 용도로 괜찮지만, 운영 Teleport 클러스터를 실행할 때는 적절하지 않습니다. 이는 보안을 크게 감소시킵니다.
운영 작업을 위해서는 Teleport 클러스터에 유효한 TLS 인증서를 구성해야 합니다.

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

acmeEmail

유형기본값teleport.yaml 동등한 값
stringnilproxy_service.acme.email

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

acmeURI

TypeDefault valueteleport.yaml equivalent
stringLet's Encrypt 프로덕션 서버proxy_service.acme.uri

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

예를 들어, 테스트를 위해 Let's Encrypt 스테이징 서버를 사용하도록 재정의할 수 있습니다.

다른 ACME 호환 서버를 사용할 수도 있습니다.

values.yaml 예시:

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

podSecurityPolicy

podSecurityPolicy.enabled

TypeDefault value
bool1.22 이하에서는 true , 1.23 이상에서는 false

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

PodSecurityPolicy 리소스는 Kubernetes 1.25에서 제거되었으며 1.23부터는 PodSecurityAdmission으로 대체되었습니다. Kubernetes 1.23 이상에서 실행 중인 경우 PSP를 비활성화하고 PSA를 사용하는 것이 좋습니다. 단계는 PSP 제거 가이드 문서에 설명되어 있습니다.

PSP 생성을 비활성화하려면 enabledfalse 로 설정하면 됩니다.

Kubernetes 참조

values.yaml 예시:

podSecurityPolicy:
  enabled: false

labels

TypeDefault value
object{}

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

Note

이러한 것은 Kubernetes 레이블이 아닌 Teleport 전용 RBAC 레이블입니다. Kubernetes 리소스에 추가 레이블을 설정하려면 extraLabels 를 참조하십시오.

values.yaml 예시:

labels:
  environment: production
  region: us-east

chartMode

TypeDefault value
stringstandalone

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

chartModeGuide
standalone시작하기 - Kubernetes
awsAWS EKS 클러스터를 사용하여 HA Teleport 클러스터 실행
gcpGoogle Cloud GKE 클러스터를 사용하여 HA Teleport 클러스터 실행
azureMicrosoft Azure AKS 클러스터를 사용하여 HA Teleport 클러스터 실행
scratch사용자 정의 구성으로 Teleport 클러스터 실행
Warning

scratch 차트 모드를 사용하는 것은 권장하지 않습니다. 완전한 클러스터 구성을 작성하려면 정확한 차트 및 Teleport 지식이 필요합니다.

맞춤형 구성이 포함된 작동 클러스터를 원하시는 경우, 다른 모드를 사용하고 auth.teleportConfig proxy.teleportConfig 를 활용하여 맞춤형 구성을 주입하는 것이 좋습니다.

podMonitor

podMonitor 는 차트에 의해 배포된 워크로드(Auth 및 Proxy Services)를 모니터링하는 PodMonitor CR (from monitoring.coreos.com/v1)입니다.
이 사용자 정의 리소스는 Prometheus를 구성하고 Teleport 메트릭을 스크랩하도록 합니다.

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

podMonitor.enabled

TypeDefault value
boolfalse

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

podMonitor.additionalLabels

TypeDefault value
object[string]string{"prometheus":"default"}

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

podMonitor.interval

TypeDefault value
string30s

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

persistence

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

자세한 사항은 AWS EBS CSI 드라이버 문서를 참조하세요.
이 드라이버 애드온은 Kubernetes 1.23 이후 EKS 클러스터에서 영구 볼륨을 사용하도록 구성해야 합니다.

persistence.enabled

TypeDefault value
booltrue

persistence.enabled 는 새로 생성된 PersistentVolumeClaim 또는 기존의 것을 사용하여 데이터 지속성을 활성화하는 데 사용할 수 있습니다.

values.yaml 예시:

persistence:
  enabled: true

persistence.existingClaimName

TypeDefault value
stringnil

persistence.existingClaimName 는 사용할 기존의 PersistentVolumeClaim 의 이름을 제공하는 데 사용할 수 있습니다.
기본값은 비워 두어 Teleport 저장소용으로 자동으로 PersistentVolumeClaim 을 생성합니다('standalone' 또는 'scratch' 모드에서).

values.yaml 예시:

persistence:
  existingClaimName: my-existing-pvc-name

persistence.storageClassName

TypeDefault value
stringnil

persistence.storageClassNamePersistentVolumeClaim 의 스토리지 클래스를 설정하는 데 사용할 수 있습니다.

values.yaml 예시:

persistence:
  storageClassName: ebs-ssd

persistence.volumeSize

TypeDefault value
string10Gi

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

Note

existingClaimName 이 설정된 경우 volumeSize 는 무시됩니다.

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가 Dynamo 백엔드를 구성할 때 DynamoDB 백업이 활성화되는지를 제어합니다.

aws.dynamoAutoScaling

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

Warning

DynamoDB 자동 확장은 더 이상 권장되지 않습니다. Teleport는 이제 더 안정적인 성능을 제공하는 "온디맨드" DynamoDB 요금제로 기본 설정됩니다.

aws.accessMonitoring

aws.accessMonitoring 는 Auth Service의 Access Monitoring 기능을 구성합니다.

이 기능을 사용하려면 AccessMonitoring 구성 섹션에 설명된 특정 AWS 인프라를 설정해야 합니다.
Terraform 예제 코드는 이 섹션의 차트 값을 출력합니다.

aws.accessMonitoring.enabled

aws.accessMonitoring.enabled 는 Access Monitoring을 활성화합니다.
이를 위해서는 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 가이드에 설명되어 있습니다: 구글 클라우드 GKE 클러스터를 사용하여 HA Teleport 클러스터 실행하기

azure

azure 설정은 Azure 가이드에 설명되어 있습니다: 마이크로소프트 Azure AKS 클러스터를 사용하여 HA Teleport 클러스터 실행하기

highAvailability

highAvailability 는 Teleport 포드가 복제 및 예약되는 방법을 제어하는 설정을 포함합니다.
이를 통해 Teleport는 고가용성 방식으로 실행할 수 있으며, Teleport는 머신의 충돌/손실 없이 서비스 중단이 없도록 유지되어야 합니다.

인증 포드용

"standalone" 또는 "scratch" 모드를 사용할 때, 여러 복제를 지원하려면 고가용성 스토리지(etcd, DynamoDB 또는 Firestore)를 사용해야 합니다.
NFS 기반 스토리지 또는 ReadWriteMany 볼륨 클레임을 수동으로 구성하는 것은 지원되지 않으며 오류가 발생합니다. 여러 복제와 함께 Teleport의 내장 ACME 클라이언트를 사용하는 것은(cert-manager를 사용하거나 인증서를 보안 비밀번호를 통해 전달하는 것은) 지원되지 않습니다.

프록시 포드용

프록시 포드는 (tls.existingSecretName 또는 highAvailability.certManager를 통해) 복제할 수 있는 인증서를 제공받아야 하며
또는 인그레스를 통해 노출되어야 합니다(ingress.enabled ).
프록시 포드가 복제 가능할 경우 기본값은 2개의 복제본이 되며, highAvailability.replicaCount 가 1일 경우에도 적용됩니다.
단일 프록시 복제를 강제하려면 proxy.highAvailability.replicaCount: 1 을 설정하세요.

highAvailability.replicaCount

TypeDefault value
int1

포드 복제본의 수를 제어합니다. highAvailability 섹션은 복제 요구 사항을 설명합니다.

버전 호환성

1보다 큰 값을 설정하는 경우, 위에 설명된 복제 기준을 충족해야 합니다. 이를 충족하지 않으면 오류 및 불일치하는 데이터가 발생합니다.

highAvailability.requireAntiAffinity

TypeDefault value
boolfalse

Kubernetes 참조

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

Warning

이는 매우 작은 클러스터 또는 노드 다운타임 중에 Teleport 포드가 스케줄링되지 않을 수 있으므로 주의해서 사용해야 합니다.

highAvailability.requireAntiAffinityfalse (기본값)로 설정하면 preferredDuringSchedulingIgnoredDuringExecution 를 사용하여 노드 반대 집합을 소프트 요구 사항으로 만듭니다.

Note

이 설정은 highAvailability.replicaCount 가 1보다 클 때만 효과가 있습니다.

values.yaml 예시:

highAvailability:
  requireAntiAffinity: true

highAvailability.podDisruptionBudget

highAvailability.podDisruptionBudget.enabled

TypeDefault value
boolfalse

Kubernetes reference

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

values.yaml 예:

highAvailability:
  podDisruptionBudget:
    enabled: true

highAvailability.podDisruptionBudget.minAvailable

TypeDefault value
int1

Kubernetes reference

자발적인 중단 동안 이 수의 레플리카가 사용 가능하도록 보장하며, 레플리카 수 또는 백분율이 될 수 있습니다.

values.yaml 예:

highAvailability:
  podDisruptionBudget:
    minAvailable: 1

highAvailability.certManager

cert-manager 문서에서 자세한 정보를 확인하세요.

highAvailability.certManager.enabled

TypeDefault valueteleport.yaml equivalent
boolfalseproxy_service.https_keypairs (자체 인증서를 제공하기 위해)

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

cert-manager 설치하기

Kubernetes 클러스터에 cert-manager 를 직접 설치하고 구성해야 합니다.

cert-manager Helm 설치 지침AWSGCP 가이드의 관련 섹션에서 자세한 정보를 확인하세요.

highAvailability.certManager.addCommonName

TypeDefault valueteleport.yaml equivalent
boolfalseproxy_service.https_keypairs (자체 인증서를 제공하기 위해)

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

common name 필드 활성화하기

Kubernetes 클러스터에 cert-manager 를 직접 설치하고 구성해야 합니다.

cert-manager Helm 설치 지침AWSGCP 가이드의 관련 섹션에서 자세한 정보를 확인하세요.

values.yaml 예:

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

highAvailability.certManager.addPublicAddrs

TypeDefault valueteleport.yaml equivalent
boolfalseproxy_service.https_keypairs (자체 인증서 제공)

highAvailability.certManager.addPublicAddrstrue 로 설정하면 cert-manager 에게 publicAddr 차트 값 아래에 구성된 추가 주소를 인증서 서명 요청의 발급 CA에 추가하도록 지시합니다.

values.yaml 예제:

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

highAvailability.certManager.issuerName

TypeDefault valueteleport.yaml equivalent
stringnil없음

인증서를 발급하는 데 사용할 cert-manager Issuer 또는 ClusterIssuer 의 이름을 설정합니다.

Issuer 구성

적절한 DNS01 챌린지를 지원하는 Issuer 를 직접 구성해야 합니다.

추가 정보는 cert-manager DNS01 문서AWSGCP 가이드의 관련 섹션을 참조하십시오.

values.yaml 예제:

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

highAvailability.certManager.issuerKind

TypeDefault valueteleport.yaml equivalent
stringIssuer없음

인증서를 발급할 때 사용할 IssuerKind 를 설정합니다. 기본값은 Issuer 로 설정되어 권한을 단일 네임스페이스로 한정합니다.

values.yaml 예제:

highAvailability:
  certManager:
    issuerKind: ClusterIssuer

highAvailability.certManager.issuerGroup

TypeDefault value
stringcert-manager.io

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

values.yaml 예제:

highAvailability:
  certManager:
    issuerGroup: cert-manager.io

highAvailability.minReadySeconds

TypeDefault value
integer15

다음 팟으로 이동하기 전에 팟 롤아웃 중 대기할 시간입니다.
쿠버네티스 문서 참조.

이는 에이전트가 새로운 팟에 다시 연결할 시간을 제공하는 데 사용됩니다.

values.yaml 예제:

highAvailability:
  minReadySeconds: 15

tls.existingSecretName

TypeDefault valueteleport.yaml equivalent
string""proxy_service.https_keypairs

tls.existingSecretName 은 Teleport가 HTTPS를 사용하여 웹 UI를 보호하기 위해 기존의 Kubernetes 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

자세한 내용은 https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets 를 참조하십시오.

values.yaml 예제:

tls:
  existingSecretName: my-tls-secret

tls.existingCASecretName

TypeDefault value
string""

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

이는 tls.existingSecretName 이 설정된 경우 User Message: unable to verify HTTPS certificate chain 오류가 발생하여 Teleport가 시작되지 않는 경우 필요할 가능성이 높습니다.

다음과 같은 명령어를 사용하여 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

TypeDefault value
stringpublic.ecr.aws/gravitational/teleport

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

이를 통해 Teleport가 게시한 이미지가 아닌 자신만의 Teleport Community 이미지를 사용할 수 있습니다.

values.yaml 예시:

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

enterpriseImage

TypeDefault value
stringpublic.ecr.aws/gravitational/teleport-ent

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

이를 통해 Teleport가 게시한 이미지가 아닌 자신만의 Teleport Enterprise 이미지를 사용할 수 있습니다.

values.yaml 예시:

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

log

log.level

Note

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

TypeDefault valueteleport.yaml equivalent
stringINFOteleport.log.severity

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

사용 가능한 로그 수준(가장 자세한 것부터 가장 간단한 순서)은 다음과 같습니다: DEBUG , INFO , WARNING , ERROR .

기본값은 INFO 로, 운영 환경에서 권장됩니다.

DEBUG 는 처음 설정 시 유용하거나 디버깅을 위해 더 자세한 로그를 보기 위해 유용합니다.

values.yaml 예시:

log:
  level: DEBUG

log.output

TypeDefault valueteleport.yaml equivalent
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 프로세스의 로깅에 사용되는 필드를 설정합니다.

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

values.yaml 예시:

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

nodeSelector

유형기본값
object{}

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

Kubernetes 참조

values.yaml 예시:

nodeSelector:
  role: bastion
  environment: security

affinity

유형기본값
object{}

Kubernetes 참조

포드 할당을 위한 Kubernetes 친화성 설정.

Note

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

values.yaml 예시:

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

annotations

annotations.config

유형기본값teleport.yaml 동등한 값
object{}없음

Kubernetes 참조

차트에 의해 생성된 ConfigMap 에 적용되어야 하는 Kubernetes 주석.

values.yaml 예시:

annotations:
  config:
    kubernetes.io/annotation: value

annotations.deployment

유형기본값
object{}

Kubernetes 참조

차트에 의해 생성된 Deployment 에 적용되어야 하는 Kubernetes 주석.

values.yaml 예시:

annotations:
  deployment:
    kubernetes.io/annotation: value

annotations.pod

유형기본값
object{}

Kubernetes 참조

차트에 의해 생성된 각 Pod 에 적용되어야 하는 Kubernetes 주석.

values.yaml 예시:

annotations:
  pod:
    kubernetes.io/annotation: value

annotations.service

유형기본값
object{}

Kubernetes reference

차트에 의해 생성된 Service 에 적용될 Kubernetes 주석입니다.

values.yaml 예제:

annotations:
  service:
    kubernetes.io/annotation: value

annotations.serviceAccount

유형기본값
object{}

Kubernetes reference

차트에 의해 생성된 serviceAccount 에 적용될 Kubernetes 주석입니다.

values.yaml 예제:

annotations:
  serviceAccount:
    kubernetes.io/annotation: value

annotations.certSecret

유형기본값
object{}

Kubernetes reference

차트에 의해 생성된 certificate 에서 cert-manager 에 의해 생성된 secret 에 적용될 Kubernetes 주석입니다. highAvailability.certManager.enabledtrue 로 설정되었을 때만 유효하며 cert-manager v1.5.0+가 필요합니다.

values.yaml 예제:

annotations:
  certSecret:
    kubernetes.io/annotation: value

annotations.ingress

유형기본값
object{}

Kubernetes reference

차트에 의해 생성된 Ingress 에 적용될 Kubernetes 주석입니다.

values.yaml 예제:

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

extraLabels

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

자세한 내용은 Kubernetes 레이블 문서를 참조하십시오.

참고: 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 훅에 의해 실행되는 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아니요

Kubernetes reference

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

serviceAccount.name

종류기본값필수 여부?
string""아니요

Teleport 서비스 계정에 사용할 이름입니다. serviceAccount.create 가 false인 경우, Helm 차트를 설치하기 전에 현재 네임스페이스에 이 이름의 서비스 계정을 생성해야 합니다.

service.type

종류기본값필수 여부?
stringLoadBalancer

Kubernetes reference

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

values.yaml 예:

service:
  type: LoadBalancer

service.spec.loadBalancerIP

종류기본값필수 여부?
stringnil아니요

Kubernetes reference

loadBalancerIP 를 지정할 수 있습니다.

values.yaml 예:

service:
  spec:
    loadBalancerIP: 1.2.3.4

ingress.enabled

종류기본값필수 여부?
booleanfalse아니요

Kubernetes reference

Teleport 배포를 위해 Kubernetes Ingress 를 생성할지 여부를 지정하는 부울 값입니다.

values.yaml 예:

ingress:
  enabled: true

ingress.useExisting

유형기본값필수 여부
booleanfalse아니오

ingress.useExisting 는 사용자가 자신의 ingress(또는 HTTPRoute, 또는 TLS를 종료하는 다른 LoadBalancing 방법)를 관리하고 있음을 차트에 나타냅니다. 차트는 ingress 뒤에서 실행되는 것처럼 Teleport를 구성하지만 ingress 리소스를 생성하지는 않습니다. ingress를 생성하고 관리하는 것은 귀하의 책임입니다.

values.yaml 예시:

ingress:
  enabled: true
  useExisting: true

ingress.suppressAutomaticWildcards

유형기본값필수 여부
booleanfalse아니오

suppressAutomaticWildcards 를 true로 설정하면 *.<clusterName> 을 Ingress에 의해 제공되는 호스트 이름으로 자동 추가하지 않습니다. 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[]

Kubernetes 참고

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

values.yaml 예시:

extraEnv:
  - name: MY_ENV
    value: my-value

extraVolumes

유형기본값
list[]

Kubernetes 참고

차트에 의해 생성되는 모든 Pod 에서 사용할 수 있어야 하는 추가 Kubernetes Volumes 목록입니다. 이러한 볼륨은 차트에 의해 구성된 모든 initContainers 에서도 사용 가능합니다.

values.yaml 예시:

extraVolumes:
  - name: myvolume
    secret:
      secretName: mysecret

extraVolumeMounts

유형기본값
list[]

Kubernetes 참고

차트에 의해 생성되는 모든 Pod 에 장착되어야 하는 추가 Kubernetes 볼륨 장착 목록입니다. 이러한 장착은 차트에 의해 구성된 모든 initContainers 에도 장착됩니다.

values.yaml 예시:

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

imagePullPolicy

유형기본값
stringIfNotPresent

Kubernetes 참조

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

values.yaml 예시:

imagePullPolicy: Always

imagePullSecrets

유형기본값
list[]

Kubernetes 참조

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

values.yaml 예시:

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

initContainers

유형기본값
list[]

Kubernetes 참조

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

values.yaml 예시:

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

postStart

유형기본값
object{}

Kubernetes 참조

주요 Teleport 컨테이너에 구성될 postStart 라이프사이클 핸들러입니다.

values.yaml 예시:

postStart:
  command:
    - echo
    - foo

resources

유형기본값
object{}

Kubernetes 참조

Teleport 컨테이너에 대해 구성되어야 할 리소스 요청/제한입니다. 이 리소스 제한은 initContainers 에도 적용됩니다.

Danger

CPU 제한을 설정하는 것은 안티 패턴이며 대부분의 경우 해롭습니다. 정적 CPU 관리 정책을 활성화하지 않는 한, CPU 제한이 있는 멀티스레드 워크로드는 CPU 제한에 근접할 때 예상한 대로 동작하지 않을 가능성이 매우 높습니다.

스로틀링이 시작되면 Teleport는 불안정해질 것입니다. CPU 제한을 설정하지 않을 것을 권장합니다. 기술 세부정보는 GitHub PR를 참조하십시오.

values.yaml 예시:

resources:
  requests:
    cpu: 1
    memory: 2Gi

podSecurityContext

유형기본값
object{}

Kubernetes 참조

podSecurityContext 는 주요 Teleport 파드에 적용됩니다.

values.yaml 예시:

podSecurityContext:
  fsGroup: 65532

securityContext

유형기본값
object{}

Kubernetes 참조

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

values.yaml 예시:

securityContext:
  runAsUser: 99

tolerations

유형기본 값
list[]

Kubernetes 참조

포드 할당을 위해 설정할 Kubernetes Tolerations.

values.yaml 예시:

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

priorityClassName

유형기본 값
string""

Kubernetes 참조

포드의 Kubernetes PriorityClass.

values.yaml 예시:

priorityClassName: "system-cluster-critical"

probeTimeoutSeconds

유형기본 값
integer1

Kubernetes 참조

생명 상태 및 준비 상태 프로브에 대한 Kubernetes 타임아웃.

values.yaml 예시:

probeTimeoutSeconds: 5
Teleport 원문 보기