4.2.9. 보조 네트워크를 사용하여 MetalLB 구성
OpenShift Container Platform 4.14에서 기본 네트워크 동작은 네트워크 인터페이스 간에 IP 패킷 전달을 허용하지 않는 것입니다. 따라서 보조 인터페이스에 MetalLB를 구성할 때 필요한 인터페이스에 대해서만 IP 전달을 활성화하려면 머신 구성을 추가해야 합니다.
4.13에서 업그레이드된 OpenShift Container Platform 클러스터는 글로벌 IP 전달을 활성화하기 위해 업그레이드 중에 글로벌 매개변수가 설정되어 있으므로 영향을 받지 않습니다.
보조 인터페이스에 대한 IP 전달을 활성화하려면 다음 두 가지 옵션이 있습니다.
- 특정 인터페이스에 대해 IP 전달을 활성화합니다.
모든 인터페이스에 대해 IP 전달을 활성화합니다.
참고특정 인터페이스에 대해 IP 전달을 활성화하면 보다 세분화된 제어를 제공하는 동시에 모든 인터페이스에 대해 활성화하면 글로벌 설정이 적용됩니다.
4.2.9.1. 특정 인터페이스에 대한 IP 전달 활성화 링크 복사링크가 클립보드에 복사되었습니다!
프로세스
다음 명령을 실행하여 Cluster Network Operator를 패치하여
routingViaHost매개변수를true로 설정합니다.$ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig": {"routingViaHost": true} }}}}' --type=mergeMachineConfigCR을 생성하고 적용하여bridge-net과 같은 특정 보조 인터페이스에 대한 전달을 활성화합니다.Base64-로컬 시스템에서 다음 명령을 실행하여 네트워크 커널 매개변수를 구성하는 데 사용되는 문자열을 인코딩합니다.
$ echo -e "net.ipv4.conf.bridge-net.forwarding = 1" | base64 -w0출력 예
bmV0LmlwdjQuY29uZi5icmlkZ2UtbmV0LmZvcndhcmRpbmcgPSAxCg==-
MachineConfigCR을 생성하여bridge-net이라는 지정된 보조 인터페이스에 대한 IP 전달을 활성화합니다. 다음 YAML을
enable-ip-forward.yaml파일에 저장합니다.apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: <node_role>1 name: 81-enable-global-forwarding spec: config: ignition: version: 3.2.0 storage: files: - contents: source: data:text/plain;charset=utf-8;base64,bmV0LmlwdjQuY29uZi5icmlkZ2UtbmV0LmZvcndhcmRpbmcgPSAxCg==2 verification: {} filesystem: root mode: 420 path: /etc/sysctl.d/enable-global-forwarding.conf osImageURL: ""다음 명령을 실행하여 구성을 적용합니다.
$ oc apply -f enable-ip-forward.yaml
검증
머신 구성을 적용한 후 다음 절차에 따라 변경 사항을 확인합니다.
다음 명령을 실행하여 대상 노드에서 디버그 세션에 들어갑니다.
$ oc debug node/<node-name>이 단계에서는 <
node-name>-debug라는 디버그 Pod를 인스턴스화합니다.다음 명령을 실행하여 디버그 쉘 내에서
/host를 root 디렉터리로 설정합니다.$ chroot /host디버그 Pod는 Pod 내의
/host에 호스트의 루트 파일 시스템을 마운트합니다. root 디렉토리를/host로 변경하면 호스트의 실행 경로에 포함된 바이너리를 실행할 수 있습니다.다음 명령을 실행하여 IP 전달이 활성화되었는지 확인합니다.
$ cat /etc/sysctl.d/enable-global-forwarding.conf예상 출력
net.ipv4.conf.bridge-net.forwarding = 1출력은 IPv4 전달이
bridge-net인터페이스에서 활성화되었음을 나타냅니다.