이 문서에서는 고가용성(HA) 관리자 클러스터 및 HA 사용자 클러스터 2개에 IP 주소를 할당하는 방법의 예시를 보여줍니다.
시작하기 전에
관리자 클러스터, 사용자 클러스터, 고가용성에 대한 자세한 내용은 배포 모델 선택을 참조하세요.
IP 주소 할당의 예시
이 섹션에서는 다음 요소를 포함하는 설치에 IP 주소를 할당하는 방법의 예시를 보여줍니다.
클러스터 노드의 IP 주소
포드의 IP 주소
서비스의 클러스터 IP 주소
컨트롤 플레인 및 인그레스 프록시의 가상 IP 주소(VIP)
서비스의 외부 IP 주소로 사용되는 VIP
관리자 클러스터 노드
이 예시의 관리자 클러스터에는 3개의 노드가 있습니다. 각 노드에서 컨트롤 플레인 구성요소를 실행합니다.
사용자 클러스터 노드
이 예시에서 각 사용자 클러스터에는 6개의 노드 즉, 3개의 컨트롤 플레인 노드와 3개의 워커 노드가 있습니다.
부하 분산
이 예시에서는 클러스터가 번들 MetalLB 부하 분산기를 사용한다고 가정합니다. 이 부하 분산기는 클러스터 노드에서 실행되므로 부하 분산에 추가 머신이 필요하지 않습니다.
서브넷
이 예시에서는 각 클러스터가 자체 Layer 2 도메인에 있고 클러스터가 다음 서브넷에 있다고 가정합니다.
클러스터 | 서브넷 | 기본 게이트웨이 |
---|---|---|
관리자 클러스터 | 172.16.20.0/24 | 172.16.20.1 |
사용자 클러스터 1 | 172.16.21.0/24 | 172.16.21.1 |
사용자 클러스터 2 | 172.16.22.0/24 | 172.16.22.1 |
다음 다이어그램에서는 서브넷 3개를 보여줍니다. VIP는 클러스터의 특정 노드와 연결된 것으로 표시되지 않습니다. 이는 MetalLB 부하 분산기가 개별 서비스의 VIP를 공지하는 노드를 선택할 수 있기 때문입니다. 예를 들어 사용자 클러스터 1에서 한 노드는 172.16.21.52를, 다른 노드는 172.16.21.53을 공지할 수 있습니다.
IP 주소 예시: 관리자 클러스터 노드
컨트롤 플레인 구성요소를 실행하는 모든 관리자 클러스터 노드에 대한 IP 주소 3개가 필요합니다. 예를 들어 관리자 클러스터에서 다음과 같은 노드의 IP 주소를 사용할 수 있습니다. 이 예시에서는 주소가 연속적이지만 이는 요구사항이 아닙니다.
관리자 클러스터의 노드 IP 주소 |
---|
172.16.20.2 - 172.16.20.4 |
IP 주소 예시: 관리자 클러스터의 컨트롤 플레인 VIP
관리자 클러스터의 Kubernetes API 서버에 VIP를 따로 설정해야 합니다.
클러스터 구성 파일에서는 이 파일을 controlPlaneVIP
라고 부릅니다.
예를 들어 관리자 클러스터의 컨트롤 플레인 VIP로 사용할 다음 IP 주소를 따로 설정할 수 있습니다.
관리자 클러스터의 컨트롤 플레인 VIP |
---|
172.16.20.50 |
IP 주소 예시: 사용자 클러스터 1 노드
예를 들어 사용자 클러스터 1의 컨트롤 플레인 노드 3개와 워커 노드 3개에 다음 IP 주소를 사용할 수 있습니다. 이 예시에서는 주소가 연속적이지만 이는 요구사항이 아닙니다.
사용자 클러스터 1의 노드 IP 주소 |
---|
172.16.21.2 - 172.16.21.7 |
IP 주소 예시: 사용자 클러스터 1의 VIP
다음 표에서는 사용자 클러스터 1의 부하 분산기에서 구성할 VIP를 지정하는 방법의 예시를 보여줍니다. 이 예시에서는 VIP가 연속적이지만 이는 요구사항이 아닙니다.
VIP | 설명 | IP 주소 |
---|---|---|
사용자 클러스터 1의 컨트롤 플레인 VIP | 사용자 클러스터 1의 부하 분산기에서 구성됨 | 172.16.21.50 |
사용자 클러스터 1의 인그레스 VIP | 사용자 클러스터 1의 부하 분산기에서 구성됨 | 172.16.21.51 |
사용자 클러스터 1의 서비스 VIP | LoadBalancer 유형의 서비스에 대한 10개 주소입니다.필요에 따라 사용자 클러스터 1의 부하 분산기에서 구성됩니다. 이 범위에는 인그레스 VIP가 포함됩니다. MetalLB 분산기의 요구사항입니다. |
172.16.21.51 - 172.16.21.60 |
IP 주소 예시: 사용자 클러스터 2 노드
예를 들어 사용자 클러스터 2의 노드에 다음 IP 주소를 사용할 수 있습니다. 이 예시에서는 주소가 연속적이지만 이는 요구사항이 아닙니다.
사용자 클러스터 2의 노드 IP 주소 |
---|
172.16.22.2 - 172.16.22.7 |
IP 주소 예시: 사용자 클러스터 2의 VIP
다음 표에서는 사용자 클러스터 2의 부하 분산기에서 구성할 VIP를 지정하는 방법의 예시를 보여줍니다. 이 예시에서는 VIP가 연속적이지만 이는 요구사항이 아닙니다.
VIP | 설명 | IP 주소 |
---|---|---|
사용자 클러스터 2의 컨트롤 플레인 VIP | 사용자 클러스터 2의 부하 분산기에서 구성됨 | 172.16.22.50 |
사용자 클러스터 2의 인그레스 VIP | 사용자 클러스터 2의 부하 분산기에서 구성됨 | 172.16.22.51 |
사용자 클러스터 2의 서비스 VIP | LoadBalancer 유형의 서비스에 대한 10개 주소입니다.필요에 따라 사용자 클러스터 2의 부하 분산기에서 구성됩니다. 이 범위에는 인그레스 VIP가 포함됩니다. MetalLB 부하 분산기의 요구사항입니다. |
172.16.22.51 - 172.16.22.60 |
IP 주소 예시: 포드 및 서비스
클러스터를 만들기 전에 포드 IP 주소에 사용할 CIDR 범위와 Kubernetes 서비스의 ClusterIP
주소에 사용할 다른 CIDR 범위를 지정해야 합니다.
포드 및 서비스에 사용할 CIDR 범위를 결정합니다. 예를 들면 다음과 같습니다.
목적 | CIDR 범위 |
---|---|
관리자 클러스터의 포드 | 192.168.0.0/16 |
사용자 클러스터 1의 포드 | 192.168.0.0/16 |
사용자 클러스터 2의 포드 | 192.168.0.0/16 |
관리자 클러스터의 서비스 | 10.96.0.0/20 |
사용자 클러스터 1의 서비스 | 10.96.0.0/20 |
사용자 클러스터 2의 서비스 | 10.96.0.0/20 |
앞의 예시는 다음과 같은 사항을 보여줍니다.
포드 CIDR 범위는 기본 섬(island) 모드 네트워크 모델의 여러 클러스터에서 동일할 수 있습니다. 플랫 모드 네트워크에서는 포드가 모든 클러스터에서 고유한 IP 주소를 가져야 합니다. 포드에 영향을 미치는 네트워크 모델에 대한 자세한 내용은 플랫 모드와 섬(island) 모드 네트워크 모델 비교를 참조하세요.
서비스 CIDR 범위는 여러 클러스터에서 동일할 수 있습니다.
일반적으로 서비스보다 더 많은 포드가 필요하므로 특정 클러스터의 경우 서비스 CIDR 범위보다 큰 포드 CIDR 범위가 필요할 수 있습니다. 사용자 클러스터의 예시 포드 범위는 192.168.0.0/16이고, 여기에는 2^(32-16) = 2^16개의 주소가 있습니다. 하지만 사용자 클러스터의 예시 서비스 범위는 10.96.0.0/20이며, 여기에는 주소가 2^(32-20) = 2^12개만 있습니다.
겹침 방지
CIDR 범위가 네트워크에서 연결할 수 있는 IP 주소와 겹치지 않도록 주의하세요. 서비스 범위와 포드 범위는 클러스터 내부에서 연결하려는 클러스터 외부의 주소와 겹치지 않아야 합니다.
예를 들어 서비스 범위가 10.96.0.0/20이고 포드 범위가 192.168.0.0/16이라고 가정해 보겠습니다. 포드에서 이러한 범위 중 하나의 주소로 전송되는 트래픽은 클러스터 내 트래픽으로 처리되며 클러스터 외부의 대상에 도달하지 않습니다.
특히 서비스 범위와 포드 범위는 다음과 겹치지 않아야 합니다.
모든 클러스터에 있는 노드의 IP 주소
부하 분산기 머신에서 사용하는 IP 주소
컨트롤 플레인 노드 및 부하 분산기에서 사용하는 VIP
DNS 서버 및 NTP 서버의 IP 주소
서비스 및 포드 범위는 RFC 1918 비공개 주소 공간에 있는 것이 좋습니다.
다음은 RFC 1918 주소를 사용을 권장하는 이유입니다. 포드 또는 서비스 범위에 외부 IP 주소가 포함되어 있다고 가정해보세요. 포드에서 이러한 외부 주소 중 하나로 전송되는 모든 트래픽은 클러스터 내 트래픽으로 취급되며 외부 대상에 도달하지 않습니다.
IP 주소 할당 변형
이 문서에 제공된 예시에서는 특정 유형의 설치에 IP 주소를 할당하는 한 가지 방법을 보여줍니다. 하지만 Google Distributed Cloud를 설치할 수 있는 방법에는 여러 가지가 있으며 선택한 변형에 따라 IP 주소를 계획하는 방법이 달라집니다.
예를 들어 HA 외 클러스터를 사용하거나 클러스터 노드가 여러 Layer 2 도메인에 분산되도록 할 수 있습니다. 섬(island) 모드 네트워크 대신 플랫 모드 네트워크를 사용할 수도 있습니다.
여러 종류의 설치를 위해 클러스터 구성 파일에서 IP 주소를 지정하는 방법의 예시는 클러스터 구성 샘플을 참조하세요.
다양한 설치 유형에 따라 IP 주소를 계획하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.
플랫 모드와 섬(island) 모드 네트워크 모델 비교
플랫 모드에서 포드에는 2개 이상의 클러스터에서 고유한 주소가 있습니다. 포드 CIDR 범위를 적절하게 조정합니다.
-
노드, 포드, 서비스에는 IPv4 주소와 IPv6 주소가 모두 있습니다. IPv6 네트워크는 플랫 모드이지만 IPv4 네트워크는 섬(island) 모드나 플랫 모드일 수 있습니다. 플랫 모드 네트워크의 경우 포드 연결 가능성을 준비해야 합니다.
-
포드 연결 가능성을 준비해야 합니다. 포드 범위와 노드 범위 하위 집합을 더 큰 범위로 만듭니다.
-
클러스터의 BGP 스피커에 유동 IP 주소가 필요하며 피어 라우터의 IP 주소를 지정해야 합니다.
-
클러스터의 BGP 스피커에 유동 IP 주소가 필요하며 피어 라우터의 IP 주소를 지정해야 합니다.
Network Connectivity Gateway 구성
피어 IP 주소와 로컬 터널 IP 주소를 지정해야 합니다.