1장. 네트워킹 이해
OpenShift Container Platform에서 탄력적이고 안전하며 확장 가능한 애플리케이션을 빌드하는 데 네트워킹을 이해하는 것이 중요합니다. 기본 pod-to-pod 통신에서 복잡한 트래픽 라우팅 및 보안 규칙에 이르기까지 애플리케이션의 모든 구성 요소는 네트워크를 기반으로 올바르게 작동합니다.
다음 다이어그램은 클러스터의 Pod에 연결할 때 AWS(Amazon Web Services) 외부 클라이언트의 네트워킹 구성 요소 간에 외부 및 내부 네트워크 트래픽의 흐름을 보여줍니다.
그림 1.1. 네트워킹 구성 요소 간 트래픽 흐름 표시
1.1. 핵심 네트워크 계층 및 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenShift Networking은 포드 네트워크와 서비스 네트워크라는 두 가지 기본 계층을 기반으로 합니다. Pod 네트워크는 애플리케이션이 있는 위치입니다. 서비스 네트워크를 사용하면 애플리케이션에 안정적으로 액세스할 수 있습니다.
- Pod 네트워크
pod 네트워크는 클러스터의 모든 pod가 고유한 IP 주소를 수신하는 플랫 네트워크 공간입니다. 이 네트워크는 CNI(Container Network Interface) 플러그인에서 관리합니다. CNI 플러그인은 각 pod를 클러스터 네트워크로 연결합니다.
이 설계를 사용하면 실행 중인 노드에 관계없이 포드가 IP 주소를 사용하여 서로 직접 통신할 수 있습니다. 그러나 이러한 Pod IP 주소는 임시입니다. 즉, Pod가 삭제될 때 IP 주소가 삭제되고 새 Pod가 생성될 때 새 IP 주소가 할당됩니다. 이로 인해 장기 통신을 위해 Pod IP 주소에 직접 의존해서는 안 됩니다.
- 서비스 네트워크
서비스는 ClusterIP라는 단일 안정적인 가상 IP 주소와 Pod 논리 그룹에 대한 DNS 이름을 제공하는 네트워킹 오브젝트입니다.
요청이 서비스의 ClusterIP로 전송되면 OpenShift Container Platform은 해당 서비스를 지원하는 정상 pod 중 하나로 트래픽을 자동으로 로드 밸런싱합니다. OpenShift Container Platform은 Kubernetes 레이블과 선택기를 사용하여 어떤 Pod가 어떤 서비스에 속하는지 추적합니다. 이 추상화를 사용하면 애플리케이션에 도달하려는 애플리케이션에 영향을 주지 않고 개별 Pod를 생성하거나 삭제할 수 있기 때문에 애플리케이션의 복원력을 높일 수 있습니다.