설명
Tiller Service가 실행 중인 Tiller를 가리키면 클러스터 내부에 Helm 2 관리 엔드포인트로 향하는 경로가 남습니다. 백엔드가 없으면 Service만으로 Tiller 작업을 수행할 수는 없지만, 사용하지 않는 구성은 정리해야 합니다.
Helm 2는 지원이 종료되었습니다. 이전을 마친 뒤 Service와 서버 구성요소를 함께 제거하세요. Service 삭제만으로 Pod 주소나 포트 전달을 통한 직접 접근이 차단되지는 않습니다.
잠재적 영향
- Tiller가 실행 중이고 인증이 부족하면 다른 워크로드가 해당 서비스 계정의 권한을 악용할 수 있습니다.
- 남은 관리 구성과 권한은 운영자가 실제 배포 경로를 파악하기 어렵게 만듭니다.
해결 방법
- 필요한 릴리스와 애플리케이션이 새 배포 방식에서 유지되는지 먼저 확인하세요.
- 사용하지 않는 Tiller Service와 Deployment를 제거하고 전용 서비스 계정 및 불필요한 권한 바인딩을 정리하세요.
- 백엔드와 직접 접근 경로까지 확인하고 필요한 서비스 동작을 시험하세요.
예시
첫 예시는 Tiller로 연결하는 Service이고 두 번째는 별도의 일반 Service입니다. 두 번째 구성을 추가하는 것은 기존 Tiller Service의 삭제 절차가 아닙니다.
변경 전
yaml
apiVersion: v1
kind: Service
metadata:
name: tiller-deploy
labels:
app: helm
name: tiller
spec:
type: ClusterIP
selector:
app: helm
name: tiller
ports:
- name: tiller
port: 44134
targetPort: tiller
selector와 일치하는 Pod에 이름이 tiller인 포트가 있으면 해당 백엔드로 트래픽을 전달할 수 있습니다. 실제 백엔드와 인증 설정을 확인해야 합니다.
변경 후
yaml
apiVersion: v1
kind: Service
metadata:
name: some-service
labels:
name: some-label
spec:
ports:
- protocol: TCP
port: 80
targetPort: 9376
일반 Service의 발췌이며 selector가 없습니다. 이 형태는 별도의 EndpointSlice 관리 등이 필요하고, 다른 위치에 Tiller가 남아 있지 않다는 의미도 아닙니다.