프로덕션 규모로 실행되는 모든 애플리케이션에는 외부 세계에 노출될 수 있는 "인그레스"가 있어야 합니다. Kubernetes는 이 목적을 위해 "Ingress" 리소스를 제공하지만 해당 기능은 사용 중인 Ingress 컨트롤러(일반적으로 nginx)의 종류에 따라 제한됩니다.
또는 애플리케이션 포드 자체가 순수하게 Kubernetes를 실행하지 않는 경우에도 Istio를 활용하고 기능이 더 풍부한 Ingress Gateway 리소스를 활용할 수 있습니다. Envoy 프록시를 게이트웨이로 사용하는 Istio의 기능인 Ingress Gateway(nginx와 반대)를 점진적으로 채택하여 그렇게 할 수 있습니다. Istio가 수신 트래픽을 관리하는데 어떻게 도움이 되는지 접근 방식을 살펴봅니다.
Kubernetes Architecture
• Etcd: key-value Store 데이터 베이스, 클러스터 상태정보 보관(하드웨어상태, 파트, 컨테이너상태 등등..)
• API Server: Client 요청을 받음(kubectl). Etcd 정보와 함께 scheduler에게 어느 node에 pod를 생성 할 지 문의. Controller에 불꽃감시 지시/보고받음
• Scheduler: API에서 받은 etcd 정보를 검토하여 배포 할 node/(pod)를 선택 및 보고
• Controller: Kublet 의 c-advisor(모니터링 기능)가 API 에게 보고하는 상태를 불꽃같은 눈으로 감시. (컨테이너 상태 체크, 네트워크, 노드 체크) -> 파드 개수 보장
• Kubelet: 모든 노드에서 실행 되는에이전트 (c-advisor), 콘테이너 실행
• Kube-proxy: Network guy, iptable rule 구성하여 Service와 Pod간의 통신
• Container Runtime: Docker 실행 엔진
Kubernetes way to expose your app (ServiceTypes)
• ClusterIP: 클러스터 내부 IP에 서비스를 노출합니다. 클러스터 내에서만 서비스에 연결할 수 있습니다.
• NodePort: 고정 포트(NodePort)에서 각 노드의 IP에 대한 서비스를 노출합니다. <NodeIP>:<NodePort>를 요청하여 클러스터 외부에서 NodePort 서비스에 연결할 수 있습니다.
• LoadBalancer: 클라우드 공급자의 부하 분산을 사용하여 서비스를 외부에 노출합니다.
• Ingress: 클러스터 외부에서 서비스로 HTTP 및 HTTPS 경로를 노출합니다. 트래픽 라우팅은 Ingress 리소스에 정의된 규칙에 의해 제어됩니다.
NodePort Limitations
Ingress Advantages
Ingress Limitations
• Limited observability toolsets
• No advanced traffic control / release strategies
- Such as % based Canary release
• No service resiliency features
- Such as Circuit breaking, Retry, Timeouts
Istio Mesh Architecture Istio
• Pilot: Svc 검색, 수신 게이트웨이 푸시, 게이트웨이 정책, 가상 서비스, Envoy 프록시에 대한 대상 규칙
• Citadel: 키 쌍 생성, 키 검증
• Mixer: Envoy 프록시에서 원격 측정 데이터 수집(더 이상 믹서 없음, 파일럿은 v1.5부터 작동 중임)
Istio Ingress Gateway Advantages
공유하기
통계
글 요소
'2. 기본 인프라 IaaS' 카테고리의 다른 글
OCI 기본개념 이해하기 (0) | 2022.05.16 |
---|---|
오라클 클라우드 오브젝트 스토리지 활용 방법 (0) | 2022.04.25 |
Tomcat을 설치하고 ATP와 연동하기 (0) | 2022.04.25 |
컨테이너 생성과 실행 - Creating and running as a docker container (0) | 2022.04.02 |
스토리지 옵션 Storage option (Block Storage / Object Storage / File Storage) (0) | 2022.03.31 |
댓글