최근 게시글
-
분산 애플리케이션 코디네이션 용도로 Zookeeper 시스템 구성
Zookeeper는 분산 환경에서 시스템 간의 조정 및 동기화를 담당하는 오픈 소스 분산 서비스입니다. 주로 대규모 분산 시스템에서의 데이터 관리, 복제, 선택, 리더 선출 등의 작업을 처리합니다. 이는 클러스터 내 각 노드 간의 정보를 안전하게 유지하고 서비스의 일관성을 보장하는 데 중요합니다. Zookeeper의 주요 특징 Coordination Service: Zookeeper는 여러 서버 간의 조정 및 동기화 서비스를 제공하여 데이터 일관성을 유지합니다. Atomic Broadcast: Zookeeper는 데이터를 일관되게 배포하는 데 사용되는 원자적 브로드캐스트 메커니즘을 제공합니다. Consensus: Zookeeper는 분산 시스템에서의 일관성을 위해 투표 기반의 합의 알고리즘을 사용합니다...
2023.12.07
-
Ubuntu 패키지 관리 apt-get 명령어 GPG keyring 키파일 갱신
# apt update Hit:1 https://download.docker.com/linux/ubuntu jammy InRelease Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease Hit:3 http://archive.ubuntu.com/ubuntu jammy InRelease Hit:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:5 https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy InRelease Hit:6 http://archive.ubuntu.com/ubuntu jammy-backports InRelea..
2023.12.06
-
Kubernetes 리소스 정의하는 apply, edit, patch 다양한 해결방법
Kustomize는 Kubernetes 객체의 CLI 구성 관리자로, 레이어링을 활용하여 애플리케이션의 기본 설정을 보존합니다. 이는 원본 매니페스트를 실제로 수정하지 않고도 선언적 YAML 아티팩트를 오버레이하여 기본 설정을 덮어쓰는 방식으로 이루어집니다. Kustomize는 또한 kubectl과 통합되어 있습니다. Kustomize는 Kubernetes 리소스 및 필드를 인식하며 다른 도구들과 달리 단순한 텍스트 템플릿 솔루션이 아닙니다. Kustomize를 사용하면 하나의 기본 파일을 모든 환경 (개발, 스테이징, 프로덕션 등)에서 재사용하고 각 환경에 대한 오버레이 사양을 적용할 수 있습니다. 또한 Kustomize는 Helm 및 Argo CD와 같은 CD 솔루션과 함께 사용할 수 있습니다. Ku..
2023.12.05
-
Nginx Ingress Controller Backend HTTP and HTTPS 서비스 혼합(both)
NGINX Ingress 컨트롤러를 사용 중이라면, nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"은 작동하지 않습니다. 그러나 nginx.org/ssl-services는 백엔드에서 TLS를 필요로 하는 서비스를 선택할 수 있게 해줍니다. 이름이 혼동스러울 수 있어서 실제 목적을 깨닫기까지 시간이 걸릴 수 있습니다. 이것은 NGINX 하부에서 사용되는 표준 Kubernetes Ingress 컨트롤러에서는 작동하지 않으며, NGINX 원본 컨트롤러에서만 작동합니다. 참고: https://docs.nginx.com/nginx-ingress-controller/configuration/ingress-resources/advanced-configuration-wi..
2023.12.04
-
외부이름(ExternalName) 서비스를 지원하는 Ingress Controller
Ingress Controller는 ExternalName 유형의 서비스로의 요청 라우팅을 지원합니다. ExternalName 서비스는 주로 클러스터 외부의 IP 주소로 해석되는 외부 DNS 이름에 의해 정의됩니다. 이를 통해 Ingress Controller를 사용하여 클러스터 외부의 대상으로 요청을 라우팅할 수 있습니다. 참고: 이 기능은 NGINX Plus에서만 사용할 수 있습니다. 전제 조건 ExternalName 서비스를 사용하려면 먼저 ConfigMap을 사용하여 하나 이상의 리졸버를 구성해야 합니다. NGINX Plus는 이러한 리졸버를 사용하여 서비스의 DNS 이름을 해석합니다. 다음은 리졸버를 구성하는 예시 ConfigMap입니다. kind: ConfigMap apiVersion: v1 ..
2023.12.03
-
Kubernetes 환경에 Elasticsearch, Kibana 및 기타 Elastic 제품 구성
Elasticsearch, Kibana 및 기타 Elastic 제품을 관리하기 위한 Elastic Cloud on Kubernetes (ECK)를 설치하는 과정을 안내합니다. 아래는 주요 단계들을 정리한 것입니다. 전제 조건 Kubernetes 클러스터가 이미 실행 중이어야 합니다. ECK 설치 전에 지원되는 버전을 확인하세요. GKE를 사용하는 경우 사용자가 cluster-admin 권한을 가지고 있어야 합니다. Amazon EKS를 사용하는 경우 Kubernetes 제어 평면이 포트 443에서 Kubernetes 노드와 통신할 수 있도록 허용되어야 합니다. Custom Resource Definitions(CRDs) 설치:Elastic 관련 CRDs가 생성됩니다. kubectl create -f ht..
2023.12.02
-
Kibana UI를 subpath(/kibana) URL로 서비스 구성
하나의 도메인에서 여러가지 서비스를 운영하거나 복수의 Kibana 서비스를 운영하기 위해서, Kibana를 GCE Ingress 뒤에 서브패스인 "/kibana"로 노출하기 위해서는 몇 가지 구성이 필요합니다. Kibana 설정 변경 Kibana의 kibana.yml 파일을 열어서 다음을 수정해야 합니다. server: basePath: "/kibana" rewriteBasePath: true publicBaseUrl: "https://elastic.stack/kibana" 이 설정은 Kibana에게 서브패스 "/kibana"를 사용하고 있다는 것을 알려줍니다. Readiness Probe 업데이트 Kibana Pod 템플릿에서 readiness probe를 "/kibana/login" 경로로 업데이트해..
2023.12.01
-
Nexus Repository Manager 활용한 Docker 이미지 및 라이브러리 관리
Nexus Repository Manager는 소프트웨어 개발 및 빌드 프로세스에서 아티팩트(라이브러리, 패키지, 바이너리 등)를 저장하고 관리하는 데 사용되는 강력한 관리 도구 중 하나입니다. 이 도구는 다양한 패키지 유형에 대한 저장 및 검색을 지원하며, 특히 Java 개발자들 사이에서 널리 사용됩니다. Docker 이미지 또한 Nexus Repository Manager에서 관리할 수 있습니다. Docker 이미지를 Nexus Repository Manager에 저장하고 관리하는 방법은 다음과 같습니다. Nexus Repository Manager 설치 및 설정 Nexus Repository Manager 설치 Sonatype 공식 웹사이트에서 Nexus Repository Manager를 다운로드..
2023.11.30
-
Docker 환경 Container를 Kubernetes 환경으로 이전하는 과정
간단한 Flask 어플리케이션을 Docker에서 Kubernetes로 이전하는 과정을 정리했습니다. 도커 이미지 수정 기존 Dockerfile에서 필요한 라이브러리 및 환경 설정을 추가하거나 수정한다. FROM python:3.8 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"] Kubernetes 매니페스트 파일 작성 deployment.yaml 및 service.yaml 파일을 작성한다. # deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: flask-app sp..
2023.11.29
-
언어 모델 기반 애플리케이션 개발 프레임워크 LangChain
LangChain은 언어 모델을 기반으로 하는 애플리케이션을 개발하기 위한 프레임워크입니다. 이를 통해 다음과 같은 특징을 갖는 애플리케이션을 개발할 수 있습니다. 문맥 인식: 언어 모델을 문맥 소스에 연결하여 응답을 생성합니다. (프롬프트 지시사항, 몇 가지 예시, 응답을 기반으로 하는 콘텐츠 등) 추론: 주어진 문맥을 기반으로 답변 방법이나 취해야 할 조치 등을 추론하는 데 언어 모델을 활용합니다. 이 프레임워크는 여러 구성 요소로 구성되어 있으며 다음과 같은 상호 작용을 확인할 수 있습니다. LangChain 패키지: Python 및 JavaScript 패키지로, 다양한 구성 요소에 대한 인터페이스 및 통합, 이러한 구성 요소를 연결하여 체인과 에이전트로 결합하는 기본 실행 시간 및 고성능 작업을 ..
2023.11.28