Infograb logo
Kubernetes 애플리케이션 발견 참조

Teleport 에이전트 Helm 차트 구성

Helm 차트의 kubernetesDiscovery 값을 설정하여 서비스 발견의 범위를 구성할 수 있습니다. 자세한 내용은 헬름 차트 문서를 참조하십시오.

values.yaml 예시:

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

Kubernetes 앱 발견 수동 구성

teleport-kube-agent Helm 차트가 자동으로 구성해 주지만, 필수 서비스를 수동으로 구성할 수도 있습니다. 이를 위해서는 Teleport 애플리케이션 서비스와 Teleport 발견 서비스의 구성 파일을 조정한 후, 해당 서비스를 실행하고 있는 에이전트를 다시 시작하십시오.

발견 서비스의 구성은 kubernetes 필드에 의해 제어되며, 예시는 다음과 같습니다:

# 이 섹션은 발견 서비스를 구성합니다
discovery_service:
  enabled: yes
  discovery_group: main-cluster
  kubernetes:
  - types: ["app"]
    namespaces: [ "toronto", "porto" ]
    labels:
      env: staging
  - types: ["app"]
    namespaces: [ "seattle", "oakland" ]
    labels:
      env: testing

애플리케이션 서비스의 구성은 resources 필드에 의해 제어되며, 예시는 다음과 같습니다:

app_service:
  enabled: yes
  resources:
  - labels:
    "teleport.dev/kubernetes-cluster": "main-cluster"
    "teleport.dev/origin": "discovery-kubernetes"

레이블 teleport.dev/kubernetes-cluster는 발견 서비스 구성의 discovery_group 필드 값과 일치해야 합니다.

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

주석

Kubernetes 서비스의 주석은 서비스를 앱으로 변환하는 세부 조정을 하는 데 사용될 수 있습니다. 모든 주석은 선택 사항이며, 기본 동작을 재정의하지만 서비스의 가져오기에 필요하지 않습니다.

teleport.dev/discovery-type

이 서비스가 어떤 유형으로 간주되는지를 제어합니다. 주석이 없으면, 기본적으로 모든 서비스는 "app" 유형으로 간주됩니다. 발견 서비스의 구성에서 일치하는 서비스 유형이 있으면 가져오기가 진행됩니다. 현재 지원되는 값은 app이며, 이는 Teleport 애플리케이션이 이 서비스에서 가져올 것임을 의미합니다. 향후 데이터베이스 가져오기로 확장할 계획이 있습니다.

teleport.dev/protocol

우리가 생성하는 Teleport 앱의 URI 프로토콜을 제어합니다. 주석이 설정되지 않으면, 노출된 포트의 프로토콜을 결정하기 위해 휴리스틱이 사용됩니다. 모든 휴리스틱이 작동하지 않으면 포트는 건너뜁니다. tcp 프로토콜로 가져오려면, 서비스는 명시적인 주석 teleport.dev/protocol: "tcp"를 가져야 합니다.

teleport.dev/port

Kubernetes 서비스에 대한 선호 포트를 제어하며, 서비스가 여러 노출된 포트를 가지고 있더라도 오직 이 포트만 사용됩니다. 값은 노출된 서비스 포트 중 하나여야 하며, 그렇지 않으면 앱이 가져오지지 않습니다. 값은 숫자 값 또는 서비스에서 정의된 포트의 이름으로 일치할 수 있습니다.

teleport.dev/name

결과 앱 이름을 제어합니다. 존재할 경우 기본 앱 이름 패턴 $SERVICE_NAME-$NAMESPACE-$KUBE_CLUSTER_NAME을 재정의합니다. 여러 포트가 노출된 경우, 결과 앱에는 주석 값에 포트 이름이 접미사로 추가됩니다. 예를 들어, $APP_NAME-$PORT1_NAME, $APP_NAME-$PORT2_NAME 등으로 나타나며, 여기서 $APP_NAME은 주석에 의해 설정된 이름입니다.

teleport.dev/insecure-skip-verify

이 앱에 대해 TLS 인증서 검증을 건너뛸지를 제어합니다. 존재하고 true로 설정될 경우 TLS 인증서 검증이 건너뛰어집니다.

annotations:
  teleport.dev/insecure-skip-verify: "true"

teleport.dev/ignore

이 서비스가 발견 서비스에 의해 무시되어야 하는지를 제어합니다. 이 주석은 발견 서비스 구성과 일치할 때, 앱으로 가져오지 않으려는 서비스를 제외할 때 유용합니다. 예를 들어, 가져오고자 하는 앱과 동일한 레이블을 가진 서비스를 제외하려는 경우 사용할 수 있습니다.

annotations:
  teleport.dev/ignore: "true"

teleport.dev/app-rewrite

필요한 경우 Teleport 앱의 재작성 구성을 제어합니다. YAML 형식의 전체 재작성 구성을 포함해야 하며, 동적 등록 구문으로 앱을 구성할 때 사용하는 것과 동일합니다. (자세한 내용은 문서를 참조하십시오).

annotations:
  teleport.dev/app-rewrite: |
    redirect:
    - "localhost"
    - "jenkins.internal.dev"
    headers:
    - name: "X-Custom-Header"
      value: "example"
    - name: "Authorization"
      value: "Bearer {{internal.jwt}}"
Teleport 원문 보기