목록DevOps (42)
KJH

Blackbox exporter 설정 파일 생성웹 서비스 엔드포인트를 모니터링하기 위한 http 모듈을 구성하기 위해 Blackbox configuration 파일을 ConfigMap으로 작성합니다.# kubectl --namespace=monitoring apply -f configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: prometheus-blackbox-exporter labels: app: prometheus-blackbox-exporterdata: blackbox.yaml: | modules: http_2xx: http: no_follow_redirects: false pr..

istiod 설치 (1.5 버전 이후 부터는 istiod로 부르고 all-in-one 으로 설치되는듯) kubectl create namespace istio-system curl -L https://git.io/getLatestIstio | sh - cd istio-1.12.0 helm repo add istio https://istio-release.storage.googleapis.com/charts helm install istio-base -n istio-system manifests/charts/base helm install -n istio-system istio-17 manifests/charts/istio-control/istio-discovery helm install -n istio-..

1. Istio 서비스 메시 분야에서 대표적으로 사용하고 있고, 오픈 소스 서비스 서비스에 대한 연결, 보안, 제어 및 모니터링을 할 수 있고, 배포의 복잡성을 줄여 개발팀의 부담을 덜어줄 수 있음 2. Istio 구조 2.1 Envoy 서비스하는 파드의 init-container로 동작 서비스로 들어오는 트래픽을 proxy가 통제 2.2 Pilot 파일럿은 envoy에 대한 설정 관리를 하는 역할 Istio에 배포된 envoy의 생명 주기를 담당하며, 각 envoy는 pilot으로부터 가져온 다른 인스턴스 정보들로 로드밸런싱 서비스들의 엔드포인트(EndPoint)들의 주소를 얻을 수 있는 서비스 디스커버리 기능을 제공한다. 1. 새로운 서비스가 생성되면 adapters에 알림 2. 서비스 인스턴스를 m..

1. 마이크로서비스(MSA) 기존의 모놀리틱에서 서비스를 기능별로 작게 나누는 방법론입니다. 모놀리틱 방식보다 성능과 유지보수 측면이 우수하기 때문에 MSA로 전환하는 추세지만, 모든 서비스 구조를 파악하지 못할 만큼 규모가 커진다면 역효과를 낳게 됩니다. ※ 서비스가 서비스를 호출하는 방식이 되면, 아래와 같은 이슈가 생길 수 있습니다. 1. service A가 service B에게 요청을 해서 응답을 기다리는 중인데 service B는 정상 작동하지 않는상태 2. service A는 요청을 받을때까지 대기 상태가 되며, 그사실을 모르는 service A의 다른 thread도 대기상태가 됨 3. 모든 thread가 대기상태인 service A는 이후 다른 service가 service A를 호출하는 상..

1. Percona MongoDB (helm) MongoDB를 HA형태로 사용하려면 다양한 모듈을 따로 설치하고 각각 설정을 해줘야 하는 번거로움을 Percona Operator로 해결할 수 있습니다. 1.1 구조 사용방법이나 구조는 프로세스에 설치하는 MongoDB와 동일합니다. 1.2 동작 형태 Primary를 바라보고 read, write 진행 Primary는 자신이 실행한 모든 일을 OpLog에 기록 Secondary는 Primary가 기록한 OpLog를 전달 받고 데이터 동기화 진행 2. Primary 전환 및 이슈 정상적인 상태의 클러스터 (노란색이 Primary) rs1이 죽고 새로 Primary가 선정되어야 하는 상태 총 투표수의 과반수가 넘어가야 Primary로 선정됨 RS가 2개 이하로..

1. argoCD GitOps 배포를 지원하는 툴입니다. github repo가 update되었는지 확인하고, 업데이트되면 sync 형태로 반영합니다. 2. helm chart로 argoCD 설치 노드포트 사용 ※ helm 설치 curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh chmod +x get_helm.sh ./get_helm.sh 2.1 argoCD 설치 helm repo add argo https://argoproj.github.io/argo-helm kubectl create namespace argocd helm upgrade -i argocd argo/argo-cd -n argoc..

1. kustomize k8s에 app을 배포해서 사용하기까지에는 deployment, svc, ingress, config 등등 많은 yml이 필요한데 kustomize를 사용하면 해당 앱이 사용할 모든 yml를 패키지로 관리해서 삭제, 배포, 수정이 편리해짐 비슷한 툴로는 helm이 있음 대중성은 helm이 더 높음 1.2 파일 비교 helm kustomize values.yaml base/kustomization.yaml overlays/dev/kustomization.yaml template/*.yaml base/*.yaml 1.3 폴더 구조 1.4 파일 내용 ./base/kustomization.yaml apiVersion: kustomize.config.k8s.io/v1beta1 kind: K..

1. CD 과정에서 사용될 Dockerfile 테스트 용도로 사용할 crawling app이고 cronjob으로 돌릴 용도 FROM python:3.9 LABEL maintainer="mskjh6@naver.com" RUN mkdir -p /app/server COPY . /app/server WORKDIR /app/server RUN pip install --upgrade pip RUN pip3 install -r requirements.txt ENTRYPOINT ["python", "naver.py"] 2. Github registry docker registry처럼 관리되는 기능이 있음 정식 서비스는 아니라서 기능을 Enable 해줘야함 3. cd.yml 등록 .github/workflows/cd...