네트워크 정책 설정

Kf는 Kubernetes 및 Istio와의 밀접한 통합으로 강력한 네트워크 정책을 사용할 수 있게 해줍니다.

기본적으로 Kf 워크로드는 Kubernetes 클러스터에서 실행되며, Kubernetes DNS를 사용하여 주소를 확인합니다. 이 DNS 리졸버는 먼저 클러스터 내에서 주소 확인을 시도하고 발견된 항목이 없을 때만 외부 확인을 시도합니다.

각 Kf 앱은 Istio 또는 Anthos Service Mesh(ASM)에서 삽입된 Envoy 사이드카로 실행됩니다. 이 사이드카는Kubernetes Pod로 송수신되는 모든 네트워크 트래픽을 프록시합니다.

각 Kubernetes Pod는 Pod를 구성하는 컨테이너 이미지 관리 책임이 물리 또는 가상 머신인 노드에서 실행됩니다. 노드는 물리 또는 가상 네트워크에 존재합니다.

이 모든 것들이 네트워크 정책을 적용할 수 있는 시스템 계층 구조를 형성합니다. 이것들은 정밀도 순으로 아래에 나열됩니다.

네트워크 수준 정책

워크로드 보호는 GKE 클러스터가 설치된 네트워크로 시작됩니다.

GCP의 GKE 클러스터에서 Kf를 실행하는 경우 Kf가 다음을 추천합니다.

노드 수준 정책

Kubernetes NetworkPolicies를 사용하여 노드에서 실행되는 컨테이너의 정책을 설정할 수 있습니다. 이 정책들은 Kubernetes에 있는 Cloud Foundry 네트워크 정책과 가장 가까운 매핑입니다.

NetworkPolicies는 Kubernetes 부가기능으로 지원됩니다. 고유 GKE 클러스터를 설정하려면 NetworkPolicy 적용을 사용 설정해야 합니다.

Kf는 앱에 kf.dev/networkpolicy=app 라벨을 지정하고 빌드에 kf.dev/networkpolicy=build 라벨을 지정합니다. 따라서 앱 또는 빌드를 실행하는 Pod에서 직접 NetworkPolicies를 대상으로 지정할 수 있습니다.

각 Kf Space는 각각 대상 앱 하나와 대상 빌드 하나가 포함된 2개의 시작용 NetworkPolicies를 만듭니다. 이 구성은 Space의 spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress 필드에서 변경할 수 있습니다. 이러한 필드는 다음 값 중 하나로 설정될 수 있습니다.

열거형 값 설명
PermitAll 모든 트래픽을 허용합니다.
DenyAll 모든 트래픽을 거부합니다.

기본적으로 Kf는 관대한 네트워크 정책을 사용합니다. 따라서 Kf에 사용되는 다음 기능이 허용됩니다.

  • 클러스터 인그레스 게이트웨이에 대한 North/South 라우팅
  • Buildpack을 가져오기 위한 인터넷 이그레스
  • 앱 간 East/West 라우팅
  • Kubernetes DNS 서버 액세스
  • 컨테이너 레지스트리 액세스
  • VPC 네트워크에 직접 액세스
  • Cloud Logging과 같은 Google 서비스 액세스
  • 자동 순환 사용자 인증 정보를 위한 워크로드 아이덴티티 서버 액세스

서비스 메시 정책

세밀한 네트워킹 제어, 인증, 승인, 관측이 필요하면 Anthos Service Mesh를 사용하여 정책을 적용할 수 있습니다.

서비스 메시는 서비스 간의 관리되는 통신, 관측 가능한 통신, 보안 통신을 사용 설정하여 선택된 인프라의 여러 마이크로서비스로 구성된 강력한 엔터프라이즈 애플리케이션을 만들 수 있게 해주는 인프라 레이어입니다.

지원되는 목록은 여기를 참조하세요.