Certified Kubernetes Administration - 9

2024-06-19

  • Kubernetes
  • Cloud

쿠브 프로시 개요

  • 쿠버네티스 클러스터 내에서 모든 파드는 다른 모든 파드에 접근할 수 있습니다.

    • 이는 클러스터에 파드 네트워킹 솔루션을 배포함으로써 이루어집니다.
  • 파드 네트워크는 모든 노드를 포함하는 내부 가상 네트워크로, 모든 파드가 연결됩니다.

    • 이를 통해 파드들은 서로 통신할 수 있습니다.
  • 여러 파드 네트워크 솔루션이 있습니다.

  • 예를 들어, 첫 번째 노드에 웹 애플리케이션을, 두 번째 노드에 데이터베이스 애플리케이션을 배포합니다.

    • 웹 애플리케이션은 데이터베이스 파드의 IP를 사용해 데이터베이스에 접근할 수 있지만, 데이터베이스 파드의 IP는 항상 동일하지 않을 수 있습니다.
  • 더 나은 방법은 서비스를 사용하는 것입니다.

    • 서비스를 생성하여 클러스터 전체에서 데이터베이스 애플리케이션을 노출시킵니다.

    • 이제 웹 애플리케이션은 서비스 이름(DB)을 사용하여 데이터베이스에 접근할 수 있습니다.

    • 서비스에도 IP 주소가 할당됩니다.

    • 파드가 서비스의 IP나 이름을 사용하여 접근하면, 트래픽을 백엔드 파드(이 경우 데이터베이스)로 전달합니다.

서비스와 IP 할당

  • 서비스는 실제 존재하지 않기 때문에 파드 네트워크에 참여할 수 없습니다.

    • 서비스는 파드와 같은 컨테이너가 아니므로 인터페이스나 활성 리스닝 프로세스가 없습니다.

    • 서비스는 쿠버네티스 메모리에서만 존재하는 가상 구성 요소입니다.

  • 그러나 서비스는 클러스터의 모든 노드에서 접근 가능해야 합니다.

    • 이를 가능하게 하는 것이 바로 kube-proxy입니다.

kube-proxy의 역할

  • kube-proxy는 쿠버네티스 클러스터의 각 노드에서 실행되는 프로세스입니다.

    • 새로운 서비스가 생성될 때마다 이를 감지하고, 트래픽을 백엔드 파드로 전달하는 적절한 규칙을 각 노드에 생성합니다.

    • iptables 규칙을 사용하여 이를 수행합니다.

    • 예를 들어, 서비스의 IP(10.96.0.12)로 향하는 트래픽을 실제 파드의 IP(10.32.0.15)로 전달하는 iptables 규칙을 생성합니다.

kube-proxy 설치

  • kube-proxy 바이너리를 쿠버네티스 릴리스 페이지에서 다운로드하고, 압축을 풀고, 서비스로 실행합니다.

  • kubeadm 도구는 각 노드에 kube-proxy를 파드로 배포합니다.

    • 사실 이는 DaemonSet으로 배포되어, 클러스터의 각 노드에 항상 하나의 파드가 배포됩니다.

    • DaemonSet에 대해 잘 모른다면 걱정하지 마세요. 이 강의에서 다룰 예정입니다.

요약

  • 이 강의에서는 다양한 쿠버네티스 컨트롤 플레인 구성 요소의 고급 개요를 다루었습니다.

  • 이후 강의에서 네트워킹, 서비스, kube-proxy, 파드 네트워킹 등에 대해 더 자세히 다룰 예정입니다.

Certified ...

Certified ...