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가 다음을 추천합니다.
- Virtual Private Cloud(VPC) 네트워크에 GKE 클러스터를 배치합니다.
- 비공개 Google 액세스를 사용 설정합니다.
- Cloud NAT를 사용하여 이그레스를 제어합니다.
노드 수준 정책
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를 사용하여 정책을 적용할 수 있습니다.
서비스 메시는 서비스 간의 관리되는 통신, 관측 가능한 통신, 보안 통신을 사용 설정하여 선택된 인프라의 여러 마이크로서비스로 구성된 강력한 엔터프라이즈 애플리케이션을 만들 수 있게 해주는 인프라 레이어입니다.
지원되는 목록은 여기를 참조하세요.