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_servicekubeTeleport를 사용하여 Kubernetes 클러스터에 대한 인증을 처리하고
프록시 액세스를 제공합니다.
application_serviceappTeleport를 사용하여 웹 기반 애플리케이션에 대한 인증을 처리하고
프록시 액세스를 제공합니다.
database_servicedbTeleport를 사용하여 데이터베이스에 대한 인증을 처리하고
프록시 액세스를 제공합니다.
discovery_servicediscoveryTeleport를 사용하여 새로운 리소스를 발견하고
클러스터에 동적으로 추가합니다.
jamf_servicejamfTeleport를 사용하여 Jamf Pro와 통합하고
장치를 Device Trust 인벤토리와 동기화합니다.

이전 릴리즈

버전 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 Prod와 Teleport를 통합하는 데 사용됩니다 (jamf_service).jamfCredentialsSecret.createtrue일 때.
Deployment릴리즈 이름사용자 구성에 의해 실행되는 Teleport 포드.storage.enabledfalse이고 차트가 업그레이드 중일 때. 새로운 설치는 대신 StatefulSet을 배포합니다.
Role주어진 경우 roleName 옵션, 또는 릴리즈 이름.Kubernetes 비밀을 통해 Teleport 포드의 상태를 관리하는 데 사용됩니다.항상.
ClusterRole주어진 경우 clusterRoleName, 또는 릴리즈 이름.Teleport 포드가 Kubernetes 클러스터의 리소스에 대한 액세스를 관리할 수 있도록 사용자, 그룹 및 서비스 계정을 가장하게 하고 포드를 가져오며 SelfSubjectAccessReview를 생성할 수 있습니다.항상.
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는 클러스터에 가입하는 데 사용되는 공개 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 가입 토큰을 제공합니다. authToken은 오직 token 가입 방법만 지원합니다.

다른 방법(예: kubernetes, iam 또는 gcp)의 경우, joinParams를 사용해야 하며, 이는 Teleport 클러스터에 가입하기 위한 더 많은 방법을 지원합니다. authTokenjoinParams가 모두 설정되어 있다면, joinParams가 우선합니다.

에이전트가 Teleport 클러스터에 가입하기 위해 토큰을 지정해야 하며, 이는 authToken, joinParams, 또는 기존 Kubernetes Secret을 통해 이루어질 수 있습니다.

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

joinParams

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

이 값은 authToken과 동일한 목적을 제공하지만 모든 가입 방법을 지원합니다. 설정되면 authToken보다 우선합니다. 사용하는 것이 선호되어야 합니다.

joinParams.method

유형기본값
string"token"

joinParams.method는 인스턴스가 Teleport 클러스터에 가입하는 데 사용될 방법을 제어합니다.

가입 방법 참조를 보려면 가입 방법 참조를 참조하세요. 가능한 값 목록, 각 가입 방법의 의미 및 각 방법을 설정하는 가이드는 여기에 포함되어 있습니다.

teleport-kube-agent에 대한 일반적인 가입 방법은 다음과 같습니다:

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

joinParams.tokenName

유형기본값
string""

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

joinParams.method위임된 가입 방법인 경우, 값은 민감하지 않습니다.

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

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

kubeClusterName

유형기본값
string""

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

차트 roleskube가 포함되어 있으면 이 설정이 필요합니다.

apps

유형기본값
list[]

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

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

여러 개의 앱을 목록에 추가하여 지정할 수 있습니다. 예를 들어:

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

Teleport 애플리케이션 서비스 구성에서 사용할 수 있는 모든 지원되는 값 목록을 보려면 애플리케이션 서비스 구성 참조를 참조하십시오.

appResources

유형기본값
list[]

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

프록시된 애플리케이션은 정적으로(apps를 통해) 또는 동적으로(이 값을 통해) 정의할 수 있습니다. 차트 rolesapp이 포함되어 있으면 appsappResources 중 하나가 필요합니다.

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

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

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

clusterDomain

유형기본값
string"cluster.local"

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

awsDatabases

유형기본값
list[]

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

IAM 역할

AWS 데이터베이스 자동 검색이 작동하려면, 데이터베이스 서비스의 pod는 Teleport 데이터베이스 문서에 따라 적절한 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 데이터베이스 자동 검색이 작동하려면 데이터베이스 서비스의 pod가 Teleport 데이터베이스 문서에 따라 적절한 IAM 권한을 가져야 합니다.

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

먼저 차트 설치 네임스페이스에 Kubernetes Secret을 생성하여 Azure 클라이언트 비밀을 포함하세요:

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

그런 다음, extraEnv 값을 사용하여 pod 환경 변수를 설정하십시오:

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는 데이터베이스마다 신뢰할 수 있습니다. Kubernetes와 동일한 네임스페이스에 비밀을 생성하여 데이터베이스 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

유형기본값
list[]

databaseResources는 에이전트가 모니터링할 레이블 집합입니다. 해당 레이블이 일치하는 모든 데이터베이스는 에이전트에 의해 프록시됩니다. 자세한 내용은 Teleport 데이터베이스 접근 문서를 참조하십시오.

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

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

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

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

kubernetesDiscovery

유형기본값
list[{"labels":{"*":"*"},"namespaces":["*"],"types":["app"]}]

kubernetesDiscovery는 Discovery Service 구성을 제어합니다. 이 서비스는 에이전트 roles에 "discovery"가 포함된 경우 활성화됩니다. Discovery 서비스는 Kubernetes 서비스를 자동으로 감지하고 에이전트가 이를 제공하도록 구성합니다. 자세한 내용은 Kubernetes 앱 발견 문서를 참조하십시오.

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

유형기본값
string""

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

이 설정은 차트 rolesjamf가 포함되어 있으면 필수입니다.

jamfClientId

유형기본값
string""

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

이 설정은 차트 rolesjamf가 포함되어 있으면 필수입니다.

jamfClientSecret

유형기본값
string""

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

이 설정은 차트 rolesjamfjamfCredentialsSecret.createtrue로 설정되어 있는 경우 필수입니다. Kubernetes Secret을 제공하는 경우 이 설정은 비워둘 수 있습니다.

jamfCredentialsSecret

jamfCredentialsSecret은 Jamf API 자격 증명(과거 Jamf 클라이언트 비밀 또는 비밀번호)을 포함하는 Kubernetes Secret의 생성을 관리합니다.

jamfCredentialsSecret.create

유형기본값
booltrue

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

jamfCredentialsSecret.name

유형기본값
string"teleport-jamf-api-credentials"

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

jamfCredentialsSecret.createfalse이면, 차트는 비밀을 생성하려고 시도하지 않습니다. 대신, 존재하는 Kubernetes Secret에서 값을 읽습니다. 이 값은 이 비밀의 이름을 구성합니다. 이렇게 하면 사용자가 이 비밀을 외부에서 구성하고 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

유형기본값
string""

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

기본적으로 Teleport Kubernetes Operator의 버전은 차트 버전과 일치합니다. 차트 버전 15.0.0을 설치하면 Teleport 버전 15.0.0을 사용하게 됩니다. 에이전트를 업그레이드하려면 차트를 업그레이드합니다.

Warning

teleportVersionOverride는 개발을 위해 설계되었으며 일반적인 배포에서 사용해서는 안 됩니다. 이 차트는 특정 Teleport 버전을 실행하도록 설계되었습니다. 이를 사용하여 다른 Teleport 버전을 실행하려고 하면 호환성 문제가 발생할 수 있습니다.

Teleport 버전 X.Y.Z를 실행하려면 helm install --version X.Y.Z를 사용하는 것이 좋습니다.

caPin

유형기본값
list[]

caPin은 Teleport 클러스터에 가입할 때 에이전트가 올바른 인증 서비스에 연결하고 있는지 확인하기 위해 검증해야 하는 CA 핀 목록입니다.

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

각 목록 요소는 핀 자체(추천) 또는 핀을 포함하는 파일의 경로일 수 있습니다. 후자의 경우, 파일을 마운트하는 것은 귀하의 책임입니다(extraVolumes 사용).

insecureSkipProxyTLSVerify

유형기본값
boolfalse

insecureSkipProxyTLSVerify는 Proxy Service에서 제시된 TLS 인증서의 TLS 검증을 비활성화합니다.

이 설정은 유효한 TLS 인증서가 없는 Teleport 인스턴스를 Teleport 클러스터에 가입할 때 사용할 수 있습니다.

Warning

테스트용으로 자체 서명된 TLS 인증서를 사용하고 TLS 검증을 비활성화하는 것은 괜찮지만, 프로덕션 Teleport 클러스터를 운영할 때는 안전성이 크게 감소하게 되므로 실행할 수 없습니다. 프로덕션 워크로드를 위해서는 Teleport 클러스터에 유효한 TLS 인증서를 구성해야 합니다.

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

teleportConfig

유형기본값
object{}

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

지원되는 필드 목록에 대한 자세한 내용은 Teleport 구성 참조를 참조하십시오.

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

tls

tls는 에이전트 pod에서 TLS 필요한 매체를 마운트하는 설정이 포함되어 있습니다. 에이전트는 TLS 서버를 공개하지 않으므로, 이는 CAs를 신뢰하는 데만 사용됩니다.

tls.existingCASecretName

유형기본값
string""

tls.existingCASecretName는 Teleport pods에서 신뢰할 수 있는 CA 또는 번들을 PEM 형식으로 로드하기 위해 SSL_CERT_FILE 환경 변수를 설정합니다. 주입된 CA는 Proxy 서비스와 위에 있는 애플리케이션 또는 데이터베이스와의 TLS 통신을 검증하는 데 사용됩니다.

Note

데이터베이스 CA를 신뢰하는 권장 방법은 전역 Teleport 신뢰 저장소에 CA를 추가하는 대신 데이터베이스마다 진행하는 것입니다. 여러 CA를 신뢰할 수 있으면서도 각 CA를 특정 데이터베이스에 한정하는 것이 가능합니다. 데이터베이스 섹션을 참조하십시오.

비밀에 CA 인증서를 포함하는 Secret을 다음과 같이 생성해야 합니다.

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

비밀의 CA를 포함하는 키는 ca.pem이어야 합니다.

updater

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

모든 Kubernetes 관련 필드는 tolerations, affinity, nodeSelector 등의 에이전트 값으로 기본 설정됩니다. 그러나 이들 값을 updater 객체에서 재정의할 수 있습니다. 예를 들어:

# 에이전트 pod는 1cpu와 2GiB의 메모리를 요청합니다. 메모리 한도가 있습니다.
resources:
  requests:
    cpu: "1"
    memory: "2Gi"
  limits:
    memory: "2Gi"

# 업데이터 pod는 0.5 cpu와 512MiB의 메모리를 요청합니다. 메모리 한도 또한 설정되지 않았습니다.
updater:
  resources:
    requests:
      cpu: "0.5"
      memory: "512Mi"
    limits: ~

기타 업데이트 전용 값은 다음과 같습니다.

updater.enabled

유형기본값
boolfalse

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

  • Teleport Cloud를 사용하고 있으며, 귀하의 테넌트가 자동 업데이트에 등록되어 있습니다. (웹 UI에서 이를 확인할 수 있습니다. Kubernetes 추가를 선택한 다음 Kubernetes 유형의 새 리소스 등록을 클릭하여 이 값이 활성화되어 있는지 확인합니다.)
  • 자가 호스팅된 Teleport를 사용하며, 자체 버전 서버를 유지합니다.

이를 활성화해서는 안 되는 경우는 다음과 같습니다:

  • 자동 업데이트에 등록되지 않은 Teleport Cloud 고객입니다.
  • 자동 업데이트를 지원하기 위해 Teleport 클러스터를 설정하지 않은 자가 호스팅된 Teleport 사용자입니다.

updater.versionServer

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

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

업데이트를 활성화한 경우, 이를 설정해야 합니다. Teleport Cloud 사용자가 아니라면 필드를 설정해야 합니다.

기본값을 변경하면 자동 업데이트를 사용하는 Teleport Cloud 사용자그러면 안 됩니다.

updater.releaseChannel

유형기본값
string"stable/cloud"

updater.releaseChannel는 업데이트가 구독하는 릴리즈 채널입니다.

전체 버전 엔드포인트는 versionServerreleaseChannel를 결합하여 생성됩니다. 텔레포트를 지원합니다.

Teleport Cloud 고객인 경우 기본값을 변경하지 말아야 합니다. 지원을 받지 않으면 Teleport Cloud 사용자에게 지침을 제공해야 합니다.

릴리스 채널을 변경할 수 있는 경우는, 업데이트를 활성화한 경우와 Teleport Cloud 사용자가 아니며, 고유한 버전 서버를 관리하지 않는 경우입니다.

updater.image

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

updater.imageupdater.enabled가 참일 때 Teleport 업데이트 pod에서 사용하는 컨테이너 이미지를 설정합니다.

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는 업데이트 pod에 추가로 마운트할 볼륨을 포함합니다. Kubernetes 볼륨 문서를 참고하세요.

예를 들어:

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

updater.extraVolumeMounts

유형기본값
list[]

updater.extraVolumeMounts는 업데이트용 pod의 추가로 마운트할 볼륨입니다. Kubernetes 볼륨 문서를 참조하세요.

예를 들어:

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

existingDataVolume

유형기본값
string""

existingDataVolume/var/lib/teleport에 마운트할 기존 Kubernetes Persistent Volume의 이름입니다.

이 설정은 이전에 지속성이 활성화된 에이전트를 실행한 경우 새 에이전트를 재사용하기 위해 유용합니다.

podSecurityPolicy

podSecurityPolicy.enabled

유형기본값
booltrue

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

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

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

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

labels

유형기본값
object{}

labels는 Kubernetes 클러스터를 나타내는 Teleport 리소스에 적용될 키-값 쌍의 맵입니다. 이러한 레이블은 나중에 Teleport의 RBAC 정책에 사용되어 클러스터에 대한 액세스 규칙을 정의하는 데 사용될 수 있습니다. 이 값은 차트의 roleskube가 포함된 경우에만 사용됩니다.

Note

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

Note

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

애플리케이션의 레이블을 설정하려면 apps 섹션에 레이블 요소를 추가하세요. 데이터베이스의 레이블을 설정하려면 databases 섹션에 static_labels 요소를 추가하세요.

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

예시:

labels:
  environment: production
  region: us-east

highAvailability

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

가용성은 다음 방법으로 높일 수 있습니다:

  • replicaCount을 통해 더 많은 복제본을 실행합니다.
  • requireAntiAffinity를 통해 pod가 동일한 Kubernetes 노드에 스케줄되지 않도록 요구합니다.
  • podDisruptionBudget를 통해 Kubernetes가 모든 pod를 동시에 삭제하지 못하도록 요청합니다.

고가용성 설정을 통해도 롤아웃/ 재시작 중에 지속적인 긴 세션에 대한 방해가 발생할 수 있습니다. (예: kubectl exec또는 데이터베이스 셸)

highAvailability.replicaCount

유형기본값
int1

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

고가용성 모드를 위해 1보다 큰 숫자로 설정해야 합니다. 여러 Teleport pod가 배포됩니다.

크기 가이드라인

대략적으로, 추천은 클러스터에 작업자 노드가 있는 각 가용성 영역에 하나의 복제본을 구성하는 것입니다.

작은 워크로드의 경우 2 복제본/가용성 영역이 적합합니다. 더 큰 클러스터의 경우 3-5 복제본/가용성 영역이 더 적합할 수 있습니다.

새 복제본을 기존 에이전트에 추가할 때, 제공된 토큰은 여전히 유효해야 하며(각각 authToken, joinParams 또는 joinTokenSecret 중 하나로 제공됨), 각 복제본의 자체 아이덴티티가 있습니다. 상태가 설정된 클러스터에 가입해야 합니다.

highAvailability.requireAntiAffinity

유형기본값
boolfalse

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

Warning

이 설정은 매우 작은 클러스터나 노드의 다운타임 중에 Teleport pod가 스케줄링되지 않는 결과를 초래할 수 있으므로 주의해서 사용해야 합니다.

highAvailability.requireAntiAffinityfalse로 설정하면(기본값) preferredDuringSchedulingIgnoredDuringExecution을 사용하여 활성화하는 것을 우선적으로 요구합니다.

Note

이 설정은 highAvailability.replicaCount가 1보다 큰 경우에만 효과가 있습니다.

highAvailability.podDisruptionBudget

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

highAvailability.podDisruptionBudget.enabled

유형기본값
boolfalse

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

highAvailability.podDisruptionBudget.minAvailable

유형기본값
int1

highAvailability.podDisruptionBudget.minAvailable은 PodDisruptionBudget에 지정된 최소 가용 pod 수입니다.

podMonitor

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

podMonitor.enabled

유형기본값
boolfalse

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

podMonitor.additionalLabels

유형기본값
object{}

podMonitor.additionalLabels는 PodMonitor에 추가할 레이블을 추가합니다. 이는 특정 prometheus 인스턴스에 의해 선택될 수 있습니다.

예를 들어:

podMonitor:
  additionalLabels:
    prometheus: default

podMonitor.interval

유형기본값
string"30s"

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

storage

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

Teleport 12부터 에이전트는 재시작 시 아이덴티티를 유지하기 위해 Persistent Volume 저장소가 필요하지 않습니다: Kubernetes Secret에 저장합니다. 즉, teleport-kubernetes-agent는 일회성 및 단기 사용 가입 토큰을 사용하여도 아이덴티티와 비밀을 재시작 후에도 유지합니다.

저장소를 활성화하는 주요 이점은 Pod 종료 후 아직 업로드되지 않은 세션 녹화를 지속성 있게 유지하는 것입니다. 세션 녹화 모드가 동기화되지 않은 경우에 해당합니다.

storage.enabled

유형기본값
boolfalse

storage.enabled는 Teleport 인스턴스 상태를 유지하기 위해 Kubernetes 영속 볼륨을 생성합니다.

storage.storageClassName

유형기본값
string""

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

storage.requests

유형기본값
string"128Mi"

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

adminClusterRoleBinding

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

GKE Autopilot 클러스터는 임페르소네이션을 위해 system:masters 그룹을 사용하는 것을 금지하며 커스텀 그룹을 사용해야 합니다.

adminClusterRoleBinding.create

유형기본값
boolfalse

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

adminClusterRoleBinding.name

유형기본값
string"cluster-admin"

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

image

유형기본값
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 이미지를 기본으로 사용합니다. 더 이상 지원되지 않는 debian 기반 이미지를 사용하려면 값을 public.ecr.aws/gravitational/teleport로 설정하면 됩니다. 이러한 이미지는 teleport 15로 제거될 예정입니다.

이 설정은 enterprisefalse일 때만 적용됩니다. 엔터프라이즈 버전에서 이미지를 사용해야 하면 enterpriseImage를 사용해야 합니다.

enterpriseImage

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

enterpriseImage는 차트에 의해 생성된 Teleport Enterprise 에이전트 pod에서 사용하는 컨테이너 이미지를 설정합니다.

이 값을 사용하여 Teleport의 발행된 이미지보다 개인적으로 바라는 Teleport 이미지를 사용할 수 있습니다.

Teleport Kube Agent Updater와의 상호작용

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

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

13버전부터 하드닝된 distroless 이미지를 기본으로 사용합니다. 더 이상 지원되지 않는 debian 기반 이미지를 사용하려면 값을 public.ecr.aws/gravitational/teleport-ent로 설정하면 됩니다. 이러한 이미지는 teleport 15로 제거될 예정입니다.

이 설정은 enterprisetrue일 때만 적용됩니다. 엔터프라이즈 버전에서 이미지를 사용해야 하면 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 pod를 위해 생성하는 Role 리소스의 사용자 정의 이름을 제공하는 역할을 합니다. 기본적으로 Role은 Helm 릴리스의 이름을 갖습니다.

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

roleBindingName

유형기본값
string""

roleBindingNameteleport-kube-agent 차트가 Teleport pod를 위해 생성하는 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이면, 차트는 비밀을 생성하려고 시도하지 않습니다. 대신, 존재하는 비밀에서 값을 읽습니다. 이 비밀의 이름을 구성하여, 이를 외부에서 구성하고 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는 차트에 의해 생성된 pods의 친화성을 설정합니다. Kubernetes 문서를 참조하십시오.

dnsConfig

유형기본값
object{}

dnsConfig는 에이전트 pods의 사용자 지정 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는 차트에 의해 생성된 pods의 노드 선택기를 설정합니다. 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 Job에 설정할 레이블입니다.

extraLabels.pod

유형기본값
object{}

extraLabels.pod는 Deployment 또는 StatefulSet에 의해 생성된 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 hosts 파일 문서를 참조하십시오.

예를 들어:

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는 차트에 의해 생성된 pod에 대해 사용하는 풀 정책을 설정합니다. 자세한 정보는 Kubernetes 문서를 참조하십시오.

initContainers

유형기본값
list[]

initContainers는 Teleport Pod의 초기 컨테이너를 설정합니다. 자세한 정보는 Kubernetes 초기 컨테이너 문서를 참조하십시오.

예를 들어:

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

resources

유형기본값
object{}

resources는 차트에 의해 생성된 pods에 대한 자원 요청 및 제한을 설정합니다. 자세한 내용은 Kubernetes 문서를 참조하십시오.

initSecurityContext

유형기본값
object{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":9807,"seccompProfile":{"type":"RuntimeDefault"}}

initSecurityContext는 차트에 의해 생성된 pods의 초기 컨테이너 보안 컨텍스트를 설정합니다. 자세한 정보는 Kubernetes 문서를 참조하십시오.

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

보안 컨텍스트를 지우려면 null 또는 ~로 설정하면 됩니다.

securityContext

유형기본값
object{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":9807,"seccompProfile":{"type":"RuntimeDefault"}}

securityContext는 차트에 의해 생성된 pods의 컨테이너 보안 컨텍스트를 설정합니다. 상세한 정보는 Kubernetes 문서를 참조하십시오. netes documentation](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) 자세한 내용은 여기에서 확인하세요.

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

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

podSecurityContext

유형기본값
object{"fsGroup":9807}

podSecurityContext는 차트에 의해 생성된 모든 파드의 보안 컨텍스트를 설정합니다. 쿠버네티스 문서에서 자세한 내용을 확인하세요.

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

priorityClassName

유형기본값
string""

priorityClassName는 차트에 의해 생성된 모든 파드에서 사용되는 우선 순위 클래스를 설정합니다. 사용자는 차트를 배포하기 전에 PriorityClass 리소스를 생성할 책임이 있습니다. 쿠버네티스 문서에서 자세한 내용을 확인하세요.

tolerations

유형기본값
list[]

tolerations는 차트에 의해 생성된 모든 파드의 내성을 설정합니다. 쿠버네티스 문서에서 자세한 내용을 확인하세요.

probeTimeoutSeconds

유형기본값
int1

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

Teleport 원문 보기