본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Typha를 잘 알려진 노드에 스케줄링하기

원문 보기 위키 갱신

큰 그림

Typha를 잘 알려진(well-known) 노드에 스케줄링해요.

이 기능의 가치

Typha를 잘 알려진 노드에 스케줄링하면, Typha의 리슨 포트를 노출하는 노드 수를 줄일 수 있어요.

개념

Typha

Typha는 확장성을 높이고 대규모 클러스터가 쿠버네티스 API에 주는 부하를 줄여 주는 Calico 컴포넌트예요. Typha 에이전트는 고정 포트에서 다른 에이전트의 연결을 받아야 해요.

Calico 부트스트랩 인프라의 일부라서, Typha는 파드 네트워킹이 시작되기 전에 사용 가능해야 하고 대신 호스트 네트워킹을 사용해요. 스케줄된 노드에서 포트를 열어요. 기본적으로 어느 노드에든 스케줄될 수 있고 TCP 5473을 열어요.

방법

Typha가 설치되어 있는지 확인하기

Tab: Operator

operator 기반 설치에는 항상 Typha가 포함돼요.

Tab: Manifest

kube-system 네임스페이스에 calico-typha 디플로이먼트가 있는지 확인해요.

kubectl get deployment -n kube-system calico-typha

Typha를 잘 알려진 노드에 스케줄링하기

Tab: Operator

Installation API를 사용해서 Typha 파드의 노드 어피니티(node affinity)를 설정할 수 있어요. operator는 preferredDuringSchedulingIgnoredDuringExecution과 requiredDuringSchedulingIgnoredDuringExecution 옵션을 모두 지원해요.

예를 들어 "typha=allowed" 라벨이 붙은 노드에 Typha를 반드시 배치하도록 스케줄러에 요구하려면:

kind: Installation
apiVersion: operator.tigera.io/v1
metadata:
  name: default
spec:
  typhaAffinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - matchExpressions:
     	- key: typha
          operator: In
          values:
          - allowed

Tab: Manifest

scheduling Typha to well-known nodes 문서를 참고하세요.

출처: Schedule Typha for scaling to well-known nodes

본문

더 알아보기 (Learn more)

Typha는 각 노드가 데이터스토어에 주는 부하를 줄여 주는 컴포넌트인데, 기본으로 어느 노드에든 스케줄되어 TCP 5473을 열어요. 잘 알려진 노드로 몰아 두면 이 포트를 노출하는 노드 수가 줄어들어요. operator 설치에서는 Installation API의 typhaAffinity로 어피니티를 지정해요.