본문 바로가기

Cloud/Kubernetes

[CKA - 4] 네트워킹 & 서비스

이번 글에서는 Kubernetes의 네트워킹과 서비스에 대해 정리한다. CKA 시험에서 자주 등장하는 핵심 영역이며, 클러스터 내부/외부 통신을 이해하는 것이 매우 중요하다.


1. Cluster Networking 개념

  • 모든 Pod는 고유한 IP를 가진다.
  • Pod 간에는 NAT 없이 직접 통신할 수 있어야 한다.
  • Node 간 Pod 통신도 동일한 규칙이 적용된다.
  • Service를 통해 Pod 집합을 안정적으로 접근할 수 있다.

2. Service 개념 및 종류

ClusterIP

  • 클러스터 내부에서만 접근 가능한 가상 IP 제공
  • 가장 기본적인 Service 타입
apiVersion: v1
kind: Service
metadata:
  name: my-clusterip-service
spec:
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080
  type: ClusterIP

NodePort

  • 각 Node의 특정 포트를 열어 외부 접근 가능
  • 기본적으로 30000~32767 범위를 사용
apiVersion: v1
kind: Service
metadata:
  name: my-nodeport-service
spec:
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30080
  type: NodePort

LoadBalancer

  • 클라우드 환경에서 외부 로드밸런서를 프로비저닝
  • NodePort와 ClusterIP를 포함하는 상위 개념
apiVersion: v1
kind: Service
metadata:
  name: my-loadbalancer-service
spec:
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080
  type: LoadBalancer

3. DNS 및 CoreDNS

  • Kubernetes는 각 Service와 Pod에 DNS 이름을 제공한다.
  • 예: my-service.default.svc.cluster.local
  • CoreDNS ConfigMap을 수정하여 도메인 해석 방식을 변경할 수 있다.
kubectl -n kube-system edit configmap coredns

4. NetworkPolicy

  • Pod 간 네트워크 트래픽 제어 가능
  • 기본적으로 모든 트래픽 허용
  • 특정 ingress/egress를 허용하거나 차단 가능

예시: 특정 namespace 내 app=frontend Pod만 app=backend Pod에 접근 가능하도록 설정

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-frontend
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: backend
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: frontend

5. Headless Service

  • 클러스터IP를 생성하지 않고 DNS를 통해 Pod 개별 IP를 반환한다.
  • StatefulSet과 자주 사용된다.
apiVersion: v1
kind: Service
metadata:
  name: my-headless-service
spec:
  clusterIP: None
  selector:
    app: myapp
  ports:
    - port: 80
      targetPort: 8080

마무리

이번 글에서는 Kubernetes의 네트워킹과 서비스 구성을 학습했다. Service 타입의 차이, DNS 동작 방식, NetworkPolicy 설정은 CKA 시험에서 자주 등장하는 영역이다. 실제 환경에서 자주 실습해 두면 시험 대비와 실무 모두에 도움이 된다.