Archive: 2023

0

쿠버네티스 - HPA (Horizontal Pod Autoscaler)

목차 쿠버네티스 - VPA (Vertical Pod Autoscaler) 쿠버네티스 - HPA (Horizontal Pod Autoscaler) HPAHPA (Horizontal Pod Autoscaler)는 Kubernetes 클러스터에서 자동으로 파드 수를 조정하는 기능입니다. HPA는 애플리케이션의 수요에 따라 파드의 수를 스케일 업 또는 스케일 다운하여 애플리케이션의 가용성과 성능을 유지하는 데 도움이 됩니다. HPA는 리소스 사용량을 기반으로 파드의 수를 동적으로 조정합니다. 일반적으로 CPU 사용률 또는 커스텀 메트릭을 기반으로 합니다. HPA는 설정된 임계값과 현재 리소스 사용량을 비교하여 파드 수를 조정합니다. HPA를 설정하려면 다음 단계를 수행해야 합니다: HPA를 적용할 리소스를 선택합니다. 대부분의 경우 Deployment 또는 ReplicaSet과 같은 컨트롤러 리소스를 선택합니다. HPA 정의를 작성합니다. HPA 정의에는 스케일링 대상 리소스, 스케일링 조건, 스케일링 조정량 등이 포함됩니다. 예를 들어, CPU 사용률이 80%를 초과하면 파드 수를 2배로 스케일 업할 수 있도록 설정할 수 있습니다. HPA를 적용합니다. HPA를 적용하면 Kubernetes는 지정된 간격으로 리소스 사용량을 확인하고 스케일링 결정을 내립니다. HPA는 애플리케이션의 부하가 증가하면 파드 수를 자동으로 늘리고, 부하가 감소하면 파드 수를 줄여 리소스를 효율적으로 관리합니다. 이를 통해 애플리케이션의 가용성과 성능을 최적화할 수 있습니다.

0

Spring Batch - ItemStream

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ItemStreamItemStream 은 ItemReader 와 ItemWriter 처리 과정 중 상태를 저장하고 오류가 발생하면 해당 상태를 참조하여 실패한 곳에서 재시작 하도록 지원합니다. 리소스를 열고 닫아야 하며 입출력 장치 초기화 등의 작업을 해야 하는 경우 사용합니다. public interface ItemStream { void open(ExecutionContext executionContext) throws ItemStreamException; void update(ExecutionContext executionContext) throws ItemStreamException; void close() throws ItemStreamException;}

0

쿠버네티스 - Secret

목차 쿠버네티스 - Secret 쿠버네티스 - ConfigMap 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod 쿠버네티스 - Data Plane 쿠버네티스 - Control Plane Post not found: k8s/k8s Secret 쿠버네티스(Secret)는 애플리케이션에서 민감한 데이터를 안전하게 저장하고 관리하기 위한 리소스 Secret은 기본적으로 ConfigMap과 유사한 방식으로 동작하지만, 암호화된 형태로 데이터를 저장하여 더 높은 보안 수준을 제공합니다. Secret은 애플리케이션에서 사용되는 비밀번호, API 토큰, 데이터베이스 자격증명 등과 같은 중요한 정보를 저장할 수 있습니다. 이러한 데이터는 애플리케이션의 컨테이너 이미지와 분리되어, 보안성을 유지하면서 애플리케이션을 배포하고 관리할 수 있습니다. Secret은 Base64 인코딩을 사용하여 데이터를 인코딩하고, 쿠버네티스 클러스터 내부에서 저장됩니다. 이를 통해 데이터는 안전하게 저장되며, 컨테이너 내부에서 필요할 때만 디코딩하여 사용됩니다. Secret은 YAML 또는 JSON 형식으로 정의되며, 쿠버네티스 클러스터에 생성 및 적용됩니다. Secret을 생성한 후에는 해당 Secret을 사용하려는 Pod의 컨테이너에 마운트하거나 환경 변수로 설정할 수 있습니다. 이렇게 하면 애플리케이션은 Secret에서 정의된 중요한 정보를 사용할 수 있습니다. 예를 들어, Secret에서 “db_password”라는 키에 대한 값으로 “mysecretpassword”를 설정하면, 애플리케이션은 이 값을 디코딩하여 데이터베이스 비밀번호로 사용할 수 있습니다. Secret은 ConfigMap과 마찬가지로 클러스터나 네임스페이스 수준에서 변경 및 관리할 수 있으므로, 변경된 비밀번호는 애플리케이션을 다시 시작하지 않고도 즉시 적용될 수 있습니다.

0

MySQL - 사용자 추가

사용자 추가create user '[userid]';-- localhost 에서만 접속할 수 있는 계정 생성create user '[userid]'@'localhost' identified by '[비밀번호]';-- 외부에서 접근 가능한 계정 생성create user '[userid]'@'%' identified by '[비밀번호]'; 권한 부여하기-- select 권한 부여grant select privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- update 권한 부여grant update privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- insert 권한 부여grant insert privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- delete 권한 부여grant delete privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- select, update, insert 권한 부여grant select, update, insert privileges on *.* to '[userid]'@localhost identified by '[비밀번호]'; 특정 데이터 베이스에 대한 접근 부여-- [Database 명] 데이터베이스에 select 권한 부여grant select privileges on [Database 명].* to '[userid]'@localhost identified by '[비밀번호]'; User 에 따른 데이터 베이스 접근 부여-- localhost User 에게 전체 권한 부여grant all privileges on *.* to '[userid]'@localhost identified by '[비밀번호]';-- 외부접근 User 에게 전체 권한 부여grant all privileges on *.* to '[userid]'@'%' identified by '[비밀번호]';

0

Spring Batch - ItemWriter

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ItemWriterItemWriter는 스텝에서 처리한 데이터를 출력하는 역할을 합니다. ItemWriter는 스텝에서 처리한 모든 데이터를 한 번에 출력하며, 출력 대상은 일반적으로 데이터베이스, 파일 또는 메시징 시스템과 같은 외부 저장소입니다. ItemWriter는 일반적으로 데이터베이스에 대한 INSERT, UPDATE 또는 DELETE 쿼리를 실행하거나, 파일에 대한 출력을 수행하거나, 메시징 시스템의 큐 또는 주제에 데이터를 전송하는 데 사용됩니다. Spring Batch는 다양한 유형의 ItemWriter를 제공합니다. 일반적으로 사용되는 ItemWriter 유형은 다음과 같습니다. JdbcBatchItemWriter: JDBC를 사용하여 데이터베이스에 대한 배치 INSERT, UPDATE 또는 DELETE 쿼리를 실행하는 데 사용됩니다. JpaItemWriter: JPA를 사용하여 데이터를 저장하는 데 사용됩니다. FlatFileItemWriter: CSV, 고정 길이 또는 구분 기호로 구분된 파일에 데이터를 씁니다. StaxEventItemWriter: XML 형식으로 데이터를 씁니다. JmsItemWriter: JMS 대기열에 데이터를 전송합니다.

0

Spring Batch - ItemProcessor

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ItemProcessorItemProcessor는 Step 내에서 사용될 데이터를 변환 또는 가공하는 역할을 합니다. ItemReader가 읽어온 데이터를 ItemProcessor가 받아들여 처리하고, 처리한 결과를 ItemWriter에 전달합니다. ItemProcessor는 일반적으로 데이터 변환, 유효성 검사, 필터링 또는 데이터 가공과 같은 작업을 수행하는 데 사용됩니다. 예를 들어, ItemProcessor를 사용하여 입력 데이터의 길이를 제한하거나, 데이터를 수정하거나, 유효성을 검사하거나, 데이터를 필터링할 수 있습니다. ItemProcessor는 단일 입력 값을 받아 처리 결과를 반환하는 단순한 함수형 인터페이스인 ItemProcessor<T, S>를 구현합니다. 여기서 T는 입력 유형이고, S는 출력 유형입니다. ItemProcessor는 스텝 처리 과정에서 중요한 역할을 합니다. 데이터를 변환 또는 가공하여 ItemWriter가 처리할 수 있는 형식으로 변환하므로, 대용량 데이터 세트를 효율적으로 처리하는 데 매우 유용합니다. 또한, ItemProcessor를 사용하여 데이터 유효성 검사 및 데이터 가공 작업을 수행하여 데이터 품질을 유지하고, 필요한 작업을 수행할 수 있습니다. ItemProcessor 인터페이스

0

Spring Batch - ItemReader

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ItemReaderItemReader는 스텝 내에서 사용될 데이터를 읽는 역할을 합니다. ItemReader는 스텝이 시작될 때 호출되며, 데이터 소스에서 데이터를 읽어 Chunk 단위로 ItemProcessor에 전달합니다. ItemReader는 일반적으로 파일, 데이터베이스 또는 메시징 시스템과 같은 외부 데이터 소스에서 데이터를 읽는 데 사용됩니다. Spring Batch는 다양한 유형의 ItemReader를 지원하며, 일반적으로 사용되는 ItemReader 유형은 다음과 같습니다. FlatFileItemReader: CSV, 고정 길이 또는 구분 기호로 구분된 파일에서 데이터를 읽는 데 사용됩니다. JdbcCursorItemReader: JDBC 쿼리를 실행하고 ResultSet에서 데이터를 읽는 데 사용됩니다. JpaPagingItemReader: JPA를 사용하여 페이징 처리를 수행하고 데이터를 읽는 데 사용됩니다. StaxEventItemReader: XML 데이터를 읽는 데 사용됩니다. JmsItemReader: JMS 대기열에서 데이터를 읽는 데 사용됩니다. 다수의 구현체들이 ItemReader 와 ItemStream 을 동시에 구현하고 있습니다. ItemStream 은 파일의 스트림을 열거나 종료, DB 커넥션을 열거나 종료, 출력 장치 초기화 등의 작업을 진행합니다.

0

Spring Batch - ChunkProvider 와 ChunkProcessor

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ChunkProviderChunkProvider는 ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달하는 객체 ChunkProvider는 스텝을 실행할 때 Chunk<I> 객체를 만들고 Chunk의 크기를 지정합니다. 예를 들어, Chunk의 크기를 10으로 설정하면, ItemReader에서 10개의 데이터를 읽어와서 ItemProcessor 와 ItemWriter에 전달합니다. 이러한 과정을 Chunk 단위로 반복하여 모든 데이터를 처리합니다. ChunkProvider는 ItemReader에서 반환된 모든 데이터를 저장하지 않고, Chunk 단위로 처리하기 때문에 대용량 데이터를 처리하는 데 매우 효율적입니다. 이를 통해 메모리 사용량을 최소화하고, 처리 속도를 향상시킬 수 있습니다. Spring Batch에서는 기본적으로 SimpleChunkProvider를 제공합니다. SimpleChunkProvider는 Chunk의 크기를 지정하고, ItemReader에서 읽어온 데이터를 Chunk 단위로 분할하여 ItemProcessor 및 ItemWriter에 전달합니다. 또한, SimpleChunkProvider는 실패 시 롤백을 수행할 수 있도록 구성할 수 있습니다.

0

Spring Batch - ChunkOrientedTasklet

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder ChunkOrientedTasklet ChunkOrientedTasklet은 Tasklet 인터페이스를 구현체로 Chunk 지향 처리를 담당하는 도메인 객체 ChunkOrientedTasklet은 이 execute() 메서드 내에서 ItemReader, ItemProcessor 및 ItemWriter를 사용하여 Chunk 지향 처리를 수행합니다. TaskletStep 에 의해 반복적으로 실행되며 ChunkOrientedTasklet 이 실행될 때마다 매번 새로운 Transaction 이 생성되어 처리가 이뤄집니다. 예외가 발생할 경우 해당 Chunk 는 Rollback 되며 이전에 Commit 한 Chunk 는 완료된 상태가 유지됩니다. 내부적으로 ItemReader 를 핸들링하는 ChunkProvider 와 ItemProcessor, ItemWriter 를 핸들링하는 ChunkProcessor 타입의 구현체를 갖습니다. ChunkOrientedTasklet 흐름

0

Spring Batch - Chunk 기반 Step

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Chunk Chunk 란 여러개의 아이템을 묶은 하나의 덩어리, 블록을 의미합니다. 한번에 하나씩 아이템 입력을 받아 Chunk 단위의 덩어리로 만든 후 Chunk 단위로 트랜잭션을 처리합니다. 즉, Chunk 단위의 Commit 과 Rollback 이 이루어지게 됩니다. 일반적으로 대용량의 데이터를 한번에 처리하는 것이 아닌 Chunk 단위로 쪼개어서 더 이상 처리할 데이터가 없을 때까지 반복해서 입출력하는데 사용됩니다. Chunk는 대용량 데이터를 처리하는 데 사용되는 방법 중 하나입니다. Chunk 지향 처리는 일괄 처리 작업을 조각 단위로 분할하여 처리하며, 각 조각은 스텝 내에서 개별적으로 처리됩니다. 예를 들어, 1000개의 항목이있는 데이터 세트가 있다면, Chunk 처리를 사용하여 이 데이터를 100개씩 10 조각으로 분할 할 수 있습니다. Chunk는 큰 데이터 세트를 처리 할 때 매우 유용합니다. 데이터를 조각으로 나누어 처리하므로 메모리 부족 문제가 발생하지 않습니다. 대신 Chunk는 데이터를 작은 묶음으로 나누어 처리하고 일부 묶음이 완료되면 다음 묶음으로 이동합니다.

0

Circuit Breaker

Circuit Breaker분산 시스템에서 Circuit Breaker 는 일종의 예외 처리 메커니즘으로, 서비스 호출의 실패, 지연 등을 모니터링하고, 이를 감지하면 해당 서비스의 호출을 일시 중단시키는 역할을 합니다. 분산 시스템에서는 여러 대의 서버로 구성되어 있기 때문에, 서비스 간의 호출은 시스템의 다른 부분과 독립적으로 처리됩니다. 따라서, 서비스 호출 시에 실패가 발생하면 이를 처리하는 데 시간이 걸리고, 이를 무한정 대기하게 된다면 전체 시스템의 성능에 악영향을 미칠 수 있습니다. 이 때, Circuit Breaker는 이러한 지연을 방지하기 위해 호출을 일시 중단시킵니다. 이후, 일정 시간 동안 호출을 차단한 뒤, 정상적으로 작동하면 다시 호출을 허용합니다. Circuit Breaker 는 분산 시스템에서 안정성을 보장하기 위한 매우 중요한 요소 중 하나입니다. Circuit Breaker 가 없다면, 서비스 호출 실패와 지연에 대한 처리가 지연되어 시스템 전체의 성능에 영향을 미칠 가능성이 높습니다. Circuit Breaker 는 분산 시스템에서 발생할 수 있는 여러 가지 문제를 빠르게 감지하고, 시스템 전체의 안정성을 유지할 수 있도록 도와줍니다.

0

Istio - DestinationRule

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 DestinationRule DestinationRule은 서비스 요청이 특정 서비스 버전 또는 인스턴스로 라우팅되도록 지정하는 규칙을 정의하는 리소스 DestinationRule은 Istio 서비스 메시에서 트래픽을 관리하는 중요한 요소 중 하나입니다. 이를 사용하여 서비스를 라우팅할 때 사용할 서비스 버전, 인스턴스 및 연결 방식을 지정할 수 있습니다. DestinationRule은 Istio의 다른 기능과 통합됩니다. 예를 들어, VirtualService와 함께 사용하여 특정 경로 및 트래픽 유형에 대한 규칙을 지정할 수 있습니다. 또한, 서비스 인스턴스의 로드 밸런싱 및 서킷 브레이커와 같은 기능도 DestinationRule을 사용하여 정의할 수 있습니다. 서비스 이름: 규칙을 적용할 대상 서비스의 이름을 지정합니다. 서비스 버전: 규칙을 적용할 대상 서비스의 버전을 지정합니다. 서비스 서브셋: 대상 서비스의 서브셋을 지정하여 트래픽을 특정 서브셋으로 라우팅할 수 있습니다. 연결 풀: 서비스 요청에 사용될 연결 풀을 정의합니다. 예를 들어, 서비스 인스턴스의 최대 연결 수 및 연결 유지 시간 등을 지정할 수 있습니다. 트래픽 정책: 대상 서비스의 트래픽을 제어하는 정책을 정의합니다. 예를 들어, 연결 시간 초과 및 연결 오류를 처리하는 방법 등을 정의할 수 있습니다.

0

Istio - Locality Load Balancing (지역 로드 밸런싱)

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 http://itnp.kr/post/istio-circuit-break https://istiobyexample.dev/locality-load-balancing/ Istio - Locality Load Balancing Istio 의 Locality Load Balance 는 서비스 요청을 지역적으로 분산시키는 기능을 제공합니다. Locality Load Balance는 서비스 요청이 클러스터 내에서 발생할 때 해당 요청이 가장 가까운 지역의 서비스 인스턴스에 배정되도록 보장합니다. 이를 통해 클라이언트와 서비스 인스턴스 사이의 대기 시간을 줄이고, 네트워크 대역폭을 절약하며, 네트워크 병목 현상을 방지할 수 있습니다. Locality Load Balance는 Istio의 Envoy 프록시에서 구현됩니다. Envoy는 클러스터 내의 모든 서비스 인스턴스에 대한 위치 정보를 유지 관리하며, 클러스터의 지리적 분포를 파악하여 요청을 지역적으로 분산시킵니다. Locality Load Balance는 또한 Istio의 트래픽 관리 기능과 통합됩니다. Istio는 트래픽 관리 규칙을 정의하여 특정 서비스 인스턴스가 특정 지역에서만 처리되도록 할 수 있습니다. 이를 통해 서비스의 가용성을 높이고, 서비스 인스턴스 간의 부하를 균형있게 분산시킬 수 있습니다.

0

Istio - Sidecar Injection

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 Istio Sidecar injectionIstio는 Pod 안에 Envoy proxy container 를 Sidecar 패턴으로 생성하여 Service Mesh (discovery, connect, monitor) 를 합니다. Pod안에 Proxy container를 삽입하는것을 Sidecar Injection 이라고 부릅니다. Istio 에서 Sidecar Injection 은 Kubernetes 의 MutatingAdmissionWebhook 을 사용하여 구현됩니다. 이것은 Kubernetes의 API Server에 대한 요청 처리 중에 사용되며, 새로운 Pod가 생성될 때 Istio가 Sidecar Proxy 컨테이너를 자동으로 추가하는 것을 가능하게 합니다. Istio가 Sidecar를 주입하는 방식은 크게 두 가지 방법이 있습니다. 첫 번째는 자동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 자동으로 추가합니다. 이를 위해서는 Istio의 설치 시 Kubernetes 리소스를 수정해야 합니다. 두 번째 방식은 수동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 수동으로 추가해야 합니다. Sidecar 자동 주입 방식