Devops44 [Kubernetes] 한 노드에 동일한 파드 스케줄링 제한 개요 쿠버네티스 클러스터 환경에서 운영을 할 때에는, 생각하지 못한 다양한 상황을 많이 접할 수 있다. 그중 하나는 Deployments의 파드가 재 스케줄될 때, 상황에 따라 하나의 노드에 같은 파드가 두 개 이상 스케줄될 수 있다는 것이다. 이것이 문제가 되는 이유는 Deployments의 Replicas가 2인 경우 하나의 노드에 이 파드가 2개가 생성된다면, 단일 장애 지점(SPOF)이 되어버린다는 것이다. 가용성을 위하여 파드를 2개로 설정을 했음에도, 노드에 장애가 발생하면 가용성을 보장받지 못하는 상황이 되어버린다는 것이다. 물론 쿠버네티스에는, 이를 방지하기 위한 설정이 존재한다. 이제 해당 옵션을 알아볼 것이다. 아래는 replicas가 2인 nginx라는 deployment의 .. 2024. 11. 24. [Keycloak] Keycloak이란 Keycloak Keycloak은 RedHat에서 개발한 오픈소스 IAM(Identity and Access Management) 솔루션이다. 현대 애플리케이션에서 필수적인 사용자 인증과 접근 제어를 손쉽게 구현할 수 있게 해주는 도구이며, SSO(Single Sign On) 지원, 다양한 프로토콜 활용(Oauth, OIDC 및 SAML 등) 및 용이한 소셜 로그인 통합과 같은 장점으로 많은 기업에서 채택하여 사용하고 있다. 간단한 예시로는 대시보드 오픈소스(Kibana, Grafana 등)를 사용하면, 사용하는 오픈소스가 늘어나면서 더불어 사용자까지도 늘어나게 된다. 이는 사용자 관리에 있어서 관리자의 부하가 점점 늘어날 수밖에 없다. 그러할 때 Keycloak을 활용하면, 사용자 통합 관리가 .. 2024. 11. 21. [ArgoCD] App of Apps 패턴 ArgoCD와 관련된 글을 보다 보면 App of Apps 패턴이라는 용어를 심심치 않게 접할 수 있다. ArgoCD의 Reference에 의하면, 선언적으로 정의된 다수의 애플리케이션으로 구성된 단일 애플리케이션을 가진 패턴을 의미한다. 대규모 마이크로서비스 배포 환경의 복잡성을 효과적으로 관리하기 위해 등장한 것이라고 할 수 있다. App of Apps 패턴을 활용하면 중앙 집중적 관리를 기반으로 멀티 클러스터의 다양한 환경에서 배포를 손쉽게 할 수 있다는 장점을 가지고 있다. 주요 개념 App of Apps에서는 가장 중요한 개념이 3가지 존재한다. Root Application: 다른 모든 애플리케이션을 관리하는 최상위 애플리케이션Child Applications: Root App.. 2024. 11. 20. [Linux] 네트워크 사용량 모니터링 리눅스에서는 실시간으로 네트워크의 송수신량을 확인할 수 있는 많은 툴들이 존재한다. 이번 글에서는 그 툴들과 용도에 대하여 알아볼 것이다.1. nethogs 설치# Ubuntu 기준의 apt 설치sudo apt install nethogs 실행sudo nethogs 설치를 하고 실행을 한다면 아래와 같이 프로세스 및 네트워크 인터페이스 별로 해당 네트워크에 오가는 데이터 양을 확인할 수 있다. 2. iftop 설치 # Ubuntu 기준의 apt 설치sudo apt install iftop 실행sudo iftop iftop은 nethogs와 다르게 네트워크의 출발지와 목적지의 구분과 해당 데이터의 크기에 좀 더 직관적인 UI를 가지고 있다. 아래 사진을 참고하자면, 데이터의 크기를 가로 막.. 2024. 11. 17. [Linux] Tcpdump로 네트워크 인터페이스 패킷 확인 리눅스 환경에서 특정 네트워크 인터페이스에 송수신되는 패킷을 확인하고자 할 때 아주 편리한 툴이 있다. 바로 Tcpdump이다. 이를 활용하여 특정 서버에 네트워크 관련 문제가 발생했을 때, 패킷이 정확하게 서버로 전송이 오는지를 확인할 수 있다. ※ Tcpdump는 기본적으로 Root 권한이 필요로 한다. 다음은 쿠버네티스 클러스터에서 생성된 파드의 네트워크 인터페이스를 tcpdump로 확인하여 해당 파드에 패킷이 전송되는 것을 확인해 볼 것이다.파드 생성 # nginx 수신 파드 생성kubectl run receive-nginx --image=nginx:latest 파드를 생성해 주고, 배정된 IP를 확인한다. 파드가 생성된 노드에 접속하여, 해당 IP로 라우팅 되어 있는 네트워크 인터페이스.. 2024. 11. 16. [Harbor] Harbor에 Helm Chart 올리기 사내 개발 시 많은 회사들이 Image Registry로 ECR이나 Harbor 또는 Nexus를 많이 사용한다. Harbor는 컨테이너 이미지뿐만 아니라 Helm Repository로도 사용할 수 있다. 이번 글에는 해당 과정을 알아볼 것이다. Helm Chart 제작 간단하게 프로젝트를 만들고, 이를 tgz파일로 패키징 하는 작업을 할 것이다. # helm 차트의 새 프로젝트 생성helm create test 위 명령어를 실행하면 test라는 디렉터리가 생기고, 내부에는 아래 사진과 같은 구조로 생성된다. test라는 디렉토리로 이동해서 아래의 명령어를 실행하면 존재하는 파일을 압축하여 tgz파일로 패키징 해준다.# test 디렉토리로 이동cd test# helm 차트 패키징helm pack.. 2024. 11. 15. 이전 1 2 3 4 5 ··· 8 다음