Calico Cloud 아키텍처
Calico Cloud는 멀티 클러스터 관리 기능을 기반으로 동작해요. 컨트롤 플레인은 Calico Cloud가 담당하고, 여러분의 클러스터를 managed cluster로 연결하는 구조입니다. 이 문서에서는 컨트롤 플레인과 managed cluster 사이의 통신이 어떻게 TLS 터널로 보호되는지, 그리고 managed cluster 안에 어떤 컴포넌트들이 도는지를 살펴봐요.
출처: 문서
본문
Calico Cloud 보안
Calico Cloud 아키텍처는 Calico Cloud의 멀티 클러스터 관리 기능을 기반으로 합니다. Calico Cloud가 컨트롤 플레인을 관리하고, 여러분은 클러스터(managed cluster라고 부릅니다)를 컨트롤 플레인에 연결해요. Calico Cloud 컨트롤 플레인과 managed cluster 사이의 통신은 TLS 터널로 보호됩니다.
Calico Cloud 컨트롤 플레인과 managed cluster 사이의 통신을 보호하는 컴포넌트는 다음과 같아요.
- Calico Cloud 터널 서버 - managed cluster에서 오는 보안 TLS 연결을 받아들입니다
- Guardian - 각 managed cluster에서 실행되는 에이전트로, Calico Cloud 컴포넌트와 managed cluster 컴포넌트 사이의 통신을 프록시합니다
모든 연결은 Calico Cloud 터널 서버와 Guardian을 통과해요. 유일한 예외는 설치와 업그레이드 시점으로, 이때는 managed cluster가 TLS 연결로 Calico Cloud에 접속해 설치/업데이트 리소스를 받아오고, 클러스터를 등록하고, 설치/업데이트 상태를 보고합니다.
Calico Cloud 터널은 managed cluster 쪽의 Guardian이 시작합니다. Calico Cloud 컨트롤 플레인은 터널 밖에서 managed cluster로 새 연결을 시작하지 않아요. 다만 컨트롤 플레인에서 시작해 Calico Cloud 터널 서버를 통과하는 연결은 있습니다. 예를 들어 사용자가 웹 콘솔을 사용할 때나, 설정을 managed cluster에 푸시해야 할 때가 그렇습니다.
Managed cluster 컴포넌트
다음 다이어그램은 managed cluster의 주요 컴포넌트를 보여주고, 이어서 각 컴포넌트를 설명합니다.

| 컴포넌트 | 설명 | 포트/프로토콜 |
|---|---|---|
| Calico Cloud controller | Calico Cloud에 필요한 리소스를 배포합니다. | TCP 6443 to Kubernetes API server |
| Calico Cloud installer | Calico Cloud 포털에서 설치 리소스를 받아오고, managed cluster를 등록하며, 설치 또는 업그레이드 진행 상황을 보고합니다. | • TCP 443 to Calico Cloud hosted service • TCP 6443 to Kubernetes API server |
| Calico Cloud 터널 서버 | 보안 TLS 터널을 만들어 managed cluster와 통신합니다. | Port 9000 from managed clusters |
| calico-node | Calico Cloud로 컨테이너 네트워킹에 필요한 핵심 컴포넌트를 묶어 담고 있어요: • Felix • BIRD • confd | • TCP 5473 to Typha • TCP 9900 and 9081 from Prometheus API service |
| Compliance | Kubernetes 클러스터의 컴플라이언스 리포트를 생성합니다. 리포트는 Calico Cloud 리소스의 보관된 flow/audit 로그와, Kubernetes API 서버에서 Kubernetes 리소스에 대해 설정한 audit 로그를 기반으로 해요. 컴플라이언스 리포트는 다음과 같은 상위 수준 정보를 제공합니다: • ingress 또는 egress 정책으로 명시적으로 보호되는 엔드포인트 • 정책과 서비스 - 엔드포인트에 연관된 정책과 서비스 - 정책 audit 로그 • 트래픽 - 네임스페이스와 인터넷 사이의 허용된 ingress/egress 트래픽 Compliance는 다음 컴포넌트를 포함합니다: compliance-snapshotter 필요한 Kubernetes와 Calico Cloud 설정을 나열하고 스냅샷을 Elasticsearch로 푸시합니다. 스냅샷을 보면 설정 변경과 클러스터 전체 설정이 리포팅 구간 동안 어떻게 변했는지 확인할 수 있어요. compliance-reporter 리포트 생성을 담당합니다. Elasticsearch에서 설정 히스토리를 읽고, 정책·엔드포인트·서비스·network set 사이의 관계를 포함한 클러스터 전체 설정의 시간 변화를 파악합니다. 이어서 데이터를 zero-trust aggregator에 통과시켜 리포팅 구간의 "worst-case outliers"를 결정해요. compliance-controller 리포트 설정을 읽고 리포트 생성 작업의 생성·삭제·모니터링을 관리합니다. compliance-benchmarker 각 노드에서 CIS Kubernetes Benchmark 검사를 수행하는 daemonset으로, Kubernetes가 안전하게 배포됐는지 확인할 수 있게 해줍니다. | • TCP 8080 to Guardian • TCP 6443 to Kubernetes API server |
| Fluentd | 통합 로깅을 위한 오픈소스 데이터 수집기예요. Calico Cloud 로그(flow, DNS, L7)를 수집해 로그 스토리지로 전달합니다. | • TCP 8080 to Guardian • TCP 9080 from Prometheus API service |
| Guardian | 각 managed cluster에서 실행되는 에이전트로, Calico Cloud 터널 서버와 여러분의 managed cluster 사이의 통신을 프록시합니다. TLS 터널로 보호돼요. | • Port 9000 to tunnel server • TCP 6443 to Kubernetes API server • TCP 6443 from Calico Cloud components |
| 설치 엔드포인트 | *.calicocloud.io와 *.projectcalico.org의 엔드포인트. |
TCP 443 for both |
| Intrusion detection controller | 위협 인텔리전스 피드와 Calico Cloud 커스텀 알림과의 통합을 담당합니다. | • TCP 8080 to Guardian • TCP 6443 to Kubernetes API server |
| Kubernetes API server | API 객체(예: pod, service 등)의 데이터를 검증하고 설정하는 Kubernetes 컴포넌트예요. | TCP 6443 (from all components) |
| kube-controllers | Kubernetes API를 감시하고 클러스터 상태에 따라 동작을 수행합니다. Calico Cloud kube-controllers 컨테이너에는 다음 컨트롤러가 들어 있어요: • Node • Service • Federated services • Authorization | • TCP 9094 from Prometheus API service • TCP 6443 to Kubernetes API server |
| Log storage | 로그(flow, L7, DNS, audit)를 저장합니다. managed cluster별 데이터는 격리되어 허가되지 않은 접근으로부터 보호돼요. | n/a |
| Packet capture API | 패킷 캡처가 생성한 캡처 파일(pcap 형식)을 조회합니다. Wireshark 같은 네트워크 프로토콜 분석 도구에서 쓸 수 있어요. 패킷 캡처 데이터는 웹 콘솔과 Service Graph에서 볼 수 있습니다. | • TCP 8449 Guardian to Packet Capture API • TCP 6443 to Kubernetes API server |
| Prometheus API service | Calico Cloud 컴포넌트에서 메트릭을 수집해 웹 콘솔에서 쓸 수 있게 만듭니다. | • TCP 6443 to Kubernetes API server • TCP 9080 to Fluentd • TCP 9900 and 9081 to Prometheus API service |
| Tigera API server | kubectl이나 Kubernetes API 서버를 통해 정책, 티어 같은 Calico Cloud 리소스를 관리할 수 있게 해줍니다. | • TCP 9095 to Prometheus API service • TCP 8080 from Kubernetes API server |
| Typha | 각 노드가 데이터스토어에 주는 영향을 줄여서 확장성을 높입니다. | TCP 5473 from calico-node to Typha |
| 웹 콘솔 사용자 접근 | 인증된 사용자는 브라우저 기반 웹 콘솔에 접근할 수 있어요. 웹 콘솔은 네트워크 트래픽 가시성과 문제 해결, 중앙화된 멀티 클러스터 관리, 위협 방어, 정책 수명 주기 관리, 그리고 여러 역할/이해관계자를 위한 컴플라이언스 기능을 제공합니다. | Port 443 to Calico Cloud tunnel server |
더 알아보기 (Learn more)
managed cluster를 컨트롤 플레인에 연결하는 절차와 설치 요구 사항이 궁금하면 아래 문서를 함께 보세요. 컴포넌트 표의 포트/프로토콜은 방화벽·네트워크 정책 설계에 바로 쓸 수 있어요.