Among Us - Yellow Crewmate 'DevOps' 카테고리의 글 목록

DevOps 30

k8s 클러스터 모니터링 : Metrics-Server

Metrics-Server 란 ? 쿠버네티스의 Metrics-Server는 각 노드에 설치된 kubelet을 통해서 node 및 pod의 CPU,Memory 의 사용량 Metric을 수집한다. Linux에서 사용하는 top 명령어를 k8s에서 사용할 수 있게 해준다고 생각하면 된다. #node 리소스 사용량 확인 ubuntu@ip-10-0-0-246:~$ kubectl top no NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-10-0-0-167 134m 6% 2698Mi 70% ip-10-0-0-191 133m 6% 1616Mi 42% ip-10-0-0-246 309m 15% 1844Mi 48% #pod 리소스 사용량 확인 ubuntu@ip-10-0-0-246:~$ ..

DevOps/Kubernetes 2021.11.17

AWS EKS에서 ALB를 Ingress Controller로 사용해보자

쿠버네티스 클러스터 외부에서 내부로 통신하기 위해서는 NodePort, LoadBalancer 또는 Ingress를 사용하는 방법이 있다. 이번 게시물에서는 EKS 클러스터에서 Ingress Controller로 ALB를 사용하고 간단한 애플리케이션을 배포하여 테스트하는 과정에 대해서 이야기할 것이다. 우선, 본문에 들어가기에 앞서 외부와 통신하는 3가지 방법의 차이점에 대해서 적어보고자 한다. NodePort NodePort는 노드의 IP와 30000-32767 사이의 포트를 노출시켜 외부와 통신하는 방법이다. 이 방식은 1) 하나의 서비스당 하나의 포트만 할당할 수 있다는 점, 2) 포트가 제한적이라는 점, 3) IP가 바뀌면 접속 주소가 바뀐다는 점들을 고려하여 실제 서비스에서는 이 방식으로 서비스..

DevOps/Kubernetes 2021.10.17

kubeadm join 할 때 token값 확인하기

현재 구성되어 있는 클러스터에 새로운 워커노드를 join 해야할 때, kubeadm join 명령어를 통해서 클러스터에 추가시켜주게 된다. 하지만 막상 워커노드를 join 하려고 하니... 처음에 master 구성시에 kubeadm init 을 통해서 확인할 수 있었던 token 값을 모르겠다. 그럴때 쓰는 명령어.... token 값이 존재한다면 아래와 같은 명령어로 token 값을 확인할 수 있다. $ kubeadm token list token 값에는 만료기간이 있기 때문에, 위에서 token을 확인할 수 없다면 새로운 token을 생성해주어야 한다. $ kubeadm token create $ kubeadm token list Hash 값 확인 $ openssl x509 -pubkey -in /e..

DevOps/Kubernetes 2021.09.27

[ELK] ELK Stack을 이용하여 Linux 서버 로그 시스템 구축하기

이전 게시글을 통하여 ELK를 설치하는 과정에 대해서 알아보았다. [ELK Stack] 로그 시스템을 구축하기 위한 ELK를 설치해보자 1. ELK Stack 이란 ? ELK 는 오픈소스 프로젝트인 (Elastic search, LogStash, Kibana)의 앞글자만 따서 만들어진 용어이다. ElasticSearch : LogStash를 통해서 전송받은 데이터 분석 및 저장 기능을 담당한다.L.. potato-yong.tistory.com 이번 글에서는 ELK를 구축한 서버와는 별도로 다른 리눅스 서버에서 filebeat를 설치하고 로그를 실시간으로 수집하여 대시보드로 확인하는 과정에 대해서 알아보도록 하자 1. Filebeat 설치하기 우선 로그를 수집할 대상 리눅스 서버에 Filebeat를 설치하..

DevOps/Logging 2021.08.14

[ELK Stack] 로그 시스템을 구축하기 위한 ELK를 설치해보자

1. ELK Stack 이란 ? ELK 는 오픈소스 프로젝트인 (Elastic search, LogStash, Kibana)의 앞글자만 따서 만들어진 용어이다. ElasticSearch : LogStash를 통해서 전송받은 데이터 분석 및 저장 기능을 담당한다. Logstash : 데이터를 처리하는 파이프라인으로, 로그를 수집하여 ElasticSearch에 전송한다. Kibana : ElasticSearch에 저장되어 있는 데이터를 시각화하고, 실시간으로 분석할 수 있다. + 위의 ELK에서 Beat까지 추가되면서 ELK Stack이라고 불리고 있다. Beat는 대상 서버에서 데이터를 수집하는 역할을 담당하고 있다. ELK 설치하는 방식은 Docker로 설치하기, 패키지로 설치하기 등이 있는데 이번 글에..

DevOps/Logging 2021.08.07

[ArgoCD] ArgoCD에서 Blue/Green 배포하기

이전에 무중단 배포방식중 하나인 Blue/Green에 대해서 이야기 한적이 있다. 기존의 Kubernetes에서도 Deployment 2개를 생성하고 Service의 Selector를 변경해주는 방법으로 Blue/Green 방식의 배포를 할 수 있다. 하지만 이러한 방법은 Deployment 2개를 운영해야 하기 때문에 번거롭기도 하고 ArgoCD를 사용하면 더 편리하게 Blue/Green 방식으로 배포할 수 있다. 기존 Kubernetes에서는 1개의 Pod가 각각 Rolling Update 방식으로 배포된다. 1. Blue (2) - Green (0) 2. Blue (1) - Green (1)

DevOps/CI CD 2021.07.05

[ArgoCD] Kubernetes Cluster에 ArgoCD 배포하기

What is GitOps ?? GitOps라는 용어는 Weaveworks에서 처음 나오게 되었다. DevOps와 마찬가지로 특정 도구가 아닌 방법론이며 이름에서 알 수 있듯이 깃(Git)으로 관리(Ops)를 하겠다 라는 개념이다. DevOps를 적용하는 실천 방법 중 하나이며, Kubernetes를 대상으로 지속적 배포 (Continous Deployment)에 초점을 두고 있다. 때문에 GitOps는 빌드와 테스트를 하는 지속적 통합(Continuos Integration) 단계가 끝나고 난 후 배포하는 과정을 다루게 된다. 사람들은 Kubernetes 리소스를 코드로 변경 및 생성하거나 대시보드로 시각화 하기를 원했다. 이러한 GitOps 툴에는 Argo CD, Jenkins X, Spinnaker..

DevOps/CI CD 2021.07.02

[무중단 배포] Rolling, Blue/Green, Canary 배포

무중단 배포 DevOps 관련 공부를 하다보면 무중단 배포라는 단어가 눈에 많이 띄이는것 같다. 그래서 이번에는 무중단 배포에 대해서 한번 알아보고자 한다. 무중단 배포란? 무중단 배포는 말그대로 중단하지 않고 배포를 진행하는 것을 의미한다. 보통은 애플리케이션을 업데이트 한 뒤, 배포를 하게 될 경우 애플리케이션을 중단시키고 배포를 진행하게 된다. 이럴경우 사용자는 배포가 완료되는 시간 동안 애플리케이션 사용에 제한이 생긴다. 이렇게 서비스가 중단되는 시간을 다운타임(Downtime)이라고 하며, 이러한 다운타임을 해결하고자 생긴것이 무중단 배포이다. 무중단 배포를 하기 위해서는 두대 이상의 서버가 필수적이다. 실제로 서비스 중인 서버 1대와 새롭게 배포한 서버 1대를 사용하여 무중단 배포할 수 있다...

DevOps/CI CD 2021.06.16

[Jenkins] Jenkins에 Github를 연동하고 빌드 자동화하기

Jenkins를 이용하여 Github repository에 push 했을 때, 자동으로 빌드가 되도록 만들어보자. Jenkins와 Github를 연동하는 방법은 ID/PW를 인증하는 방식과 ssh 연동 방식이 있다. 하지만, ID/PW 인증으로 연동하는 방법은 보안상 추천하지 않기 때문에 이번 글에서는 ssh 연동하는 방식에 대해서 알아보도록 한다. 우선 이 글의 과정을 진행하기 전에, Jenkins와 Git이 미리 설치되어 있어야한다. 1. Jenkins 설치 https://potato-yong.tistory.com/117?category=853824 2. git 설치 $ yum install -y git 1. ssh 키 생성 이 글에서는 Jenkins와 Github를 ssh로 연동할 것이기 때문에, ..

DevOps/CI CD 2021.05.23

[Code Pipeline] EKS와 Code Pipeline를 사용하여 CI/CD 구축하기

이번에 해볼 실습은 지난 글에서 구축했던 EKS 클러스터를 사용하여 AWS Code Pipeline로 CI/CD를 구축하고 이벤트가 발생할 때마다 Slack으로 사용자에게 알람 메시지가 수신되도록 해보는것이다. 아직 EKS 클러스터가 구성되어 있지 않다면 https://potato-yong.tistory.com/126?category=853010 글로 가서 생성해주고 오도록 하자 위의 아키텍쳐를 순서대로 나열해보면 1. User가 Git Repository에 Push 2. Git Repository에 있는 소스 코드 빌드 3. Docker 이미지를 ECR에 업로드 4. ECR에 있는 Docker 이미지를 EKS 클러스터에 배포 5. Pipeline 이벤트 (Success/Fail) 발생 시, Cloud ..

DevOps/CI CD 2021.05.07