본문 바로가기

Devops42

[Cilium] Cilium 설치 후 Node NotReady 및 coredns Pending 서론 온프레미스 환경에서 kubeadm으로 쿠버네티스 클러스터를 구성한 후, CNI로 Cilium을 설치하며 생긴 이슈이다.  cilium을 정상적으로 설치한 후 cilium cli으로 배포된 cilium 파드의 정상적인 상태까지 확인했다.   하지만 지속적으로 Node 상태를 확인하면 "cni plugin not initialized"라는 이유로 NotReady가 되어 있었고, Coredns도 계속 Pending 상태로 있었다. 해결 기존 설치된 CNI의 영향을 의심하여, kubeadm reset과 /etc/cni 삭제 및 iptables도 flush를 해줬으나 해결하지 못하였고, 아래 링크를 통하여 혹시나 해본 것이 잘 되었다. https://discuss.kubernetes.io/t/k8s-cni-.. 2025. 2. 12.
[Keycloak] Grafana Oauth 로그인 서론 일반적으로 사용자가 늘어난다면, 권한에 대한 작업은 사용하는 플랫폼의 곱으로 구성된다.ex) 사용자가 1명 늘어나면, 사용될 플랫폼의 개수만큼의 추가적인 작업이 필요하다는 의미  사용자 수가 많아진다면, 사용자의 생성/삭제와 권한 부여/수정과 같은 작업을 하는 시간 및 노력도 많이 들고, 산재된 사용자의 정보로 인하여 관리하는 부분에서 더 애를 먹게 되는 것은 필연적이다.  위와 같은 이유로, 사내 오픈소스 툴들의 사용자를 Keycloak을 활용하여 집약적으로 관리하는 방향으로 개선하게 되었다.   이전에는 Keycloak에 대한 개념과 간단한 설치 과정(k8s 환경)을 알아보았다. https://ssnotebook.tistory.com/entry/Keycloak%EC%9D%B4%EB%9E%80 [.. 2025. 2. 10.
[Jenkins] Jenkins Pipeline내 UUID 생성 CI/CD에 많이 사용되는 Jenkins는 Java로 개발되어 있어서 내장된 라이브러리를 파이프라인에서 활용이 가능하다.  이를 활용하여 Pipeline을 만들 때, Docker Image Tag와 같은 ID값에 사용할 수 있는, UUID를 생성하여 사용하는 방법을 알아볼 것이다.  Pipeline 생성    test란 이름의 pipeline을 먼저 생성한다.   Pipeline 내용 기입 pipeline { environment { NEW_UUID = UUID.randomUUID().toString() } agent any stages { stage('UUID TEST') { steps { sh 'echo $N.. 2025. 1. 13.
[Terraform] Terraform이란 Terraform과 Iac  최근의 Infra Engineer나 Devops Engineer 직무를 보면 하나같이 필요로 하는 기술 스택이 존재한다. 바로 Iac(Infrastructure as code)이다.   과거에는 서버를 구매해서 OS를 설치하고 내부 환경을 세팅하는 등의 수작업을 일일이 했다면, 현재는 다르다. Private Cloud와 Public Cloud를 막론하고 Iac를 활용하여 코드기반의 관리를 하는 경우가 많다.   회사의 규모가 일정 수준 이상이 된다면, 수십 수백 대 이상의 서버를 관리하는 상황이 비일비재하기 때문에, 이를 하나하나 관리해 준다면 관리에 필요한 인력과 비용이 상당히 커질 것이다.   하지만 코드로 관리를 하면서 현재 서버의 상태에 대한 명세를 코드로 쉽게 확인하.. 2024. 11. 26.
[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.