Infograb logo
teleport-kube-agent 차트 참조

teleport-kube-agent Helm 차트는 원격 Kubernetes 클러스터에서 실행되는 Teleport 에이전트를 구성하여 인프라의 리소스에 대한 액세스를 제공합니다.

소스 코드를 GitHub에서 찾아보세요.

이 참조는 teleport-kube-agent 차트를 위한 사용 가능한 값을 상세히 설명합니다.

경고

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

차트가 배포하는 항목

Teleport 서비스

teleport-kube-agent 차트는 세 가지 Teleport 서비스를 모두 실행할 수 있습니다:

Teleport 서비스rolestctl tokens add 를 위한 이름목적
kubernetes_service kubeKubernetes 클러스터에 대한 인증 처리 및 프록시 액세스를 위해 Teleport 사용
application_service app웹 기반 애플리케이션에 대한 인증 처리 및 프록시 액세스를 위해 Teleport 사용
database_service db데이터베이스에 대한 인증 처리 및 프록시 액세스를 위해 Teleport 사용
discovery_service discovery새로운 리소스를 발견하고 클러스터에 동적으로 추가하기 위해 Teleport 사용
jamf_service jamfJamf Pro와 통합하고 장치를 Device Trust 인벤토리와 동기화하기 위해 Teleport 사용

레거시 릴리스

버전 11 이전에 설치된 이 차트의 릴리스는 레거시 릴리스로 간주되며, 저장소가 구성되지 않은 경우 Teleport 포드를 Deployment 로 시작합니다.

버전 11 이상에서는 차트가 외부 저장소를 사용하지 않도록 구성되더라도 Teleport 포드를 StatefulSet 으로 시작하며, Teleport 포드는 Kubernetes Secret 에서 상태를 읽습니다.

Teleport 포드가 외부 저장소를 필요로 하진 않지만, 여전히 storage.enabled 필드를 사용하여 Teleport 포드가 영구 볼륨에서 데이터를 읽는 방식을 구성할 수 있습니다.

레거시 릴리스에서 버전 11로 업그레이드하는 것이 이 차트에 의해 시작된 리소스에 미치는 영향에 대해 알아보려면 리소스 목록을 참조하세요.

Kubernetes 리소스

teleport-kube-agent 차트는 다음과 같은 Kubernetes 리소스를 배포합니다:

종류기본 이름설명배포 시기
StatefulSet릴리스 이름사용자 구성 Teleport 포드 운영.항상.
SecretjoinTokenSecret.name (기본값: teleport-kube-agent-join-token )Teleport 포드의 상태 관리를 위해 사용.joinTokenSecret.secrettrue 인 경우.
SecretjamfCredentialsSecret.name (기본값: teleport-jamf-api-credentials )jamf_service 와의 Jamf Prod 통합에 사용.jamfCredentialsSecret.createtrue 인 경우.
Deployment릴리스 이름사용자 구성 Teleport 포드 운영.storage.enabledfalse 이고 차트가 업그레이드될 때. 새로운 설치는 대신 StatefulSet 을 배포합니다.
Role제공된 경우 roleName 옵션 또는 릴리스 이름.Kubernetes 비밀을 통해 Teleport 포드의 상태를 관리하는 데 사용.항상.
ClusterRole제공된 경우 clusterRoleName 또는 릴리스 이름.사용자를 가장하고 그룹 및 서비스 계정을 임시로 사용하며 포드를 가져오고 SelfSubjectAccessReview 를 생성하여 Teleport 포드가 Kubernetes 클러스터 내 리소스에 대한 액세스를 관리할 수 있도록 허용.항상.
ClusterRoleBinding제공된 경우 clusterRoleBindingName 또는 릴리스 이름Teleport 포드가 Kubernetes 클러스터 내 리소스에 대한 액세스를 관리할 수 있도록 허용.항상.
RoleBinding제공된 경우 roleBindingName 또는 릴리스 이름Teleport 포드가 Kubernetes 클러스터 내 리소스에 대한 액세스를 관리할 수 있도록 허용.항상.
ServiceAccount제공된 경우 serviceAccount.name 또는 릴리스 이름Teleport 포드가 Kubernetes 클러스터 내 리소스에 대한 액세스를 관리할 수 있도록 허용.serviceAccount.createtrue 인 경우.
PodDisruptionBudget릴리스 이름Teleport 포드의 고가용성을 보장.highAvailability.podDisruptionBudget.enabledtrue 인 경우.
ServiceAccount릴리스 이름, -hook 가 추가됨StatefulSet 대신 레거시 Deployment 를 삭제하는 데 사용. 업그레이드가 완료되면 제거됨.teleport-kube-agent 릴리스가 레거시 Deployment 리소스를 포함하는 경우.
Role릴리스 이름, -hook 가 추가됨StatefulSet 대신 레거시 Deployment 를 삭제하는 데 사용. 업그레이드가 완료되면 제거됨.teleport-kube-agent 릴리스가 레거시 Deployment 리소스를 포함하는 경우.
RoleBinding릴리스 이름, -hook 가 추가됨StatefulSet 대신 레거시 Deployment 를 삭제하는 데 사용. 업그레이드가 완료되면 제거됨.teleport-kube-agent 릴리스가 레거시 Deployment 리소스를 포함하는 경우.
Job릴리스 이름, -hook 가 추가됨StatefulSet 대신 레거시 Deployment 를 삭제하는 데 사용. 업그레이드가 완료되면 제거됨.teleport-kube-agent 릴리스가 레거시 Deployment 리소스를 포함하는 경우.
ConfigMap릴리스 이름Teleport 포드의 구성을 포함.항상.
PodSecurityPolicy릴리스 이름teleport-kube-agent 에 의해 배포된 포드의 보안 요구 사항을 시행.podSecurityPolicy.enabledtrue 이고 Kubernetes 클러스터 버전이 < 1.23인 경우.
Role릴리스 이름, -psp 가 추가됨teleport-kube-agent 에 의해 배포된 포드의 보안 요구 사항을 시행.podSecurityPolicy.enabledtrue 이고 Kubernetes 클러스터 버전이 < 1.23인 경우.
RoleBinding릴리스 이름, -psp 가 추가됨teleport-kube-agent 에 의해 배포된 포드의 보안 요구 사항을 시행.podSecurityPolicy.enabledtrue 이고 Kubernetes 클러스터 버전이 < 1.23인 경우.

roles

유형기본값
string"kube"

rolesteleport-kube-agent 차트를 실행할 때 활성화될 서비스의 쉼표로 구분된 목록입니다.

서비스roles 의 값이 역할에 대한 필수 추가 설정
Teleport Kubernetes 서비스kubekubeClusterName
Teleport Application 서비스appapps 또는 appResources
Teleport Database 서비스dbdatabases 또는 databaseResources
Teleport Discovery 서비스discoverykubeClusterName
Teleport Jamf 서비스jamfjamfApiEndpoint , jamfClientId

예를 들어:

roles: kube,app,discovery

proxyAddr

유형기본값
string""

proxyAddr 는 클러스터에 조인하는 데 사용해야 할 공개-facing Teleport Proxy Service 엔드포인트를 제공합니다. 이는 Teleport 클러스터의 웹 UI에 접근할 때 사용하는 동일한 URL입니다. 일반적으로 사용되는 포트는 3080 또는 443입니다.

다음은 몇 가지 예입니다:

배포 방법예제 proxy_service.public_addr
온프레미스 Teleport 클러스터teleport.example.com:3080
Teleport Cloud 클러스터example.teleport.sh:443
teleport-cluster Helm 차트teleport.example.com:443

enterprise

유형기본값
boolfalse

enterpriseteleport-kube-agent 차트가 OSS 버전 또는 엔터프라이즈 버전의 컨테이너 이미지를 배포할지 여부를 제어합니다. 이 값은 Teleport Cloud 또는 자체 호스팅된 Teleport Enterprise 클러스터에 연결할 때 엔터프라이즈 기능을 활용할 수 있도록 true 로 설정해야 합니다.

authToken

유형기본값
string""

authToken 은 Teleport 인스턴스를 Teleport 클러스터에 조인하는 데 사용되는 Teleport 조인 토큰을 제공합니다. authTokentoken 조인 방법만 지원합니다.

kubernetes , iam 또는 gcp 와 같은 다른 방법의 경우, joinParams 의 값을 사용해야 하며 이는 Teleport 클러스터에 조인하는 더 많은 방법을 지원합니다. authTokenjoinParams 가 모두 설정된 경우 joinParams 가 우선합니다.

에이전트가 Teleport 클러스터에 조인하기 위해서는 반드시 authToken , joinParams 또는 기존 Kubernetes 비밀을 통해 토큰을 지정해야 합니다.

사용되는 토큰은 필요한 시스템 역할을 부여해야 합니다. 예를 들어, 차트의 roles kube,app 인 경우, 토큰은 시스템 역할 AppKube 를 허용해야 합니다.

joinParams

joinParams 는 Teleport 에이전트가 Teleport 클러스터에 조인하는 방식을 제어합니다.
이 하위 값들은 에이전트가 클러스터에 연결하기 위해 구성되어야 합니다.

이 값은 authToken 과 동일한 목적을 가지고 있지만 모든 조인 방법을 지원합니다.
설정되면 authToken 보다 우선시됩니다.
그 사용이 선호되어야 합니다.

joinParams.method

유형기본값
string"token"

joinParams.method 는 인스턴스가 Teleport 클러스터에 조인할 때 사용할 조인 방법을 제어합니다.

가능한 값, 각 조인 방법의 의미 및 각 방법을 설정하는 방법에 대한 목록은 조인 방법 참조를 참조하십시오.

teleport-kube-agent 의 일반적인 조인 방법은 다음과 같습니다:

  • token : 가장 기본적인 방법으로, 일반적인 임시 비밀 토큰을 사용합니다.
  • kubernetes : in-cluster 변형(에이전트가 teleport-cluster 차트와 동일한 Kubernetes 클러스터에서 실행되는 경우) 또는 JWKS 변형(모든 Kubernetes 클러스터에서 작동하며, Teleport Auth Service의 위치에 관계없이)입니다.

joinParams.tokenName

유형기본값
string""

joinParams.tokenName 은 에이전트가 Teleport 클러스터에 조인하는 데 사용할 토큰을 제어합니다.

joinParams.method위임 조인 방법일 경우, 이 값은 민감하지 않습니다.

joinParams.method 가 기본적으로 token 인 경우, joinParams.tokenName 에는 비밀 토큰 자체가 포함됩니다. 이 경우, 값은 민감하며 에이전트의 구성 파일에 직접 포함되는 대신 Kubernetes Secret에 자동으로 저장됩니다.

방법이 token 인 경우, 토큰이 기존 Kubernetes Secret을 통해 제공되는 경우 joinParams.tokenName 은 비워둘 수 있습니다. 자세한 내용과 지침은 joinTokenSecret 을 참조하십시오.

kubeClusterName

유형기본값
string""

kubeClusterName 은 Teleport 에이전트에 의해 프록시되는 Kubernetes 클러스터의 이름을 설정합니다.
이 이름은 클러스터에 연결하는 Teleport 사용자에게 표시됩니다.

이 설정은 차트 roleskube 가 포함된 경우 필수입니다.

apps

유형기본값
list[]

apps 는 에이전트에 의해 프록시되어야 하는 애플리케이션의 정적 목록입니다.
자세한 내용은 Teleport 애플리케이션 접근 문서를 참조하십시오.

프록시된 애플리케이션은 정적으로(이 값을 통해) 또는 동적으로(appResources 값을 통해) 정의할 수 있습니다.
차트 rolesapp 이 포함된 경우 apps 또는 appResources 중 하나는 필수입니다.

여러 개의 앱을 리스트에 추가함으로써 지정할 수 있습니다.
예시:

apps:
  - name: grafana
    uri: http://localhost:3000
    labels:
      purpose: monitoring
  - name: jenkins
    uri: http://jenkins:8080
    labels:
      purpose: ci
지원되는 값

Teleport 애플리케이션 서비스 구성에서 사용할 수 있는 모든 지원되는 값의 목록은 애플리케이션 서비스 구성 참조에서 확인할 수 있습니다.

appResources

TypeDefault
list[]

appResources 는 에이전트가 모니터링할 레이블 집합입니다. 이러한 레이블과 일치하는 애플리케이션은 에이전트에 의해 프록시됩니다. 더 자세한 내용은 Teleport 애플리케이션 접근 문서를 참조하세요.

프록시 애플리케이션은 정적으로 (apps 를 통해) 또는 동적으로 (이 값을 통해) 정의할 수 있습니다. rolesapp 을 포함하는 경우 apps 또는 appResources 중 하나는 필수입니다.

추가 목록 요소를 포함하여 여러 선택기를 지정할 수 있습니다. 예를 들어:

appResources:
  - labels:
      "env": "prod"
  - labels:
      "env": "test"
예시

appResources 가 설정되면 동적 애플리케이션 등록 가이드를 따라 tsh 로 애플리케이션을 동적으로 등록할 수 있습니다.

clusterDomain

TypeDefault
string"cluster.local"

clusterDomain 은 Kubernetes 클러스터에서 사용하는 도메인 이름을 설정합니다. 이 값은 FQDN 애플리케이션 URI를 만드는 데 사용됩니다. 예를 들어, 클러스터 도메인이 anything.local 인 경우 에이전트는 default 네임스페이스에서 실행 중인 애플리케이션 myapphttp://myapp.default.svc.anything.local 에서 프록시합니다. 이 값이 기본값 cluster.local 과 다르면 수동으로 클러스터 도메인에 맞게 설정해야 합니다.

awsDatabases

TypeDefault
list[]

awsDatabases 는 AWS 데이터베이스 자동 검색을 구성합니다.

IAM 역할

AWS 데이터베이스 자동 검색이 작동하려면, 데이터베이스 서비스 파드가 데이터베이스 문서에 따라 적절한 IAM 권한을 가진 역할을 사용해야 합니다. 역할을 구성한 후, annotations.serviceAccount 값과 함께 eks.amazonaws.com/role-arn 주석을 사용하여 서비스 계정과 연결하고 권한을 부여할 수 있습니다:

annotations:
  serviceAccount:
    eks.amazonaws.com/role-arn: arn:aws:iam::1234567890:role/my-rds-autodiscovery-role

여러 데이터베이스 필터를 목록에 요소를 추가하여 지정할 수 있습니다.

  • types 는 검색해야 할 AWS 데이터베이스 유형을 포함하는 목록입니다.
  • regions 는 데이터베이스를 검색해야 할 AWS 지역 목록입니다.
  • tags 는 데이터베이스가 발견되려면 일치해야 할 AWS 태그를 설정하는 데 사용할 수 있습니다.

예를 들어:

roles: db
awsDatabases:
  - types: ["rds"]
    regions: ["us-east-1", "us-west-2"]
    tags:
      "environment": "production"
  - types: ["rds"]
    regions: ["us-east-1"]
    tags:
      "environment": "dev"
  - types: ["rds"]
    regions: ["eu-west-1"]
    tags:
      "*": "*"
annotations:
  serviceAccount:
    eks.amazonaws.com/role-arn: arn:aws:iam::1234567890:role/my-rds-autodiscovery-role

azureDatabases

유형기본값
list[]

azureDatabases 는 Azure 데이터베이스 자동 검색을 구성합니다.

Azure IAM

Azure 데이터베이스 자동 검색이 작동하려면, 데이터베이스 서비스 포드가 데이터베이스 문서에 따라 적절한 IAM 권한을 가져야 합니다.

적절한 IAM 권한으로 서비스 주체를 구성한 후, 포드에 자격 증명을 전달해야 합니다.
가장 쉬운 방법은 Azure 클라이언트 비밀을 사용하는 것입니다.

먼저, 차트 설치 네임스페이스에 Azure 클라이언트 비밀을 포함하는 Kubernetes Secret 를 생성합니다:

kubectl create secret generic teleport-azure-client-secret --from-literal=client_secret=<your-azure-client-secret>
secret/teleport-azure-client-secret created

그런 다음, extraEnv 값을 사용하여 포드 환경 변수를 설정합니다:

extraEnv:
  - name: AZURE_CLIENT_SECRET
    valueFrom:
      secretKeyRef:
      name: teleport-azure-client-secret
      key: client_secret
      optional: false
  - name: AZURE_TENANT_ID
    value: "11111111-2222-3333-4444-555555555555"
  - name: AZURE_CLIENT_ID
    value: "11111111-2222-3333-4444-555555555555"

여러 데이터베이스 필터를 추가하려면 목록에 요소를 추가하면 됩니다.

각 필터에 필요한 필드:

  • types 는 발견해야 할 Azure 데이터베이스 유형을 포함하는 목록입니다.
  • tags 는 데이터베이스가 발견될 때 일치해야 하는 Azure 리소스 태그를 설정하는 데 사용할 수 있습니다.

각 필터에 대한 선택적 필드:

  • regions 는 데이터베이스를 검색해야 하는 Azure 지역의 목록입니다.
  • subscriptions 는 일치하는 Azure 구독 내에서 데이터베이스를 검색하는 데 사용할 수 있습니다.
  • resource_groups 는 일치하는 Azure 리소스 그룹 내에서 데이터베이스를 검색하는 데 사용할 수 있습니다.

이러한 선택적 설정의 기본값은 *이며, 이는 Teleport 서비스 주체가 Azure에서 접근할 수 있는 모든 구독, 지역 또는 리소스 그룹에서 자동 검색합니다.

예를 들어:

roles: db
azureDatabases:
  - types: ["mysql", "postgres"]
    tags:
      "*": "*"
  - types: ["mysql"]
    tags:
      "env": ["dev", "staging"]
      "origin": "alice"
    regions: ["eastus", "centralus"]
    subscriptions: ["subID1", "subID2"]
    resource_groups: ["group1", "group2"]
extraEnv:
  - name: AZURE_CLIENT_SECRET
    valueFrom:
      secretKeyRef:
      name: teleport-azure-client-secret
      key: client_secret
      optional: false
  - name: AZURE_TENANT_ID
    value: "11111111-2222-3333-4444-555555555555"
  - name: AZURE_CLIENT_ID
    value: "11111111-2222-3333-4444-555555555555"

databases

유형기본값
list[]

databases 는 에이전트에 의해 프록시되어야 하는 데이터베이스의 정적 목록입니다. 더 자세한 내용은 Teleport 데이터베이스 접근 문서를 참조하세요.

프록시 애플리케이션은 이 값을 통해 정적으로 정의되거나 (이 값) 동적으로 정의될 수 있습니다. databaseResources 값을 통해 정의됩니다.

추가 목록 요소를 추가하여 여러 데이터베이스를 지정할 수 있습니다.

values.yaml 예시:

databases:
  - name: aurora-postgres
    uri: postgres-aurora-instance-1.xxx.us-east-1.rds.amazonaws.com:5432
    protocol: postgres
    aws:
      region: us-east-1
    static_labels:
      env: staging
  - name: mysql
    uri: mysql-instance-1.xxx.us-east-1.rds.amazonaws.com:3306
    protocol: mysql
    aws:
      region: us-east-1
    static_labels:
      env: staging
지원되는 값

Teleport 데이터베이스 서비스 구성을 위해 사용할 수 있는 모든 지원되는 값 목록은 여기에서 확인할 수 있습니다.

데이터베이스 CA 신뢰하기

데이터베이스 CA는 데이터베이스별로 신뢰될 수 있습니다.
다음과 같은 명령으로 Teleport와 같은 네임스페이스에 데이터베이스 CA 인증서를 포함하는 비밀을 생성해야 합니다:

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

그런 다음, 다음 값을 사용하여 Helm 차트를 배포합니다:

databases:
  - name: my-postgres
    uri: postgres.example.com:5432
    protocol: postgres
    tls:
      ca_cert_file: "/etc/teleport-tls-db/my-postgres/ca.pem"
extraVolumes:
  - name: my-postgres-ca
    secret:
      secretName: my-postgres-ca
extraVolumeMounts:
  - name: my-postgres-ca
    mountPath: /etc/teleport-tls-db/my-postgres
    readOnly: true

databaseResources

TypeDefault
list[]

databaseResources 는 에이전트가 모니터링할 레이블 집합입니다.
해당 레이블과 일치하는 모든 데이터베이스는 에이전트에 의해 프록시 처리됩니다. Teleport Database access 문서를 참조하여 자세한 정보를 확인하십시오.

프록시된 데이터베이스는 정적으로 databases 를 통해 정의하거나 이 값을 통해 동적으로 정의할 수 있습니다.

여러 선택기를 추가 요소로 포함하여 지정할 수 있습니다.
예를 들어:

databaseResources:
  - labels:
      "env": "prod"
      "engine": "postgres"
  - labels:
      "env": "test"
      "engine": "mysql"
예시

databaseResources 가 설정되면 이 가이드를 따라 tsh 로 데이터베이스를 동적으로 등록할 수 있습니다.

kubernetesDiscovery

TypeDefault
list[{"labels":{"*":"*"},"namespaces":["*"],"types":["app"]}]

kubernetesDiscovery 는 Discovery 서비스 구성을 제어합니다
(활성화된 경우).

Discovery 서비스는 에이전트 roles 에 "discovery"가 포함되어 있을 때 활성화됩니다.
Discovery 서비스는 Kubernetes 서비스를 자동으로 감지하고 에이전트를 구성하여 접근할 수 있도록 합니다. Kubernetes App Discovery 문서를 참조하여 자세한 정보를 확인하십시오.

Note

Discovery 메커니즘은 kube-systemkube-public 네임스페이스에서 실행 중인 Kubernetes 서비스를 무시합니다.

기본 값은 Kubernetes에서 실행 중인 모든 앱을 발견하려고 시도합니다. 이 값을 통해 검색을 제한할 수 있습니다. 예를 들어:

kubernetesDiscovery:
  - types: ["app"]
    namespaces: ["toronto", "porto"]
    labels:
      env: staging
  - types: ["app"]
    namespaces: ["seattle", "oakland"]
    labels:
      env: testing

jamfApiEndpoint

TypeDefault
string""

jamfApiEndpoint 는 Jamf 서비스에 사용되는 Jamf Pro API 엔드포인트를 설정합니다.
예: "https://yourtenant.jamfcloud.com/api".

이 설정은 차트 rolesjamf 가 포함된 경우 필수입니다.

jamfClientId

TypeDefault
string""

jamfClientId 는 Jamf 서비스에 사용되는 Jamf Pro API 클라이언트 ID를 설정합니다.

이 설정은 차트 rolesjamf 가 포함된 경우 필수입니다.

jamfClientSecret

TypeDefault
string""

jamfClientSecret 는 Jamf 서비스에 사용되는 Jamf Pro API 클라이언트 비밀을 설정합니다.

이 설정은 차트 rolesjamf 가 포함되어 있고 jamfCredentialsSecret.createtrue 로 설정된 경우 필수입니다.
Kubernetes 비밀을 직접 제공하는 경우, 이 설정은 설정하지 않아도 됩니다.

jamfCredentialsSecret

jamfCredentialsSecret 는 Jamf API 자격 증명(심지어 Jamf 클라이언트 비밀 또는 비밀번호)을 포함하는 Kubernetes 비밀을 관리합니다.

jamfCredentialsSecret.create

TypeDefault
booltrue

jamfCredentialsSecret.create 는 차트가 Jamf Pro API 클라이언트 비밀을 포함하는 Kubernetes Secret 을 생성할지 여부를 제어합니다.
false 인 경우, Helm 릴리스 네임스페이스에 구성된 이름의 Kubernetes 비밀을 생성해야 합니다.

jamfCredentialsSecret.name

TypeDefault
string"teleport-jamf-api-credentials"

jamfCredentialsSecret.name 은 차트에서 사용하는 Jamf Pro API 클라이언트 비밀을 포함하는 Kubernetes Secret의 이름입니다.

jamfCredentialsSecret.createfalse 이면, 차트는 비밀을 생성하려고 시도하지 않습니다. 대신, 기존 Kubernetes Secret에서 값을 읽습니다. jamfCredentialsSecret.name 은 이 비밀의 이름을 구성합니다. 이를 통해 이 비밀을 외부에서 구성하고 Teleport 차트 값에 평문 Jamf Pro API 클라이언트 비밀이 저장되지 않도록 할 수 있습니다.

Jamf Pro API 클라이언트 비밀을 포함하는 Kubernetes Secret을 생성하려면 다음 명령을 실행하십시오:

kubectl --namespace teleport create secret generic my-jamf-secret --from-literal=credential=<replace-with-actual-secret>
Note

비밀 내 Jamf Pro API 클라이언트 비밀에 사용되는 키는 위의 명령과 같이 credential 이어야 합니다.

예를 들어:

jamfCredentialsSecret:
  create: false
  name: my-jamf-secret

teleportVersionOverride

TypeDefault
string""

teleportVersionOverride 는 차트에 의해 배포되는 Teleport Kubernetes Operator 이미지 버전을 제어합니다.

일반적으로 Teleport Kubernetes Operator의 버전은 차트의 버전과 일치합니다. 차트 버전 15.0.0을 설치하면 Teleport 버전 15.0.0을 사용하게 됩니다. 에이전트를 업그레이드하는 것은 차트를 업그레이드하는 것으로 이루어집니다.

Warning

teleportVersionOverride 는 개발을 위한 것이며 일반 배포에서 Teleport 버전을 제어하는 데 사용해서는 안 됩니다. 이 차트는 특정 Teleport 버전을 실행하도록 설계되었습니다. 다른 Teleport 버전과 함께 실행하려고 하면 호환성 문제에 직면할 것입니다.

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

caPin

TypeDefault
list[]

caPin 은 에이전트가 Teleport 클러스터에 조인할 때 유효성을 검사해야 하는 CA 핀 목록입니다. 이는 올바른 Auth 서비스에 연결하고 있는지 확인합니다.

이는 Auth 서비스에 직접 조인할 때만 사용됩니다. 프록시 서비스를 통해 조인할 때는 TLS 연결에 사용되는 x509 인증서로 진위가 보장됩니다.

각 목록 요소는 핀 그 자체일 수 있으며(권장), 핀을 포함하는 파일의 경로일 수도 있습니다. 후자의 경우, 파일을 마운트하는 것은 귀하의 책임입니다, extraVolumes 를 사용하여.

insecureSkipProxyTLSVerify

TypeDefault
boolfalse

insecureSkipProxyTLSVerify 는 프록시 서비스에서 제공하는 TLS 인증서의 TLS 검증을 비활성화합니다.

이는 유효한 TLS 인증서가 없는 Teleport 인스턴스를 Teleport 클러스터에 조인하는 데 사용될 수 있습니다.

Warning

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

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

teleportConfig

유형기본값
객체{}

teleportConfig 는 Teleport 포드에 전달할 YAML teleport 구성을 포함합니다. 이 구성은 차트에서 생성된 구성과 병합되며, 충돌이 발생할 경우 우선권을 갖습니다.

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

teleportConfig:
  app_service:
    debug_app: true
  discovery_service:
    enabled: true
    azure:
    - types: ["aks"]
      tags:
        "*":"*"

terminationGracePeriodSeconds

유형기본값
정수30

terminationGracePeriodSeconds 는 포드가 정상 종료를 위한 시간을 나타냅니다. 이 지연 후에 teleport가 종료되지 않으면, 프로세스가 종료됩니다. Teleport는 종료하기 전에 에이전트에 의해 지원되는 모든 연결이 종료될 때까지 대기합니다. 에이전트를 배포할 때 중단을 줄이려면, 이 값을 1시간으로 늘릴 수 있습니다.

자세한 내용은 Kubernetes Pod 생애 주기 문서를 참조하십시오.

tls

tls 는 에이전트 포드에 자체 TLS 자재를 탑재하기 위한 설정을 포함합니다. 에이전트는 TLS 서버를 노출하지 않으므로, 이는 CA를 신뢰하는 데만 사용됩니다.

tls.existingCASecretName

유형기본값
문자열""

tls.existingCASecretNameSSL_CERT_FILE 환경 변수를 설정하여 Teleport 포드에 PEM 형식의 신뢰할 수 있는 CA 또는 번들을 로드합니다. 주입된 CA는 프록시 서비스와 상위 응용 프로그램 또는 데이터베이스와의 TLS 통신을 검증하는 데 사용됩니다.

Note

데이터베이스 CA를 신뢰하는 권장 방법은 전역 Teleport 신뢰 저장소에 CA를 추가하는 대신 데이터베이스별로 신뢰하는 것입니다. 이렇게 하면 특정 데이터베이스에 대한 신뢰 범위를 제한하면서 여러 CA를 신뢰할 수 있습니다. databases 섹션을 참조하십시오.

CA 인증서를 포함하는 비밀을 Teleport와 동일한 네임스페이스에 생성해야 합니다. 다음 명령을 사용하세요:

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

비밀에 포함되는 루트 CA 키는 ca.pem 이어야 합니다.

updater

updater 는 Kube Agent Updater가 teleport-kube-agent 와 함께 배포되어야 하는지를 제어합니다. 업데이터는 대상 버전을 가져오고, 이미지 서명을 검증하며, teleport 배포를 업데이트합니다. enterprise 값은 true 로 설정되어 있어야 합니다.

tolerations , affinity , nodeSelector 와 같은 모든 Kubernetes 전용 필드는 기본적으로 에이전트 값으로 설정됩니다. 그러나 이들은 updater 객체에서 재정의될 수 있습니다. 예를 들어:

# 에이전트 포드는 1cpu와 2GiB의 메모리를 요청합니다. 메모리 제한도 설정되어 있습니다.
resources:
  requests:
    cpu: "1"
    memory: "2Gi"
  limits:
    memory: "2Gi"

# 업데이터 포드는 0.5 cpu와 512MiB의 메모리를 요청합니다. 메모리 제한도 해제되었습니다.
updater:
  resources:
    requests:
      cpu: "0.5"
      memory: "512Mi"
    limits: ~

updater 에 정의될 수 있는 다른 업데이터 전용 값들은 아래에 설명되어 있습니다.

updater.enabled

유형기본값
boolfalse

updater.enabled 는 Kube Agent Updater를 활성화하고 Teleport Agent와 함께 배포합니다.
다음 경우에 활성화할 수 있습니다:

  • Teleport Cloud를 사용하고 귀하의 테넌트가 자동 업데이트에 등록되어 있습니다.
    (웹 UI를 통해 확인할 수 있으며, Add Kubernetes 를 선택하고
    Enroll New Resource of type Kubernetes 를 선택한 후 값이 켜져 있는지 확인하십시오.)
  • 자체 호스팅 Teleport를 사용하고 본인의 버전 서버를 유지 관리하는 경우.

다음 경우에는 활성화할 수 없습니다:

  • 자동 업데이트에 등록되지 않은 Teleport Cloud 고객인 경우.
  • 자체 호스팅 Teleport 사용자로서 자동 업데이트를 지원하도록 Teleport 클러스터를 설정하지 않은 경우.

updater.versionServer

유형기본값
string"https://{{ .Values.proxyAddr }}/v1/webapi/automaticupgrades/channel"

updater.versionServer 는 에이전트가 대상 버전을 가져오는 버전 서버의 URL입니다.
전체 버전 엔드포인트는 versionServer releaseChannel
연결로 생성됩니다. 이 필드는 gotemplate을 지원합니다.

업데이트 기능이 활성화된 경우 이 값을 설정해야 하며, Teleport Cloud 사용자가 아닌 경우에만 해당됩니다.
Teleport Cloud 사용자라면 기본값을 변경해서는 안 됩니다.

updater.releaseChannel

유형기본값
string"stable/cloud"

updater.releaseChannel 는 업데이트 프로그램이 구독하는 릴리스 채널입니다.

전체 버전 엔드포인트는 versionServer releaseChannel
연결로 생성됩니다. Teleport Cloud 사용자라면 Teleport 지원 팀에서 지시하지 않는 한
기본값을 변경해서는 안 됩니다.

업데이트 기능이 활성화되어 있고 Teleport Cloud 사용자가 아니며 본인의 버전 서버를 관리하는 경우에는
이 값을 변경할 수 있습니다.

updater.image

유형기본값
string"public.ecr.aws/gravitational/teleport-kube-agent-updater"

updater.imageupdater.enabled 가 true일 때 Teleport 업데이트 프로그램
팟을 실행하는 데 사용되는 컨테이너 이미지입니다.

Teleport에서 게시한 이미지 대신 본인만의 Teleport Kube Agent Updater 이미지를 사용하도록
이 값을 재정의할 수 있습니다.

updater.serviceAccount

updater.serviceAccount.name

유형기본값
string""

updater.serviceAccount.name 는 업데이트 프로그램 Kubernetes 서비스 계정 이름입니다.
설정되지 않은 경우 기본값은 <kube agent sa name>-updater 입니다.

updater.pullCredentials

유형기본값
string""

updater.pullCredentials 는 업데이트 프로그램이 이미지 서명을 검증하는 데
사용되는 이미지 풀 자격 증명을 가져오는 방법을 구성합니다.

공식 공개 Teleport 레지스트리에서 이미지를 가져올 때는 이 설정이 필요하지 않습니다(차트의 기본값).

지원되는 값은 amazon , google , dockernone 입니다.

updater.extraArgs

유형기본값
list[]

updater.extraArgs 는 업데이트 프로그램 이진 파일에 전달할 추가 인수를 포함합니다.

updater.extraVolumes

유형기본값
list[]

updater.extraVolumes 는 Updater 포드에 마운트할 추가 볼륨을 포함합니다.
자세한 내용은 Kubernetes 볼륨 문서를 참조하십시오.

예를 들어:

updater:
  extraVolumes:
    - name: myvolume
      secret:
        secretName: testSecret

updater.extraVolumeMounts

유형기본값
list[]

updater.extraVolumeMounts 는 업데이트를 위한 추가 볼륨 마운트를 포함합니다.
자세한 내용은 Kubernetes 볼륨 문서를 참조하십시오.

예를 들어:

updater:
  extraVolumesMounts:
    - name: myvolume
      mountPath: /path/on/host

existingDataVolume

유형기본값
string""

existingDataVolume/var/lib/teleport 에 마운트해야 하는 기존 Kubernetes 영구 볼륨의 이름입니다.

이 값은 이전에 지속성 기능이 활성화된 에이전트를 실행한 적이 있고 새 에이전트가 볼륨을 재사용하기를 원할 때만 유용합니다.

podSecurityPolicy

podSecurityPolicy.enabled

유형기본값
booltrue

podSecurityPolicy.enabled 는 차트가 Kubernetes PodSecurityPolicy를 배포할지를 제어합니다.

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

PodSecurityPolicy 자원(PSP)은 Kubernetes 1.25에서 제거되었으며, 1.23 이후에는 PodSecurityAdmission(PSA)로 대체되었습니다. Kubernetes 1.23 이상에서 실행하고 있는 경우 PSP를 비활성화하고 PSA를 사용하는 것이 권장됩니다. 단계는 PSP 제거 가이드에 문서화되어 있습니다.

이 값은 향후 차트 버전에서 제거될 예정입니다.

labels

유형기본값
object{}

labels 는 Kubernetes 클러스터를 나타내는 Teleport 리소스에 적용될 키-값 쌍의 맵입니다. 이러한 레이블은 Teleport의 RBAC 정책과 함께 사용되어 클러스터에 대한 접근 규칙을 정의하는 데 사용됩니다. 이는 roles kube 가 포함된 경우에만 사용됩니다.

Note

이러한 레이블은 Kubernetes 레이블이 아닌 Teleport 전용 RBAC 레이블입니다.

Note

역사적/하위 호환성 이유로, 이러한 레이블은 Teleport Kubernetes 서비스를 통해 조인되는 Kubernetes 클러스터에만 적용됩니다.

애플리케이션에 대한 레이블을 설정하려면 apps 섹션에 labels 요소를 추가하십시오.
데이터베이스에 대한 레이블을 설정하려면 databases 섹션에 static_labels 요소를 추가하십시오.

Teleport 서비스에 대한 정적/동적 레이블 설정 방법에 대한 자세한 내용은 노드 및 애플리케이션 레이블 설정을 참조하십시오.

예를 들어:

labels:
  environment: production
  region: us-east

highAvailability

highAvailability 는 차트에 의해 배포된 Teleport 에이전트의 가용성을 제어하는 설정을 포함합니다.

가용성은 다음과 같이 증가할 수 있습니다:

  • replicaCount 를 사용하여 더 많은 복제본 실행
  • Pods가 동일한 Kubernetes 노드에 스케줄되지 않도록 요구하는 requireAntiAffinity
  • Kubernetes에 모든 Pods를 동시에 삭제하지 않도록 요청하는 podDisruptionBudget .

고가용성 설정이 있더라도, Pods를 재시작하거나 롤링 아웃할 때 kubectl exec 또는 데이터베이스 셸과 같은 장기 세션에 지장이 있을 수 있습니다.

highAvailability.replicaCount

TypeDefault
int1

highAvailability.replicaCount 는 차트에 의해 배포된 에이전트 복제본의 수입니다.

여러 Teleport pods가 배포되는 고가용성 모드에서 1 보다 높은 숫자로 설정하십시오.

크기 조정 가이드라인

대략적인 가이드로, 클러스터가 워커 노드를 가진 각 고유 가용성 영역마다 하나의 복제본을 구성할 것을 권장합니다.

소규모 워크로드에는 2개의 복제본/가용성 영역이 적합합니다. 더 많은 트래픽이 있는 큰 클러스터에는 3-5개의 복제본/가용성 영역이 더 적합합니다.

기존 에이전트에 새 복제본을 추가할 때, 제공된 토큰(authToken (#authToken), joinParams (#joinParams), 또는 joinTokenSecret (#joinTokenSecret))이 여전히 유효한지 확인해야 합니다. 각 복제본은 고유한 ID를 가지고 있으며 첫 번째 시작 시 Teleport 클러스터에 조인해야 합니다.

highAvailability.requireAntiAffinity

TypeDefault
boolfalse

highAvailability.requireAntiAffinity 는 Kubernetes requiredDuringSchedulingIgnoredDuringExecution 를 구성하여 여러 Teleport pods가 동일한 물리적 호스트에 스케줄되지 않도록 합니다.

Warning

이 설정은 매우 작은 클러스터에서 Teleport pods가 스케줄되지 않거나 노드 다운타임 동안 문제가 발생할 수 있으므로 주의하여 사용해야 합니다.

highAvailability.requireAntiAffinityfalse (기본값)로 설정하면, preferredDuringSchedulingIgnoredDuringExecution 을 사용하여 노드 반격 요구사항을 부드러운 요구사항으로 설정합니다.

Note

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

highAvailability.podDisruptionBudget

highAvailability.podDisruptionBudget 는 차트가 Kubernetes PodDisruptionBudget을 생성하고 구성하도록 하여 Kubernetes가 모든 에이전트 복제본을 동시에 삭제하지 않도록 합니다.

highAvailability.podDisruptionBudget.enabled

TypeDefault
boolfalse

highAvailability.podDisruptionBudget.enabled 는 차트가 에이전트 pods를 위한 Kubernetes PodDisruptionBudget을 생성하도록 합니다.

highAvailability.podDisruptionBudget.minAvailable

TypeDefault
int1

highAvailability.podDisruptionBudget.minAvailable 는 PodDisruptionBudget에서 지정된 최소 가용 팟입니다.

podMonitor

podMonitor 는 PodMonitor CR (monitoring.coreos.com/v1)을 제어합니다. 이 CRD는 prometheus-operator에 의해 관리되며, 워크로드 모니터링을 가능하게 합니다. 이 값을 사용하려면 클러스터에서 prometheus-operator 를 실행해야 이 값이 적용됩니다.
자세한 내용은 https://prometheus-operator.dev/docs/prologue/introduction/ 를 참조하십시오.

podMonitor.enabled

TypeDefault
boolfalse

podMonitor.enabled 는 차트가 PodMonitor를 배포하는지를 제어합니다.
기본적으로 비활성화되어 있으며, PodMonitor CRD가 설치되어 있어야 합니다.

podMonitor.additionalLabels

TypeDefault
object{}

podMonitor.additionalLabels 는 PodMonitor에 레이블을 추가합니다.
이는 특정 Prometheus 인스턴스에 의해 선택되기 위해 사용됩니다.

예를 들어:

podMonitor:
  additionalLabels:
    prometheus: default

podMonitor.interval

TypeDefault
string"30s"

podMonitor.interval 는 두 메트릭 스크랩 사이의 간격입니다.

storage

storage 는 에이전트가 Kubernetes Persistent Volume에 데이터를 저장하는 방법을 제어합니다.

Teleport 12 버전부터, 에이전트는 재시작 간에 신원을 유지하기 위해 PV 저장소가 필요하지 않습니다: 이를 Kubernetes Secret에 저장합니다. 이는 teleport-kubernetes-agent 가 일회성 및 단기적인 조인 토큰을 사용할 수 있도록 하며, 재시작 후에도 신원과 비밀을 유지합니다.

스토리지를 사용하는 주된 이점은 Pod 종료 후 업로드되지 않은 세션 녹화 내용을 보존하는 것입니다. Teleport 세션 녹화 모드가 비동기적일 때입니다.

storage.enabled

TypeDefault
boolfalse

storage.enabled 는 Teleport 인스턴스 상태를 유지하기 위한 Kubernetes persistent volume의 생성을 활성화합니다.

storage.storageClassName

TypeDefault
string""

storage.storageClassName 는 Persistent Volume Claims를 생성할 때 차트가 사용하는 Kubernetes StorageClass를 제어합니다. 제공된 이름을 가진 StorageClass가 Kubernetes 클러스터에 존재해야 합니다.

storage.requests

TypeDefault
string"128Mi"

storage.requests 는 생성할 영구 볼륨의 크기입니다.

adminClusterRoleBinding

adminClusterRoleBinding 은 선택적으로 클러스터 관리자 역할 바인딩을 생성합니다.
이는 기본 system:masters 그룹이 아닌 Kubernetes 그룹에 클러스터 관리자 권한을 부여하는 데 유용합니다.

GKE Autopilot 클러스터는 system:masters 그룹을 가장하는 것을 금지하며 대신 사용자 정의 그룹을 사용해야 합니다.

adminClusterRoleBinding.create

TypeDefault
boolfalse

adminClusterRoleBinding.create 는 차트가 추가 관리 클러스터 역할 바인딩을 생성해야 하는지를 제어합니다.

adminClusterRoleBinding.name

TypeDefault
string"cluster-admin"

adminClusterRoleBinding.name 는 생성된 관리자 클러스터 역할 바인딩의 이름입니다.

image

TypeDefault
string"public.ecr.aws/gravitational/teleport-distroless"

image 는 차트에 의해 생성된 Teleport OSS 에이전트 Pod에 사용되는 컨테이너 이미지를 설정합니다.

Teleport가 배포한 이미지를 사용하지 않고 자체 Teleport 이미지를 사용하려면 이 값을 변경할 수 있습니다.

Teleport Kube Agent Updater와의 상호작용

Teleport Kube Agent Updater를 사용할 때, 업데이트 타겟 버전이 업데이트되기 전에 이미지를 사용할 수 있도록 해야 합니다.
Kubernetes가 이미지를 가져오려고 할 때입니다.

이러한 이유로 자동 업데이트를 사용할 때 사용자 정의 이미지를 설정하는 것은 강력히 권장되지 않습니다. Teleport Cloud는 기본적으로 자동 업데이트를 사용합니다.

버전 13부터는 기본적으로 하드닝된 distroless 이미지가 사용됩니다.
public.ecr.aws/gravitational/teleport 로 값을 설정하여 구식 debian 기반 이미지를 사용할 수 있습니다.
이 이미지는 teleport 15에서 제거될 것입니다.

이 설정은 enterprise false 일 때만 적용됩니다.
엔터프라이즈 버전을 실행할 때는 대신 enterpriseImage 를 사용해야 합니다.

enterpriseImage

유형기본값
string"public.ecr.aws/gravitational/teleport-ent-distroless"

enterpriseImage 는 차트에서 생성된 Teleport Enterprise 에이전트 포드에 사용되는 컨테이너 이미지를 설정합니다.

이를 통해 Teleport에서 게시한 이미지를 사용하는 대신 자신의 Teleport 이미지를 사용할 수 있습니다.

Teleport Kube Agent Updater와의 상호작용

Teleport Kube Agent Updater를 사용할 때는 이미지를 업데이트 버전 대상을 변경하기 전에 이미지를 사용할 수 있도록 해야 하며, Kubernetes가 이미지를 가져오려고 할 때 이미지를 사용할 수 있어야 합니다.

이러한 이유로 자동 업데이트를 사용할 때는 사용자 정의 이미지를 설정하는 것이 강력히 권장되지 않습니다. Teleport Cloud는 기본적으로 자동 업데이트를 사용합니다.

버전 13부터는 기본적으로 강화된 distroless 이미지가 사용됩니다. public.ecr.aws/gravitational/teleport-ent 로 값을 설정하여 더 이상 지원되지 않는 Debian 기반 이미지를 사용할 수 있습니다. 이러한 이미지는 teleport 15와 함께 제거될 것입니다.

이 설정은 enterprise true 일 때만 적용됩니다. 엔터프라이즈 버전을 실행할 때는 image 를 대신 사용해야 합니다.

imagePullSecrets

유형기본값
list[]

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

자세한 내용은 Kubernetes 참조 를 참조하십시오.

clusterRoleName

유형기본값
string""

clusterRoleName 은 선택적으로 에이전트의 ServiceAccount 에 의해 사용되는 Kubernetes ClusterRole 의 이름을 재정의하는 데 사용할 수 있습니다.

Note

대부분의 사용자는 이를 변경할 필요가 없습니다.

clusterRoleBindingName

유형기본값
string""

clusterRoleBindingName 은 선택적으로 에이전트의 ServiceAccount 에 의해 사용되는 Kubernetes ClusterRoleBinding 의 이름을 재정의하는 데 사용할 수 있습니다.

Note

대부분의 사용자는 이를 변경할 필요가 없습니다.

roleName

유형기본값
string""

roleNameteleport-kube-agent 차트가 Teleport 포드를 위해 생성하는 Role 리소스의 사용자 정의 이름을 제공합니다. 기본적으로 Role 은 Helm 릴리스의 이름을 가집니다.

당신의 teleport-kube-agent 리소스의 네임스페이스에 동일한 이름을 가진 Role 리소스가 있는 경우 이 값을 설정해야 합니다.

roleBindingName

유형기본값
string""

roleBindingNameteleport-kube-agent 차트가 Teleport 포드를 위해 생성하는 RoleBinding 리소스의 사용자 정의 이름을 제공합니다. 기본적으로 RoleBinding 은 Helm 릴리스의 이름을 가집니다.

당신의 teleport-kube-agent 리소스의 네임스페이스에 동일한 이름을 가진 RoleBinding 리소스가 있는 경우 이 값을 설정해야 합니다.

serviceAccountName

유형기본값
string""

serviceAccountName 은 더 이상 사용되지 않으며 향후 버전에서 제거될 예정입니다. 대신 serviceAccount.name 을 사용하십시오.

serviceAccount

serviceAccount 는 차트에 의해 배포되고 사용되는 Kubernetes ServiceAccounts를 제어합니다.

serviceAccount.create

유형기본값
booltrue

serviceAccount.create 는 Helm 차트가 에이전트 및 선택적으로 업데이트를 위한 Kubernetes ServiceAccount 리소스를 생성할지 여부를 제어합니다. 꺼져 있으면 적절한 ServiceAccount 리소스를 생성할 책임이 있습니다.

serviceAccount.name

유형기본값
string""

serviceAccount.name 은 차트에서 사용하는 ServiceAccount 리소스의 이름을 설정합니다. 기본적으로 ServiceAccount 는 Helm 릴리스의 이름을 가집니다.

rbac

rbac.create

유형기본값
booltrue

rbac.create 는 차트가 RBAC Kubernetes 리소스를 생성해야 하는지를 제어합니다.

  • true 인 경우, 차트는 에이전트에 대한 ClusterRoleClusterRoleBinding 리소스를 생성하며, 업데이트가 활성화된 경우 Role /RoleBinding 을 생성합니다.
  • false 인 경우, 차트는 RoleRoleBinding 리소스를 생성하지 않습니다. 사용자는 이를 별도로 배포하고 유지 관리할 책임이 있습니다.

이 값은 사용자가 RBAC 리소스를 편집할 수 없는 제한된 환경에서 배포할 때 false 로 설정할 수 있습니다.

joinTokenSecret

joinTokenSecret 은 조인 토큰 비밀 생성 및 이름 관리를 수행합니다. 자세한 내용은 joinParams 섹션을 참조하십시오.

joinTokenSecret.create

유형기본값
booltrue

joinTokenSecret.create 는 차트가 Teleport 조인 토큰을 포함하는 Kubernetes Secret 을 생성할지 여부를 제어합니다. false 인 경우, Helm 릴리스 네임스페이스에서 구성된 이름의 Kubernetes Secret을 생성해야 합니다.

joinTokenSecret.name

유형기본값
string"teleport-kube-agent-join-token"

joinTokenSecret.name 은 차트에서 사용하는 Teleport 조인 토큰을 포함하는 Kubernetes Secret의 이름입니다.

만약 joinTokenSecret.createfalse 인 경우, 차트는 비밀을 생성하려 하지 않습니다. 대신, 기존 비밀에서 값을 읽습니다. joinTokenSecret.name 는 이 비밀의 이름을 구성합니다. 이를 통해 비밀을 외부에서 구성하고 Teleport 차트 값에 평문 조인 토큰을 저장하는 것을 피할 수 있습니다.

자신의 조인 토큰 비밀을 생성하려면 다음과 같은 명령을 사용할 수 있습니다:

kubectl --namespace teleport create secret generic my-token-secret --from-literal=auth-token=<replace-with-actual-token>
Note

비밀 내에서 auth 토큰을 위한 키는 위의 명령과 같이 auth-token 이어야 합니다.

예를 들어:

joinTokenSecret:
  create: false
  name: my-token-secret

joinParams:
  method: "token"
  tokenName: ""

log

log 는 에이전트 로깅을 제어합니다.

log.level

유형기본값
string"INFO"

log.level 은 Teleport 프로세스의 로그 수준입니다.
사용 가능한 로그 수준은: DEBUG , INFO , WARNING , ERROR 입니다.

기본값은 INFO 이며, 이는 운영 환경에서 권장됩니다.
DEBUG 는 처음 설정할 때 또는 디버깅을 위한 보다 상세한 로그를 확인할 때 유용합니다.

log.output

유형기본값
string"stderr"

log.output 은 Teleport 프로세스의 출력 대상을 설정합니다.
이는 내장된 값 중 하나인 stdout , stderr 또는 syslog 로 설정할 수 있습니다.

값은 파일 경로(예: /var/log/teleport.log )로 설정할 수도 있어 로그를 파일에 쓸 수 있습니다.
몇 가지 서비스 시작 메시지는 여전히 stderr 로 전송되니 주의하십시오.

log.format

유형기본값
string"text"

log.format 은 Teleport 프로세스의 로그 출력 형식을 설정합니다.
가능한 값은 text (기본값) 또는 json 입니다.

log.extraFields

유형기본값
list["timestamp","level","component","caller"]

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

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

affinity

유형기본값
object{}

affinity 는 차트에 의해 생성된 모든 팟의 친화성을 설정합니다.
자세한 내용은 Kubernetes 문서를 참조하십시오.

dnsConfig

유형기본값
object{}

dnsConfig 는 에이전트 팟을 위한 사용자 정의 Pod DNS 구성을 포함합니다.
이 값은 DNS 부하를 줄여야 하는 경우 유용합니다: "ndots"를 0으로 설정하고 애플리케이션과 데이터베이스를 참조하기 위해 FQDN만 사용하십시오.

자세한 내용은 Kubernetes pod DNS 문서를 참조하십시오.

예를 들어:

nameservers:
  - 1.2.3.4
searches:
  - ns1.svc.cluster-domain.example
  - my.dns.search.suffix
options:
  - name: ndots
    value: "2"

dnsPolicy

유형기본값
string""

dnsPolicy 는 Pod의 DNS 정책을 설정합니다.

자세한 내용은 Kubernetes pod DNS 문서를 참조하십시오.

nodeSelector

유형기본값
object{}

nodeSelector 는 차트에 의해 생성된 모든 팟의 노드 선택기를 설정합니다.
자세한 내용은 Kubernetes 문서를 참조하십시오.

extraLabels

extraLabels 는 차트에 의해 생성된 리소스에 적용할 추가 Kubernetes 레이블을 포함합니다.
자세한 내용은 Kubernetes 레이블 문서를 참조하십시오.

extraLabels.clusterRole

타입기본값
object{}

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

extraLabels.clusterRoleBinding

타입기본값
object{}

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

extraLabels.role

타입기본값
object{}

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

extraLabels.roleBinding

타입기본값
object{}

extraLabels.roleBinding 은 RoleBinding에 설정할 레이블입니다.

extraLabels.config

타입기본값
object{}

extraLabels.config 은 ConfigMap에 설정할 레이블입니다.

extraLabels.deployment

타입기본값
object{}

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

extraLabels.job

타입기본값
object{}

extraLabels.job 은 차트에 의해 생성된 post-delete 작업에 설정할 레이블입니다.

extraLabels.pod

타입기본값
object{}

extraLabels.pod 는 Deployment, StatefulSet, 또는 Job에 의해 생성된 Pods에 설정할 레이블입니다.

extraLabels.podDisruptionBudget

타입기본값
object{}

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

extraLabels.podSecurityPolicy

타입기본값
object{}

extraLabels.podSecurityPolicy 은 podSecurityPolicy에 설정할 레이블입니다.

extraLabels.secret

타입기본값
object{}

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

extraLabels.serviceAccount

타입기본값
object{}

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

annotations

annotations 는 차트에 의해 생성된 다양한 Kubernetes 객체에 적용할 주석을 포함합니다.
자세한 내용은 Kubernetes 주석 문서를 참조하십시오.

annotations.config

타입기본값
object{}

annotations.config 은 차트에 의해 생성된 ConfigMap 리소스에 설정된 Kubernetes 주석을 포함합니다.

annotations.deployment

타입기본값
object{}

annotations.deployment 은 차트에 의해 생성된 Deployment 또는 StatefulSet 리소스에 설정된 Kubernetes 주석을 포함합니다.

annotations.pod

유형기본값
object{}

annotations.pod 는 차트에 의해 생성된 Pod 리소스에 적용된 Kubernetes 주석을 포함합니다.

annotations.secret

유형기본값
object{}

annotations.secret 는 차트에 의해 생성된 Secret 리소스에 적용된 Kubernetes 주석을 포함합니다. joinTokenSecret.createfalse 일 때는 영향을 주지 않습니다.

annotations.serviceAccount

유형기본값
object{}

annotations.serviceAccount 는 차트에 의해 생성된 ServiceAccount 리소스에 적용된 Kubernetes 주석을 포함합니다.

extraArgs

유형기본값
list[]

extraArgs 는 주요 Teleport pod에 대해 teleport start 에 전달할 추가 인수를 포함합니다.

extraEnv

유형기본값
list[]

extraEnv 는 주요 Teleport pod에 설정할 추가 환경 변수를 포함합니다.

예시:

extraEnv:
  - name: HTTPS_PROXY
    value: "http://username:password@my.proxy.host:3128"

extraContainers

유형기본값
list[]

extraContainers 는 주요 Teleport pod에 추가할 추가 컨테이너를 포함합니다.

예시:

extraContainers:
  - name: debug-sidecar
    command:
      - busybox
      - sh
      - -c
      - "echo waiting && sleep infinity"
    image: busybox:latest
    imagePullPolicy: IfNotPresent
    securityContext:
      privileged: true
      runAsNonRoot: false

extraVolumes

유형기본값
list[]

extraVolumes 는 Teleport pods에 마운트할 추가 볼륨을 포함합니다. 더 자세한 내용은 Kubernetes 볼륨 설명서를 참조하세요.

예시:

extraVolumes:
  - name: myvolume
    secret:
      secretName: testSecret

extraVolumeMounts

유형기본값
list[]

extraVolumeMounts 는 주요 Teleport 컨테이너에 대한 추가 볼륨 마운트를 포함합니다. 더 자세한 내용은 Kubernetes 볼륨 설명서를 참조하세요.

예시:

extraVolumesMounts:
  - name: myvolume
    mountPath: /path/on/host

hostAliases

hostAliases 는 Teleport Pod에서 호스트 별칭을 설정합니다. 더 자세한 내용은 Kubernetes 호스트 파일 설명서를 참조하세요.

예시:

hostAliases:
  - ip: "127.0.0.1"
    hostnames:
      - "foo.local"
      - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
      - "foo.remote"
      - "bar.remote"

imagePullPolicy

유형기본값
string"IfNotPresent"

imagePullPolicy 는 차트에 의해 생성된 모든 pods에 대한 풀 정책을 설정합니다. 더 자세한 내용은 Kubernetes 문서를 참조하세요.

initContainers

TypeDefault
list[]

initContainers 는 Teleport Pod의 init-containers를 설정합니다.
자세한 내용은 Kubernetes init-container 문서를 참조하십시오.

예를 들어:

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

resources

TypeDefault
object{}

resources 는 차트에 의해 생성된 모든 포드에 대한 리소스 요청/제한을 설정합니다.
자세한 내용은 Kubernetes 문서를 참조하십시오.

initSecurityContext

TypeDefault
object{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":9807,"seccompProfile":{"type":"RuntimeDefault"}}

initSecurityContext 는 차트에 의해 생성된 모든 포드에 대한 init 컨테이너 보안 컨텍스트를 설정합니다.
자세한 내용은 Kubernetes 문서 를 참조하십시오.

기본값은 제한된 PSS와 호환됩니다.

보안 컨텍스트를 해제하려면 null 또는 ~로 설정하십시오.

securityContext

TypeDefault
object{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":9807,"seccompProfile":{"type":"RuntimeDefault"}}

securityContext 는 차트에 의해 생성된 모든 포드에 대한 컨테이너 보안 컨텍스트를 설정합니다.
자세한 내용은 Kubernetes 문서 를 참조하십시오.

기본값은 제한된 PSS와 호환됩니다.

보안 컨텍스트를 해제하려면 null 또는 ~로 설정하십시오.

podSecurityContext

TypeDefault
object{"fsGroup":9807}

podSecurityContext 는 차트에 의해 생성된 모든 포드에 대한 포드 보안 컨텍스트를 설정합니다.
자세한 내용은 Kubernetes 문서 를 참조하십시오.

보안 컨텍스트를 해제하려면 null 또는 ~로 설정하십시오.

priorityClassName

TypeDefault
string""

priorityClassName 는 차트에 의해 생성된 모든 포드에 사용되는 우선 순위 클래스를 설정합니다.
사용자는 차트를 배포하기 전에 PriorityClass 리소스를 생성할 책임이 있습니다.
자세한 내용은 Kubernetes 문서 를 참조하십시오.

tolerations

TypeDefault
list[]

tolerations 는 차트에 의해 생성된 모든 포드에 대한 용인 조건을 설정합니다.
자세한 내용은 Kubernetes 문서 를 참조하십시오.

probeTimeoutSeconds

유형기본값
int1

probeTimeoutSeconds 는 준비 및 생존성 프로브의 타임아웃을 설정합니다.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

Teleport 원문 보기