13장. Kubernetes와 외부 서비스 통합하기
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 책의 많은 장에서 Kubernetes에서 서비스를 빌드, 배포 및 관리하는 방법에 대해 설명했습니다. 그러나 사실 시스템은 진공 상태로 존재하지 않으며, 우리가 구축하는 대부분의 서비스는 실행 중인 Kubernetes 클러스터 외부에 존재하는 시스템 및 서비스와 상호 작용해야 합니다. 이는 가상 또는 물리적 머신에서 실행되는 레거시 인프라에서 액세스하는 새로운 서비스를 구축하기 때문에 필요할 수 있습니다. 또한, 구축 중인 서비스가 온프레미스 데이터센터의 물리적 인프라에서 실행 중인 기존 데이터베이스 또는 기타 서비스에 액세스해야 하기 때문일 수도 있습니다. 마지막으로, 상호 연결해야 하는 서비스가 있는 여러 개의 Kubernetes 클러스터가 있을 수 있습니다. 이러한 모든 이유로, Kubernetes 클러스터의 경계를 아우르는 서비스를 노출, 공유 및 빌드하는 기능은 실제 애플리케이션을 구축하는 데 있어 중요한 부분입니다.
Kubernetes로 서비스 가져오기
가장 일반적인 Kubernetes와 외부 서비스 연결 패턴은 Kubernetes 클러스터 외부에 존재하는 서비스를 소비하는 Kubernetes 서비스로 구성됩니다. 이는 새로운 애플리케이션 개발에 Kubernetes가 사용되거나 온프레미스 데이터베이스와 같은 레거시 리소스에 대한 인터페이스로 사용되고 있기 때문인 경우가 많습니다. 많은 기존 애플리케이션에서는 애플리케이션의 일부가 다른 부분보다 이동하기 쉽습니다. 예를 들어, 미션 크리티컬 데이터가 있는 데이터베이스는 데이터 거버넌스, 규정 준수 또는 비즈니스 연속성을 이유로 온프레미스에 유지해야 할 수 있습니다. 동시에, 이러한 레거시 데이터베이스에 대한 새로운 인터페이스를 Kubernetes에서 구축하면 상당한 이점이 있습니다. Kubernetes로 마이그레이션할 때마다 전체 애플리케이션의 리프트와 전환이 필요하다면, 많은 애플리케이션이 레거시 구현을 영원히 유지해야 할 것입니다. 대신, 이 장에서는 새로운 애플리케이션의 Cloud 네이티브 개발을 기존 가상 머신, 베어메탈 서버 또는 메인프레임에서 실행 중인 데이터베이스와 같은 기존 서비스와 통합하는 방법을 보여줍니다.
Kubernetes에서 외부 서비스에 액세스하는 작업을 고려할 때, 첫 번째 과제는 네트워킹이 올바르게 작동하도록 하는 것입니다. 네트워킹을 작동시키는 세부 사항은 데이터베이스의 위치와 Kubernetes 클러스터의 위치 모두에 따라 다릅니다. 따라서 이 책에서 다루는 범위를 벗어나지만, 일반적으로 Cloud 기반 Kubernetes 공급자는 클러스터를 사용자 제공 가상 네트워크(VNET)에 배포할 수 있게 해주며, 이러한 가상 네트워크는 온프레미스 네트워크와 피어링될 수 있습니다.
Kubernetes 클러스터의 파드와 온프레미스 리소스 간에 네트워크 연결을 설정한 ...