본문 바로가기

전체 글

(82)
최종 프토젝트 - 스마트 팩토리 운영을 위한 모니터링 및 알람 시스템 SaaS SmaTory 이번 프로젝트에서 만든 서비스의 이름으로, Smart Factory의 준말이다. 해당 프로젝트는 SaaS로써, 서비스 사용자와 관리자를 모두 고려하고 만들었다. 서비스 대상 공장의 경우는 자동차 생산을 목표로 가정하고, 기존 데이터베이스가 있는 공장과 아예 처음부터 새로 신설해야하는 데이터베이스 미보유 공장을 모두 고려했다. SmaTory 사용자는 실시간 탄소 배출량, 온습도, 자재 수량, 에너지 사용량 분석을 제공받으며, 탄소 배출량이 설정한 임계값을 넘어갈 시 Email/Slack을 통해 알림이 울려야한다. SmaTory 관리자는 서비스 모니터링을 제공받으며, 테스트를 위한 개발 서버도 제공받아야한다. 전체 Architecture 프로젝트 일정 담당 파트( Data Infra ) 해당 ..
CI / CD - Jenkins, Gti Lab CI/CD 파이프라인이란? CI/CD 파이프라인은 새 버전의 소프트웨어를 제공하기 위해 수행해야 할 일련의 단계이다. 지속적 통합/지속적 배포(CI/CD) 파이프라인은 DevOps 또는 사이트 신뢰성 엔지니어(SRE) 방식을 통해 더 효과적으로 소프트웨어를 제공하는 데 초점을 맞춘 방법이다. CD/CD 파이프라인은 특히 통합 및 테스트 단계와 제공 및 배포 단계에서 모니터링 및 자동호라르 도입하여 애플리케이션 개발 프로세스를 개선한다. CD/CD 파이프라인의 각 단계를 수동으로 실행할 수도 있지만, CD/CD 파이프라인의 진가는 자동화할 때 드러난다 Ci/CD 파이프라인의 단계는 각기 다른 태스크 하위 집합으로 이루어져 있는데, 이를 파이프라인 단계(pipeline stage)라고 부른다. 일반적인 파이..
Kubernetes - Amazon EKS Amazon EKS란? Amazon Elastic Kubernetes Service(Amazon EKS)는 Kubernetes 제어 플레인을 설치하고 운영할 필요 없이 AWS에서 Kubernetes를 손쉽게 실행하도록 하는 관리형 서비스이다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 조정 및 관리 자동화를 위한 오픈 소스 시스템이다. Amazon EKS는 여러 가용 영역에서 Kubernetes 제어 플레인 인스턴스를 실행하여 고가용성을 보장한다. Amazon EKS는 비정상 제어 플레인 인스턴스를 자동으로 감지하고 교체하며, 자동화된 버전 업그레이드 및 패치를 제공한다. IAM 설정 IAM 사용자 생성 MFA 디바이스 할당 액세스 키 만들기 IAM 로그인 AWS EKS VM 세팅 AWS 자..
Kubernetes - GCP에서의 사용 GCP 새 프로젝트 생성 똑같은 스펙으로 worker1(asia-northeast3-b), worker2(asia-northeast3-c)도 생성. # 모든 VM에서 업데이트 sudo yum update -y # 윈도우 cmd창에서 ssh-keygen 생성된 'id_rsa.pub'을 메모장으로 켜서 복사. GCP - 멀티 노드 // VM 아이피 정리 master1 (a) 10.178.0.234.64.39.169 worker1 (b) 10.178.0.334.64.99.212 worker2 (c) 10.178.0.434.64.106.92 // ## MobaXterm으로 외부 아이피를 통해 접속 # 모든 VM에서 사용자 root로 변경 sudo su - root # 모든 VM에 호스트 정보 입력 (노드를 사용..
Kubernetes - 모니터링(Prometheus, Grafana), 오토스케일링(HPA) 프로메테우스, 그라파나 Prometheus Prometheus는 CNCF가 호스트하는 오픈 소스 소프트웨어 모니터링 도구이다. 운영 비용이나 서버 측 머신 리소스가 필요하다. 여러 가지 메트릭을 수집/그래프화/모니터링할 수 있다. 대부분의 모니터링 도구가 Push 방식 즉, 대상 서버에 에이전트를 설치하고 이 에이전트가 메트릭 데이터를 수집해서 모니터링 서버로 보내면 상태를 보여주는 방식을 취한다. 하지만, Prometheus는 Pull 방식을 사용하여, 대상 서버에 에이전트가 떠있으면 Prometheus 서버가 주기적으로 에이전트에 접속해서 데이터를 가져오는 방식을 취한다. Grafana Grafana는 오픈소스 메트릭 데이터 시각화 도구로 메트릭 분석 플랫폼을 지향하고 있다. 매트릭 정보를 시각화하고..
Kubernetes - 스케줄링(taint & toleration, cordon , drain), 스케줄링 스케줄링 사전 작업 # 템플릿으로 만든 모든 것들 삭제 (템플릿으로 생성되지 않은 네임 스페이스는 남아있다) kubectl delete -f . # 네임 스페이스 삭제 kubectl delete ns kyounggu kubectl delete ns test-namespace kubectl delete ns metallb-system # 현재 네임 스페이스 변경 kubectl config set-context kubernetes-admin@kubernetes --namespace=default # deployment 삭제 kubectl delete deployments.apps mysql-deploy kubectl delete deployments.apps wordpress-deploy # 루트 ..
Kubernetes - NFS, configMap, namepsace, ResourceQuota NFS NFS 설치 ## docker에 nfs 설치 yum install -y nfs-utils.x86_64 mkdir /nfs_shared chmod 777 /nfs_shared/ echo '/nfs_shared 192.168.0.0/21(rw,sync,no_root_squash)' >> /etc/exports systemctl enable --now nfs # 원활한 테스트를 위해 방화벽 중지 systemctl stop firewalld ## worker1과 worker2에도 nfs 설치 ## 쿠버네티스가 기본적으로 nfs타입을 모르기 때문 yum install -y nfs-utils.x86_64 NFS 사용 # nfs-pv 템플릿 작성 vi nfs-pv.yaml // apiVersion: v1 ki..
Kubernetes - Ingress, metallb, Volume Ingress란? 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이며, 일반적으로 HTTP를 관리함. 인그레스는 부하 분산(L7 Switch 로드밸런싱), SSL 종료, 명칭 기반의 가상 호스팅을 제공할 수 있다. 인그레스는 클러스터 외부에서 클러스터 내부 서비스로 HTTP와 HTTPS 경로를 노출한다. 트래픽 라우팅은 인그레스 리소스에 정의된 규칙에 의해 컨트롤된다. Ingress Ingress 실습을 위한 인프라 세팅 # master1에 git 설치 yum install -y git # git에서 ingress를 쓰기위한 파일을 가져온다. git clone https://github.com/hali-linux/_Book_k8sInfra.git # 가져온 yaml파일 적용 kubect..