Among Us - Yellow Crewmate 감쟈의 엔지니어 일지

전체 글 121

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

[Gitlab] Gitlab-ce 설치하기

https://about.gitlab.com/install/#centos-7?version=ce Download and install GitLab Learn about the various GitLab installation packages and downloads for Ubuntu, Debian, Docker, Google Cloud, and many more. about.gitlab.com 위의 링크는 Gitlab에서 제공하는 공식 설치 가이드이다. Gitlab은 CE버전(Community Edition)과 EE버전 (Enterprise Edition)으로 나눠지는데, CE는 오픈소스로 무료로 사용가능하고 EE버전은 유료버전이니 구분해서 사용하자. 이 글에서는 공식 설치 가이드에서 나와있는대로 설치..

Git 2021.09.13

[Jenkins] sudo: no tty present and no askpass program specified

Jenkins 파이프라인 작성하던 중 Build 과정에서 아래와 같이 Permission denied가 뜨면서 실패한다. /var/run/docker.sock의 권한문제로 보인다. # [Build] Permission denied $ docker build . -t test/test:latest Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpu..

Trouble Shooting 2021.08.19

[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

[Jenkins] Helm으로 jenkins 설치 후 init:crashloopbackoff

Helm install로 jenkins를 설치하고 kubectl get po -n jenkins 명령어로 확인해보면 pod의 상태가 running으로 나오지 않고 계속 Init 상태로 나온다... $ kubectl get po -n jenkins NAME READY STATUS RESTARTS AGE jenkins-0 0/2 Init:Error 2 (22s ago) 59s $ kubectl get po -n jenkins NAME READY STATUS RESTARTS AGE jenkins-0 0/2 Init:CrashLoopBackOff 2 (20s ago) 73s helm install 을 하게되면 jenkins-value.yaml 파일에서 설정한 값들로 jenkins를 설치를 하게 되는데, 그 안을..

Trouble Shooting 2021.08.11

[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