본문 바로가기

Devops43

[Istio] mTLS 패킷 검증 서론  https://istio.io/latest/docs/concepts/traffic-management/ Traffic ManagementDescribes the various Istio features focused on traffic routing and control.istio.io Istio의 트래픽 관리 정책에 따르면, 서비스 메시에서 트래픽을 유도할 때에는 기본적으로 쿠버네티스 클러스터의 서비스 디스커버리와 엔드포인트를 활용한다고 되어 있다.   Istio와 Kiali를 구축하게 된다면, mTLS에 대한 부분을 아래 사진과 같이 확인할 수 있다.   nginx-1이라는 파드에서 nginx-2라는 서비스를 호출하여 nginx-2라는 파드를 호출하는 그래프를 나타낸 것인데, 각 초록선에 잠긴.. 2025. 3. 25.
[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.