4장. Istio 주변 모드
Istio 앰비언트 모드에서는 사이드카 삽입 없이 Red Hat OpenShift Service Mesh의 아키텍처를 도입합니다. 이 모드는 작업을 단순화하고 리소스 사용량을 줄이기 위해 설계되었습니다. 앰비언트 모드에서는 각 애플리케이션 Pod에 사이드카 프록시를 삽입하는 대신 계층 4(L4) 기능에 대해 공유 노드 수준 프록시와 L7) 기능을 위한 선택적 전용 프록시를 사용합니다.
Istio 앰비언트 모드는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
4.1. Istio 주변 모드 정보 링크 복사링크가 클립보드에 복사되었습니다!
Istio 앰비언트 모드 아키텍처를 이해하려면 다음 정의를 참조하십시오.
- ZTunnel 프록시
- 노드의 모든 워크로드에 대해 안전하고 투명한 TCP(Transmission Control Protocol) 연결을 관리하는 노드별 프록시입니다. 계층 4(L4)에서 작동하며 애플리케이션 Pod에서 상호 전송 계층 보안(mTLS) 및 L4 정책을 오프로드합니다.
- waypoint 프록시
- 트래픽 관리, 정책 시행 및 관찰 기능과 같은 고급 계층 7(L7) 기능을 제공하기 위해 서비스 계정 또는 네임스페이스별로 실행되는 선택적 프록시입니다. 모든 서비스의 사이드카 오버헤드를 방지하기 위해 선택적으로 L7 기능을 적용할 수 있습니다.
- Istio CNI 플러그인
- 트래픽을 각 노드의 Ztunnel 프록시로 리디렉션하여 애플리케이션 Pod를 수정하지 않고도 투명 인터셉션을 활성화합니다.
Istio 앰비언트 모드에서는 다음과 같은 이점이 있습니다.
- 사이드카 삽입을 관리해야 하는 필요성을 제거하여 메시 채택 및 작업의 복잡성을 줄일 수 있습니다.
-
L4 서비스 메시 기능과 Pod당 리소스 오버헤드를 줄이는 선택적 방법을 제공하는 노드 Ztunnel 프록시로 리소스 소비 를 줄입니다.
HTTP(L7) 트래픽 관리와 같은 L7 서비스 메시 기능을 사용하기 위해 나중에 추가되는 선택적
웨이포인트
프록시와 함께 워크로드가 mTLS(mutual Transport Layer Security) 및 기본 정책과 같은 L4 기능과 결합할 수 있는 증분 채택.참고L7 기능을 사용하려면 선택한 서비스에 대한 최소한의 추가 오버헤드가 발생하는
waypoint
프록시를 배포해야 합니다.- 기본적으로 모든 메시된 워크로드에 대해 mTLS가 있는 안전한 제로 신뢰 네트워크 기반을 제공하는 보안 강화.
앰비언트 모드는 최신 아키텍처이며 기존 사이드카 모델과 다른 운영 고려 사항을 포함할 수 있습니다.
잘 정의된 검색 선택기를 사용하면 사이드카 모드에서 메시와 함께 앰비언트 모드로 배포된 서비스 메시를 사용할 수 있지만 이 시나리오는 철저하게 검증되지 않았습니다. 잠재적인 충돌을 방지하려면 기존 Red Hat OpenShift Service Mesh 설치가 없는 클러스터에만 Istio 앰비언트 모드를 설치합니다. 앰비언트 모드는 기술 프리뷰 기능으로 유지됩니다.
Istio 앰비언트 모드는 Red Hat OpenShift Service Mesh 2.6 또는 이전 버전을 사용하는 클러스터와 호환되지 않습니다. 함께 설치하거나 사용해서는 안 됩니다.
4.1.1. Istio 주변 모드 설치 링크 복사링크가 클립보드에 복사되었습니다!
필요한 게이트웨이 API CRD(사용자 정의 리소스 정의)를 사용하여 OpenShift Container Platform 4.19 이상 및 Red Hat OpenShift Service Mesh 3.1.0 이상에 Istio 앰비언트 모드를 설치할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 4.19 이상에 클러스터를 배포했습니다.
- OpenShift Container Platform 클러스터에 OpenShift Service Mesh Operator 3.1.0 이상을 설치했습니다.
-
설치 방법에 따라
cluster-admin
역할의 사용자로 웹 콘솔을 통해 또는oc login
명령을 사용하여 OpenShift Container Platform 클러스터에 로그인했습니다. -
Cluster Network Operator의
gatewayConfig
사양에서routingViaHost
필드를true
로 설정하여 로컬 게이트웨이 모드를 사용하도록 OVN-Kubernetes CNI(Container Network Interface)를 구성했습니다. 자세한 내용은 " 게이트웨이 모드 구성"을 참조하십시오.
프로세스
Istio 컨트롤 플레인을 설치합니다.
다음 명령을 실행하여
istio-system
네임스페이스를 생성합니다.oc create namespace istio-system
$ oc create namespace istio-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 유사한
istio.yaml
이라는Istio
리소스를 생성합니다.설정 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요profile
필드를앰비언트
로 설정하고 ZTunnel 리소스가 설치될 네임스페이스와 일치하도록.spec.values.pilot.trusted
값을 구성해야 합니다.Ztunnel
Namespace다음 명령을 실행하여
Istio
CR(사용자 정의 리소스)을 적용합니다.oc apply -f istio.yaml
$ oc apply -f istio.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Istio 컨트롤 플레인에
Ready
상태 조건이 포함될 때까지 기다립니다.oc wait --for=condition=Ready istios/default --timeout=3m
$ oc wait --for=condition=Ready istios/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Istio CNI(Container Network Interface)를 설치합니다.
다음 명령을 실행하여
istio-cni
네임스페이스를 생성합니다.oc create namespace istio-cni
$ oc create namespace istio-cni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 유사한
istio-cni.yaml
이라는IstioCNI
리소스를 생성합니다.설정 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow profile
필드를앰비언트
로 설정합니다.다음 명령을 실행하여
IstioCNI
CR을 적용합니다.oc apply -f istio-cni.yaml
$ oc apply -f istio-cni.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
IstioCNI
Pod에Ready
상태 조건이 포함될 때까지 기다립니다.oc wait --for=condition=Ready istios/default --timeout=3m
$ oc wait --for=condition=Ready istios/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Ztunnel 프록시를 설치합니다.
다음 명령을 실행하여 Ztunnel 프록시의
ztunnel
네임스페이스를 생성합니다.oc create namespace ztunnel
$ oc create namespace ztunnel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ztunnel
프로젝트의 네임스페이스 이름은 Istio 구성의trustedZtunnelNamespace
매개변수와 일치해야 합니다.다음 예와 유사한
ztunnel.yaml
이라는Ztunnel
리소스를 생성합니다.설정 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
Ztunnel
CR을 적용합니다.oc apply -f ztunnel.yaml
$ oc apply -f ztunnel.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
Ztunnel
Pod에Ready
상태 조건이 포함될 때까지 기다립니다.oc wait --for=condition=Ready ztunnel/default --timeout=3m
$ oc wait --for=condition=Ready ztunnel/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow