유튜브 영상/리얼리눅스

도커/쿠버네티스/클라우드 네트워크 - 무료세미

book_lover 2024. 12. 25. 23:15

도커 네트워크의 이해

▶ docker0 - bridge 소프트화(가상화)

https://joont92.github.io/docker/network-%EA%B5%AC%EC%A1%B0/
https://velog.io/@yoonuk/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%8D%94%EB%AF%B8%ED%97%88%EB%B8%8C-%EB%B8%8C%EB%A6%BF%EC%A7%80-%EC%8A%A4%EC%9C%84%EC%B9%98%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

브릿지(Bridge)는 두 개 이상의 네트워크 세그먼트를 함께 연결하는 네트워킹 장치

OSI 모델의 데이터 링크 계층에서 작동하며 장치의 MAC 주소를 사용하여 프레임을 전달할지 필터링할지 결정

  • bridge란 2개이상의 네트워크를 L2레벨로 연결하여 1개의 싱글 LAN(docker0)으로 통신
  • veth란 Pair 가상 네트워크 인터페이스 (두개의 namespace를 연결)

쿠버네티스 Ingress

  • 여러 pod Service 객체로 묶어서 관리

ClusterIP 서비스

ClusterIP는 Kubernetes에서 기본 서비스 유형으로, 클러스터 내부에서만 접근 가능한 가상 IP를 제공합니다.

특징

  • 내부 통신 전용: ClusterIP는 클러스터 내부의 리소스(Pod 등) 간 통신을 가능하게 합니다. 외부에서는 접근할 수 없습니다
  • 로드 밸런싱: ClusterIP는 연결된 여러 Pod에 요청을 분산 처리합니다. 이는 IP/Port 기반(L4) 로드 밸런싱을 수행합니다
  • DNS 지원: ClusterIP 서비스는 DNS 이름을 통해 연결할 수 있어 Pod의 IP가 변경되더라도 안정적으로 접근이 가능합니다
  • 자동 생성된 IP: ClusterIP는 동적으로 생성되며, 클러스터 내에서 고유합니다. 필요 시 정적 IP를 지정할 수도 있습니다
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: ClusterIP
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

Ingress

Ingress는 클러스터 외부에서 내부 서비스로 HTTP(S) 요청을 라우팅하는 역할을 합니다.

특징

  • 외부 트래픽 관리: Ingress는 외부에서 들어오는 요청을 특정 서비스로 라우팅하며, 주로 L7 계층(HTTP/HTTPS)에서 동작합니다
  • 도메인 및 경로 기반 라우팅: 여러 도메인이나 경로에 따라 요청을 적절한 서비스로 분배할 수 있습니다.
  • SSL/TLS 지원: HTTPS 트래픽 처리를 위한 인증서를 관리하고 적용할 수 있습니다.
  • Ingress 컨트롤러 필요: Ingress 리소스는 실제로 동작하려면 NGINX, HAProxy, Traefik 등의 Ingress 컨트롤러가 필요합니다
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: my-service
                port:
                  number: 80

위 설정은 example.com으로 들어오는 요청을 my-service의 포트 80으로 전달합니다.

ClusterIP와 Ingress의 관계

  • ClusterIP는 클러스터 내부에서만 접근 가능한 서비스이지만, Ingress를 통해 외부 트래픽이 ClusterIP 서비스로 전달될 수 있습니다.
  • 일반적으로 실무에서는 ClusterIP 서비스를 생성한 뒤, Ingress를 통해 외부 트래픽을 처리하는 구조를 사용합니다. 이렇게 하면 클러스터 내부와 외부 간의 네트워크를 효율적으로 분리하고 관리할 수 있습니다.

요약

특징 ClusterIP Ingress
접근 범위 클러스터 내부 전용 클러스터 외부에서 내부로 연결
기능 계층 L4 (IP/Port 기반) L7 (HTTP/HTTPS 기반)
주요 역할 Pod 간 통신 및 로드 밸런싱 외부 트래픽 라우팅 및 SSL 지원
사용 목적 내부 네트워크 엔드포인트 제공 외부 요청 처리 및 경로 기반 라우팅

ClusterIP와 Ingress는 함께 사용되어 클러스터 내부와 외부 간의 트래픽 흐름을 효과적으로 관리합니다.