본문 바로가기

전체 글92

[Kubernetes] bitnami/kafka (Helm Chart) SASL Authentication 에러 1. 에러 발생 헬름 차트를 이용하여 bitnami의 kafka 프로젝트 설치 후 kafka-client 내부에서 Producer의 동작을 확인하는 과정에서 다음의 에러가 발생했다. # kafka-client 내부 Producer 토픽 확인 시 에러 [2023-08-19 14:38:24,607] WARN [Producer clientId=console-producer] Bootstrap broker kafka-controller-2.kafka-controller-headless.kafka.svc.cluster.local:9092 (id: -3 rack: null) disconnected (org.apache.kafka.clients.NetworkClient) [2023-08-19 14:38:24,609].. 2023. 8. 24.
[Kubernetes] 쿠버네티스 내 헬름 차트(Helm Chart)로 Apache Kafka 설치(bitnami) 쿠버네티스 환경에서 MSA기반의 EDD(Event-Driven-Development)를 구축하는데 있어, 다양한 메시지 큐가 존재하는데, 대중적으로 많이 쓰이는 Kafka를 Helm을 이용하여 설치해 볼 것이다. 1. 헬름(Helm) 설치 헬름(Helm)이란, 쿠버네티스의 패키지 관리자이며, 간단한 명령어를 통하여 패키지를 쉽게 내려받고 이용할 수 있다. 공식 Docs : https://helm.sh/docs/ Docs Home Everything you need to know about how the documentation is organized. helm.sh 설치 또한, 아래 명령어를 통하여 간단하게 할 수 있다. # Ubuntu/Debian # apt 이용 curl https://baltocdn.. 2023. 8. 22.
[Kubernetes] 파드 간 통신 방법과 FQDN/DNS 요청 시 발생한 에러 처리 쿠버네티스 환경에서 Pod는 바인딩한 Service의 이름이나 Cluster-IP를 이용하여 다른 Pod와 통신을 할 수 있다. 해당 글에서는 파드 간 통신 방법과 해당 방법을 이용하는 중 발생한 에러 및 트러블 슈팅에 대하여 다룰 것이다. 1. 파드 간 통신 예시로, nginx라는 Pod가 존재하고, [Pod] # nginx-pod.yaml apiVersion: v1 kind: Pod metadata: labels: app: nginx name: nginx spec: containers: - image: nginx:latest name: nginx resources: {} dnsPolicy: ClusterFirst restartPolicy: Always status: {} my-spring-boot라는.. 2023. 8. 21.
[Algorithm] 시간 복잡도 (Time Complexity) 1. 시간 복잡도 및 표기법 시간 복잡도는 특정 코드가 있을 때, 해당 코드에서 특정한 입력이 주어졌을 때, 얼마나 많은 연산을 하는지에 대한 개념을 나타낸 것이다. 알고리즘마다 특정 값에 대한 참조, 연산이 많을수록 당연히 복잡도가 다르고, 때에 따라서는 비효율적인 알고리즘이 될 수 있기에 우수한 성능을 낼 수 있는 알고리즘을 구현하기 위해서는 시간 복잡도를 정확하게 이해하고 알고리즘을 설계할 필요가 있다. 시간 복잡도를 표기하는 방법에는 아래의 3가지가 존재한다. 1) 빅 오(Big O) 표기법 빅 오(Big O) 표기법은 알고리즘의 실행 시간을 최악의 경우의 시간 복잡도로 나타내는 데 사용된다. 어떤 알고리즘의 시간 복잡도가 O(f(n))이라면, 해당 알고리즘의 실행 시간은 입력 크기 n이 증가함에.. 2023. 8. 19.
[Network] Private(사설) IP / Public(공인) IP 1. Private(사설) IP : 사설 IP 주소는 내부 네트워크에서 사용되며, 주로 가정이나 사무실에서 사용하는 로컬 네트워크에서 장치들을 식별하기 위해 사용된다. 사설 IP 주소는 글로벌 인터넷에서 고유(Unique) 하지 않고, 로컬 네트워크 내에서만 중복 없이 사용되며, 필요에 따라서 배정하여 사용하고, 아래 특징을 가진다. 제한된 범위 : 사설 IP 주소는 특정 범위 내에서 할당 10.0.0.0 ~ 10.255.255.255 172.16.0.0 ~ 172.31.255.255 192.168.0.0 ~ 192.168.255.255 로컬 네트워크 : 사설 IP 주소는 로컬 네트워크에서만 사용되기 때문에 외부 인터넷에서 사설 IP로 직접 접근 불가능 NAT (Network Address Transla.. 2023. 8. 16.
[Kubernetes] 쿠버네티스 Ec2(Kubeadm) 환경에서 Master-Worker Node 구축 쿠버네티스 환경을 구축하는 방식에는 다양한 방법들이 존재하는데, 그중에서도 kubeadm을 이용하여 ubuntu 서버 내에 설치하고 직접 클러스터를 구축하는 방식을 다루어 볼 것이다. 1. EC2 인스턴스 생성 쿠버네티스는 기본적인 컴퓨터 자원의 사용량이 많기 때문에 인스턴스 사양의 CPU는 2 core 이상, RAM은 2 GB 이상을 필요로 한다. ubuntu 서버 기준으로 t2.medium이나 t3.medium이 최소 사양이라고 볼 수 있다. 위와 같이 마스터 노드 1개, 워커 노드 1개로 구성할 것이다. 2. 인스턴스 보안그룹 생성 쿠버네티스는 노드 간 다양한 포트를 통하여 통신을 하는데, 컨트롤 플레인(마스터 노드)과 워커 노드의 각각의 필요한 포트를 이용하기 위하여 보안 그룹 설정을 필요로 한다.. 2023. 8. 11.