6.4. 경로 광고 설정 예시
클러스터 관리자는 클러스터에 대한 다음 예제 경로 광고 설정을 구성할 수 있습니다. 이 구성은 경로 광고를 구성하는 방법을 보여주는 샘플입니다.
6.4.1. 샘플 경로 광고 설정 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 클러스터에 대한 BGP(Border Gateway Protocol) 라우팅 지원을 활성화할 수 있습니다. 이 구성은 경로 광고를 구성하는 방법을 보여주는 샘플입니다. 이 구성에서는 전체 메시 설정 대신 경로 반사를 사용합니다.
BGP 라우팅은 베어메탈 인프라에서만 지원됩니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. -
클러스터 관리자
권한이 있는 사용자로 클러스터에 로그인했습니다. - 클러스터는 베어메탈 인프라에 설치됩니다.
- FRR 데몬 컨테이너를 실행할 클러스터에 액세스할 수 있는 베어 메탈 시스템이 있습니다.
프로세스
다음 명령을 실행하여
RouteAdvertisements
기능 게이트가 활성화되었는지 확인하세요.oc get featuregate -oyaml | grep -i routeadvertisement
$ oc get featuregate -oyaml | grep -i routeadvertisement
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
- name: RouteAdvertisements
- name: RouteAdvertisements
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터 네트워크 운영자(CNO)를 구성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CNO가 모든 노드를 다시 시작하는 데 몇 분이 걸릴 수 있습니다.
다음 명령을 실행하여 노드의 IP 주소를 가져옵니다.
oc get node -owide
$ oc get node -owide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 각 노드의 기본 Pod 네트워크를 가져옵니다.
oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}
$ oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}
{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 베어 메탈 하이퍼바이저에서 다음 명령을 실행하여 사용할 외부 FRR 컨테이너의 IP 주소를 가져옵니다.
ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'
$ ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 각 노드의 IP 주소를 포함하는 FRR에 대한
frr.conf
파일을 만듭니다.frr.conf
구성 파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 포함하는
daemons
라는 파일을 만듭니다.데몬
구성 파일 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
frr.conf
와daemons
파일을 모두 같은 디렉토리(예:/tmp/frr)
에 저장합니다. 다음 명령을 실행하여 외부 FRR 컨테이너를 만듭니다.
sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0
$ sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
FRRConfiguration
및RouteAdvertisements
구성을 만듭니다.다음 내용을 포함하는
receive_all.yaml
파일을 만듭니다.receive_all.yaml
구성 파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 내용을 포함하는
ra.yaml
파일을 만듭니다.ra.yaml
구성 파일 예시Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여
receive_all.yaml
및ra.yaml
파일을 적용합니다.for f in receive_all.yaml ra.yaml; do oc apply -f $f; done
$ for f in receive_all.yaml ra.yaml; do oc apply -f $f; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
구성이 적용되었는지 확인하세요.
다음 명령을 실행하여
FRRConfiguration
구성이 생성되었는지 확인하세요.oc get frrconfiguration -A
$ oc get frrconfiguration -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
RouteAdvertisements
구성이 생성되었는지 확인하세요.oc get ra -A
$ oc get ra -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS default Accepted
NAME STATUS default Accepted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여 외부 FRR 컨테이너 ID를 가져옵니다.
sudo podman ps | grep frr
$ sudo podman ps | grep frr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frr
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 단계에서 얻은 컨테이너 ID를 사용하여 외부 FRR 컨테이너의
vtysh
세션에서 BGP 이웃과 경로를 확인합니다. 다음 명령을 실행합니다.sudo podman exec -it <container_id> vtysh -c "show ip bgp"
$ sudo podman exec -it <container_id> vtysh -c "show ip bgp"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 각 클러스터 노드의
frr-k8s
Pod를 찾으세요.oc -n openshift-frr-k8s get pod -owide
$ oc -n openshift-frr-k8s get pod -owide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 클러스터에서 다음 명령을 실행하여 FRR 컨테이너의 클러스터 노드
frr-k8s
Pod에서 BGP 경로를 확인합니다.oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
$ oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터 노드의 IP 경로를 확인하세요.
vtysh
sh-5.1# vtysh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 IP 경로를 확인하세요.
worker-2# show ip bgp
worker-2# show ip bgp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 클러스터에서 다음 명령을 실행하여 노드를 디버깅합니다.
oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 BGP 경로가 광고되는지 확인하세요.
ip route show | grep bgp
sh-5.1# ip route show | grep bgp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow