이 문서에서는 경계 게이트웨이 프로토콜(BGP)을 지원하여 플랫 모드 네트워크 모델을 구현하는 방법을 설명합니다. BGP를 지원하는 네트워크 모델을 구현하면 BGP는 서로 다른 L2 도메인의 포드가 서로 통신할 수 있도록 동적으로 보장합니다.
플랫 모드 네트워크 모델에 대한 자세한 내용은 플랫 모드 및 아일랜드 모드 네트워크 모델 비교를 참조하세요.
BGP를 사용하는 플랫 모드 네트워크를 구현하는 방법
BGP를 지원하는 플랫 모드 네트워크 모델에서 클러스터를 구현하려면 클러스터의 cluster.yaml
파일을 다음과 같이 변경합니다.
- 클러스터 리소스에서
spec.clusterNetwork.advancedNetworking
필드를true
로 설정합니다. - 클러스터 리소스에서
spec.clusterNetwork.flatIPv4
필드를true
로 설정합니다. spec.clusterNetwork.flatIPv4
가true
로 설정되면spec.clusterNetwork.pods.cidrBlocks
필드는 무시되고 생략될 수 있습니다. 그러나 yaml 파일에서ClusterCIDRConfigs
섹션(노드별, 노드 풀별 또는 클러스터별)을 정의해야 합니다. 자세한 내용은 다음cluster.yaml
파일 예시를 참조하세요.NetworkGatewayGroup
리소스를cluster.yaml
파일에 추가하고 BGP 피어링에 사용할 유동 IP를 지정합니다. 이름이default
이고 네임스페이스가 클러스터 네임스페이스인지 확인합니다.FlatIPMode
및BGPPeer
리소스를cluster.yaml
파일에 추가합니다.FlatIPMode
리소스 이름은default
이어야 하며 모든 리소스는 클러스터 네임스페이스에 있어야 합니다.
미리보기의 경우 IPv4 BGP 피어와 세션만 지원됩니다. 하지만 환경에서 멀티프로토콜 BGP(MP-BGP)를 지원하면 IPv4 및 IPv6 경로를 통해 이러한 IPv4 세션을 공지할 수 있습니다. Anthos clusters on bare metal 버전 1.11.0에서는 IPv6 BGP 피어 구성이 지원되지 않습니다.
다음 cluster.yaml
파일 발췌문에서는 BGP를 지원하는 플랫 모드 네트워킹을 구현하는 방법을 보여줍니다. 이 발췌문에 표시된 IP 주소는 예시일 뿐이므로 고유한 IP 주소로 바꿔야 합니다.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: bm
namespace: cluster-bm
spec:
...
clusterNetwork:
advancedNetworking: true
flatIPv4: true
... (other cluster config omitted)
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
name: default
namespace: cluster-bm
spec:
floatingIPs:
- 10.0.1.100
- 10.0.2.100
....
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: FlatIPMode
metadata:
name: default
namespace: cluster-bm
spec:
enableBGPIPv4: true
enableBGPIPv6: false
peerSelector:
flatip-peer: "true"
....
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer1
namespace: cluster-bm
labels:
flatip-peer: "true"
spec:
localASN: 65001
peerASN: 65000
peerIP: 10.0.1.254
sessions: 2
....
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer2
namespace: cluster-bm
labels:
flatip-peer: "true"
spec:
localASN: 65001
peerASN: 65000
peerIP: 10.0.2.254
sessions: 2
....
apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
name: cluster-wide-1
namespace: cluster-bm
spec:
ipv4:
cidr: "192.168.0.0/16"
perNodeMaskSize: 24