전체 글
-
kubernetes - Service개발 2022. 6. 20. 20:52
쿠버네테스 상에선 서비스를 클러스터 네트워크에서 노출되는 Pod의 논리적인 집합으로 정의한다. 클러스터상에 존재하는 Pod은 selector를 통해 연결하고자 하는 고유의 서비스를 설정할 수 있고, 서비스는 연결된 Pod을 End Point로 둔다. 서비스는 고유의 VIP를 갖고 있기 때문에 클러스터 상에선 서비스를 이용해 내부 Pod에 접근할 수 있게 되며 연결된 Pod이 여러개 있는 경우 서비스는 부하 분산도 같이 담당하게 된다. 리버스 프록시의 역할과 로드밸런서의 역할을 한다. 예제 먼저 서비스 오브젝트를 만들어보자. 아래와 같은 yaml 파일을 만들고 kind: Service apiVersion: v1 metadata: name: service-example spec: selector: app.k..
-
Kubernetes - Deployment vs StatefulSet개발 2022. 6. 17. 20:00
Kubernetes는 Pod을 배포하는 방법으로 StatefulSet과 Deployment를 제공한다. Deployment를 주로 사용해본 입장에선 StatefulSet이 Deployment와 어떤 차이가 있는 것인지 이해하는게 난감했다. 공식 문서상에선 Pod의 순서와 특징의 보존을 보장한다는 설명이 있는데 여전히 잘 와닿지 않는 개념이다. Stateful and Stateless Application StatefulSet을 이해하기 위해선 먼저 Stateful Application과 Stateless Application을 먼저 이해하는게 좋을 것 같다. Stateless 인 경우에는 상태를 저장할 필요가 없는 애플리케이션이다. 만약 서버상에 인스턴스가 저장 관련 작업이 모두 외부 클라우드에 업로드한..
-
kubernetes - Configmap 생성하기개발 2022. 6. 10. 20:23
kubernetes에서 configmap 을 생성하는 여러가지 방법이 있는데 여기선 파일을 이용한 두가지 방식을 다뤄보려고 한다. 아래 game.properties 라는 파일을 컨피그맵에 추가한다고 해보자 ➜ ~ cat game.properties enemies=aliens lives=3 enemies.cheat=true enemies.cheat.level=noGoodRotten secret.code.passphrase=UUDDLRLRBABAS secret.code.allowed=true secret.code.lives=30% 파일 그 자체를 value로 넣고 싶다면 컨피그 생성 옵션으로 --from-file을 넣는다. 그러면 game.properties 라는 키 값과 파일 내부에 값이 추가가 된다. ➜..
-
kubernetes - Configmap개발 2022. 6. 8. 23:25
쿠버네테스 상에서 Configmap 이라는 오브젝트는 어렵게 생각할 필요 없이 클러스터 내에서 Key-Value 쌍의 데이터를 저장하는데 사용하는 API 오브젝트다. 논리적 컴퓨터에 해당하는 Pod은 같은 클러스터 내의 다른 오브젝트의 볼륨에서 환경변수나 구성 파일을 Key-Value로 지정할 수 있는데 이때 사용하는 Object 가 Configmap 이다. kubectl get configmaps 로 클러스터내에 존재하는 configmap 오브젝트를 검색할 수 있다. ➜ ~ kubectl get configmaps NAME DATA AGE aim-configmap 7 6s data: 내부에 있는 값이 configmap에서 key-value 로 저장하는 값이다. 아래 코드에서 enemies, enemie..
-
Kafka 용어 정리개발 2022. 5. 31. 21:18
Topic 카프카 클러스터의 브로커에서 데이터를 관리할 때 기준이 되는 개념. 데이터의 종류를 설정하는 개념이라고 보면 된다. 예를 들어 회원 가입에 대한 이벤트를 중점적으로 처리한다고 이름으로 "join.event" 라는 토픽을 만들어줄 수 있다. Leader Partition, Follower Partition 카프카 클러스터에게 전달한 Topic을 저장하는 데이터 저장소다. Topic은 손실이 되는 것을 막기 위해 하나의 Partition에만 소속되는 것이 아니라 여러개의 Partition에 중복으로 존재한다. 특정 Sector에만 데이터를 두지 않는 RAID 저장 방식과 다른데 차이점이 있다면 Topic의 경우 컨슈머에서 처리를 해야하는 데이터기 때문에 특정 Partition 에서 데이터를 받아와..
-
golang 장단점 분석 (vs JAVA)개발 2022. 3. 10. 14:49
장점 빠르다 Java는 JVM 위에서 돌아가기 때문에 실행하기 위해선 byte코드를 machine코드로 변환하는 과정이 필요하다. 반면 golang은 빌드과정에서 이미 machine코드로 변환했기 때문에 바로 동작할 수 있다. 빌드에 걸리는 시간도 GO 언어 내부적으로 최적화를 많이 해둬서 빠른편이다. 초기 C++에서 실용성을 추가한 버전이기 때문에 속도는 거의 C++과 비슷하다고 봐도 무방할 것 같다. 비동기 작업이 쉽다 GO 언어에는 goroutine이라는 비동기 작업 처리용 경량 쓰레드가 있다. 코틀린에 coroutine과 비슷한 원리인데 둘다 사용해본 입장에선 goroutine이 좀더 간결하고 쓰기 간편했다. Nodejs 가 갖고 있는 비동기처리의 장점을 go 언어 상에도 잘 녹여낸 것 같다. 배..
-
Flutter - Row, Column, Flexible, Expanded개발 2022. 3. 1. 12:45
Flutter UI의 기본 위젯인 Row, Column, Flexible, Expanded에 대해서 알아보자. Row Flutter에서 Row 위젯은 안드로이드로 치면 LinearLayout 이면서 Orientation 이 Horizontal 인 뷰이다. Row 위젯에서 Children의 아이템으로 선언된 위젯은 동일한 Y축에서 순서대로 정렬된다. 아래 코드는 Row 의 children 속성에 두개의 Container 위젯과 하나의 Text 예제를 선언한 결과다. 그 아래 그림처럼 두 개의 Container와 하나의 Text 위젯이 그려지는 것을 확인 할 수 있다. child: Container( color: Colors.white, child: Row( children: [ Container(heigh..