Teleport는 Kubernetes 클러스터에서 실행 중인 애플리케이션을 자동으로 감지하고 이를 Teleport 클러스터에 등록할 수 있습니다. 이 설정에서는 Kubernetes 호스팅 인프라를 가진 사용자가 배포하는 새로운 애플리케이션에 대해 초기 설정 단계 이외의 수동 개입 없이 안전한 접근을 구성할 수 있습니다.
이 가이드에서는 Kubernetes 애플리케이션 자동 검색을 활성화하는 방법을 보여줍니다.
전제 조건
-
실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.
-
tctl
관리 도구와tsh
클라이언트 도구.tctl
과tsh
다운로드에 대한 지침은 설치를 방문하세요.
-
Kubernetes 클러스터 버전 >= v1.17.0
-
Helm >= 3.4.2
Helm과 Kubernetes가 설치되어 있고 최신 상태인지 확인하세요.
helm versionversion.BuildInfo{Version:"v3.4.2"}
kubectl version클라이언트 버전: version.Info{Major:"1", Minor:"17+"}
서버 버전: version.Info{Major:"1", Minor:"17+"}
-
당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오.예를 들어:
tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
클러스터에 연결하고
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다.자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로
tctl
명령어를 실행할 수도 있습니다.
단계 1/2. 조인 토큰 생성
Teleport Kubernetes 서비스, 애플리케이션 서비스 및 검색 서비스를 실행할 새로운 Teleport 에이전트에 대한 조인 토큰을 생성합니다:
tctl tokens add --type=kube,app,discovery
기본적으로 discovery
역할을 활성화하면 Kubernetes 서비스의 검색과 Teleport 애플리케이션의 등록이 자동으로 시작됩니다. 차트에서 app
역할을 활성화하면 발견된 Kubernetes 서비스에서 생성된 모든 새로운 Teleport 애플리케이션을 프록시하는 프로세스가 시작됩니다.
단계 2/2. 에이전트 배포
Kubernetes 클러스터에 새로운 Teleport 에이전트를 설치하려면 teleport-kube-agent
Helm 차트를 사용할 수 있습니다. 이미 Teleport 에이전트가 설치되어 있는 경우, 아래와 같이 역할에 kube
, app
및 discovery
를 추가하여 Kubernetes 애플리케이션 검색을 활성화할 수 있습니다.
구성된 서비스를 실행하는 새로운 Teleport 에이전트를 배포하려면 teleport-kube-agent
Helm 차트를 설치합니다:
helm install teleport-agent teleport/teleport-kube-agent \ --set roles=kube\,app\,discovery \ --set kubeClusterName=main-cluster \ --set proxyAddr=proxy-address \ --set authToken=token \ --create-namespace \ --namespace=teleport
기존의 teleport-kube-agent
설치가 있고 Kubernetes 애플리케이션 검색을 활성화하려면 기존 설치 역할을 업데이트하여 kube
, app
, 및 discovery
역할을 포함해야 합니다:
helm upgrade teleport-agent teleport/teleport-kube-agent \ --reuse-values \ --set roles=kube\,app\,discovery \ --set authToken=token \ --namespace=teleport
문제 해결
먼저, Teleport 검색, 애플리케이션 및 Kubernetes 서비스에 대한 모든 예상 에이전트가 실행 중인지 확인하세요. 그들을 위해 생성한 토큰은 필요한 역할을 가지고 있어야 합니다.
에이전트가 실행 중이지만 예상되는 애플리케이션이 Teleport에 나타나지 않는 경우, 두 가지 주요 이유가 있을 수 있습니다:
- Teleport 검색 서비스가 관련 Kubernetes 서비스를 찾을 수 없습니다.
- Teleport 애플리케이션 서비스가 발견된 애플리케이션을 프록시할 수 없습니다.
검색 서비스가 실행되는 Kubernetes 서비스 계정이 클러스터의 서비스를 나열할 수 있는 충분한 권한을 가지고 있는지 확인하세요. 또한 레이블 및 네임스페이스 구성이 올바른지 확인하세요.
애플리케이션 서비스의 경우, resources
필드의 레이블이 올바르게 정의되어 있는지 확인하고, 특히 레이블 teleport.dev/kubernetes-cluster
가 Kubernetes 클러스터에서 실행 중인 Discovery 서비스의 discovery_group
필드와 일치하는지 확인하세요.
다음 단계
검색 서비스의 범위를 구성할 수 있습니다. 자세한 내용은 teleport-kube-agent
Helm 차트 문서를 참조하세요.