본문 바로가기

전체 글120

[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.
[Network] LDAP(Lightweight Directory Access Protocol) LDAP : LDAP(Lightweight Directory Access Protocol)은 TCP/IP 상에서 운용되는, 디렉터리 서비스에 액세스하여 자원을 조회하고 수정하기 위한 응용 프로토콜이며, 이름에서 볼 수 있는 것처럼 네트워크 상의 디렉터리 서비스 표준인 X.500의 DAP(Directory Access Protocol)의 경량화 버전이다.  LDAP의 적절한 예시로 [전화번호부]가 있다.- 2000년도 초반까지는 개인 신상 정보가 일부 기록된 [전화번호부]가 존재했다.   옛 전화번호부에는 [ㄱㄴㄷ...] 순의 일련의 단어(이름)로 구성되어 있고, 이름마다 각 개인의 "전화번호"와 "주소"와 같은 개인 정보가 기입되어 있다.  즉, "홍길동"이라는 디렉토리 안에 개인의 특성을 가지는 "전화.. 2025. 2. 7.
[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.
[Algorithm] 다익스트라(Dijkstra) 알고리즘 다익스트라 알고리즘 다익스트라 알고리즘은 1959년 네덜란드의 컴퓨터 과학자 에츠허르 다익스트라가 개발한 최단 경로 탐색 알고리즘이다.  이 알고리즘은 그래프에서 한 정점에서 다른 모든 정점까지의 최단 거리를 구하는 데 사용되며, 실 생활에 사용되는 예시로는 최단 거리 알고리즘답게 내비게이션 시스템, 네트워크 라우팅 등과 같은 곳에 사용된다.   위 예제는 1번 노드(a)에서 5번 노드(b)로 가는 최단 거리를 구하는 과정을 나타낸 것이다.  기준이 되는 노드에서 방문하지 않은 각 노드 간의 거리를 계산하고, 이를 통하여 가장 낮은 거리로 계산되는 각 노도의 경로를 모두 계산하게 되는 것이다. 예제 아래는 heapq를 활용하여, 위의 예제를 다익스트라 알고리즘을 코드로 구현한 것이다. import hea.. 2024. 11. 27.
[Terraform] Terraform이란 Terraform과 Iac  최근의 Infra Engineer나 Devops Engineer 직무를 보면 하나같이 필요로 하는 기술 스택이 존재한다. 바로 Iac(Infrastructure as code)이다.   과거에는 서버를 구매해서 OS를 설치하고 내부 환경을 세팅하는 등의 수작업을 일일이 했다면, 현재는 다르다. Private Cloud와 Public Cloud를 막론하고 Iac를 활용하여 코드기반의 관리를 하는 경우가 많다.   회사의 규모가 일정 수준 이상이 된다면, 수십 수백 대 이상의 서버를 관리하는 상황이 비일비재하기 때문에, 이를 하나하나 관리해 준다면 관리에 필요한 인력과 비용이 상당히 커질 것이다.   하지만 코드로 관리를 하면서 현재 서버의 상태에 대한 명세를 코드로 쉽게 확인하.. 2024. 11. 26.