서비스를 활용한 앱 노출
파드에 안정적인 네트워크 엔드포인트를 제공하는 서비스의 역할을 이해하세요.
서비스를 활용한 앱 노출은(는) CoddyKit의 무료 Kubernetes Basics 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kubernetes Basics 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.
파드: 오늘은 있고 내일은 사라집니다
쿠버네티스에서 파드는 배포할 수 있는 가장 작은 단위입니다. 파드는 일시적으로 존재하도록 설계되었으며 쿠버네티스에 의해 언제든 생성, 삭제 또는 이동될 수 있습니다.
이러한 유연성은 복원력 측면에서는 뛰어나지만 한 가지 문제가 생깁니다. 다른 애플리케이션은 계속 바뀌는 파드를 어떻게 안정적으로 찾고 통신할 수 있을까요?
변하는 대상 문제
모든 파드에는 고유한 IP 주소가 할당됩니다. 파드가 다시 시작되거나 스케일링되면 새로운 IP 주소를 받는 경우가 많습니다. 파드의 IP에 직접 연결하는 것은 움직이는 표적을 맞히려는 것과 같습니다!
파드가 여러 개인 웹 애플리케이션을 생각해 보십시오. 파드 하나가 다시 시작되면 IP가 바뀌어 다른 서비스나 사용자의 연결이 끊어집니다.
Service가 해결합니다!
이때 쿠버네티스 Service가 사용됩니다! Service는 파드 집합에 안정적인 고정 네트워크 엔드포인트를 제공합니다.
뒤에 있는 파드의 개별 주소가 계속 바뀌더라도 애플리케이션에 영구적인 주소를 제공하는 것이라고 생각하면 됩니다.
파드를 위한 안정적인 게이트웨이
Service는 파드 그룹 위에서 동작하는 추상화 계층입니다. 파드 그룹에 일관된 하나의 IP 주소와 DNS 이름을 제공합니다.
- 다른 애플리케이션은 이 안정적인 Service IP 또는 이름을 사용합니다.
- Service는 자신이 관리하는 정상 파드로 트래픽을 전달합니다.
- 이를 통해 클라이언트와 개별 파드 IP를 분리할 수 있습니다.
Service와 파드 연결하기
Service는 트래픽을 전달할 파드를 어떻게 알 수 있을까요? 레이블과 선택기를 사용합니다!
Service를 정의할 때 selector를 지정합니다. 이 레이블과 일치하는 모든 파드는 자동으로 해당 Service 그룹의 일부가 됩니다.
이러한 동적 연결 덕분에 새 파드는 자동으로 추가되고 정상적이지 않은 파드는 제거됩니다.
네트워크 트래픽 전달하기
Service는 네트워크 트래픽의 흐름을 관리합니다. 들어오는 요청을 파드의 올바른 포트에 연결하도록 포트를 정의합니다.
주요 포트 개념:
port: Service 자체가 수신 대기하는 포트입니다.targetPort: Service가 트래픽을 전달하는 파드의 포트입니다.
Service 매니페스트 작성하기
대부분의 쿠버네티스 리소스와 마찬가지로 Service는 YAML 파일을 사용해 정의합니다. 기본 구조를 살펴보겠습니다.
apiVersion:v1kind:Servicemetadata: 이름, 레이블spec:selector와ports를 포함한 핵심 정의를 담습니다.
첫 번째 Service: ClusterIP
내부 통신에 가장 일반적으로 사용하는 Service 유형은 ClusterIP입니다. 클러스터 내부 IP 주소로 Service를 노출합니다.
간단한 웹 애플리케이션의 예를 살펴보겠습니다.
apiVersion: v1
kind: Service
metadata:
name: my-web-service
spec:
selector:
app: my-webapp
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: ClusterIPService 배포하기
Service YAML을 준비했다면 파드나 Deployment와 마찬가지로 kubectl을 사용해 클러스터에 배포할 수 있습니다.
이 명령은 정의한 내용을 바탕으로 쿠버네티스에 Service를 생성하도록 지시합니다.
kubectl apply -f service.yaml새 Service 사용하기
배포가 완료되면 클러스터 내부에서 Service에 안정적인 IP와 DNS 이름이 할당됩니다. 이제 다른 파드가 이 이름을 사용해 애플리케이션에 접근할 수 있습니다.
예를 들어 다른 파드가 my-web-service:80에 연결하면 Service가 올바른 my-webapp 파드로의 전달을 처리합니다.
Service 점검
쿠버네티스 Service가 동적인 파드에 안정적인 네트워크 접근을 제공하는 방법을 배웠습니다.
다음 중 쿠버네티스 Service의 주요 역할을 가장 잘 설명하는 것은 무엇입니까?
복습: 안정적인 연결
잘하셨습니다! 이번 레슨에서는 쿠버네티스 Service를 살펴보았습니다.
- 파드는 일시적으로 존재하며 동적인 IP를 가집니다.
- Service는 파드를 위한 안정적인 네트워크 엔드포인트를 제공합니다.
- 선택기를 사용해 대상 파드를 찾습니다.
- Service는 외부
port를 내부targetPort에 연결합니다. - ClusterIP는 내부 통신에 일반적으로 사용하는 유형입니다.
다음에는 다양한 Service 유형과 그 용도를 더 자세히 살펴보겠습니다!
자주 묻는 질문
“서비스를 활용한 앱 노출” 강의는 무료인가요?
네 — “서비스를 활용한 앱 노출” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kubernetes Basics 강의 전체를 잠금 해제할 수 있습니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.
“서비스를 활용한 앱 노출”에서 뭘 배우나요?
파드에 안정적인 네트워크 엔드포인트를 제공하는 서비스의 역할을 이해하세요. 브라우저에서 직접 실행하는 실습 코드로 Kubernetes Basics을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Kubernetes Basics을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Kubernetes Basics은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“서비스를 활용한 앱 노출” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Kubernetes Basics 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Kubernetes Basics 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.