OKE 노드 장애로 인한 Redis 접속 불가 이슈 해결
·
Infra(aws, oci)
최근 OKE(Oracle Kubernetes Engine) 환경에서 서버 접속이 되지 않는 문제가 발생했다.Jenkins에서 배포된 애플리케이션이 모두 다운된 상태였고, 로그를 확인하니 Redis 연결 오류가 반복되고 있었다.1. 장애 증상서버 애플리케이션이 Redis 연결을 시도하다가 계속 실패하는 로그가 출력됐다.org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to RedisKubernetes Pod 상태를 확인해보니, Redis Pod 자체가 존재하지 않았다.kubectl get pods -n redis# No resources found in redis namespace2. 원인 파악Redis Pod..
Oracle Cloud Always Free – OKE Ingress-NGINX 설정과 무료 SSL 적용기
·
Infra(aws, oci)
지난 글에서는 OKE 환경 구축 과정을 다뤘다. 이번 글에서는 Always Free 환경에서 Ingress-NGINX를 설정하고, 테스트 백엔드를 연결하며, 무료 SSL을 적용한 과정을 좀 더 자세히 정리한다. 이번 작업을 통해 OCI에서 비용을 최소화하면서도 안정적인 HTTPS 환경을 운영할 수 있었다.1. Ingress-NGINX Controller 설치OKE에서 외부 요청을 처리하려면 Ingress Controller가 필요하다. 이 컨트롤러는 클러스터 외부에서 오는 요청을 받아 내부 서비스로 전달하는 핵심 역할을 한다. OCI 환경에서는 불필요한 비용을 막기 위해 Controller는 하나만 두고, Reverse Proxy로서 모든 트래픽을 처리하도록 구성했다.Helm으로 Ingress-NGINX..
[Jenkins] GitHub 코드 빌드하고 Kubernetes에 자동 배포하기
·
Infra(aws, oci)
최근 Jenkins를 사용해 GitHub 저장소에서 코드를 받아 빌드하고, Kubernetes 환경에 배포하는 자동화 파이프라인을 구성했다.이 글에서는 그 과정에서 겪었던 시행착오와 해결 방법들을 정리한다.전체 자동화 흐름Jenkins가 GitHub에서 소스코드 pullGradle로 Spring Boot 애플리케이션 빌드 (.jar 파일 생성)jar 파일을 Kubernetes 노드로 복사Jenkins가 SSH로 노드에 접속해 kubectl apply 실행1. GitHub 연동 (Credential 설정)Jenkins가 private GitHub 저장소에 접근하려면 Personal Access Token이 필요하다.GitHub에서 발급한 토큰을 Jenkins의 Credential에 등록해야 한다.GitHu..
[AWS] EKS – 쿠버네티스를 직접 안 깔고 쓰는 방법
·
Infra(aws, oci)
요즘 인프라 쪽 기술을 보면 빠지지 않는 게 Kubernetes다.컨테이너 오케스트레이션 도구로 유명한데, 이걸 AWS에서 쓰고 싶을 때 선택할 수 있는 서비스가 바로 Amazon EKS다. 공식 명칭은 Elastic Kubernetes Service.나는 쿠버네티스를 공부할 때 따로 싱글 노드 클러스터를 구축해서 공부를 했었고, 회사에서는 Azure AKS 환경에서 했었다.그냥 그랬다고.. 1. EKS는 뭐하는 서비스인가?EKS는 AWS에서 제공하는 Managed Kubernetes Cluster 서비스다.즉, 사용자가 직접 쿠버네티스를 설치하고 운영하지 않아도AWS가 대신 컨트롤 플레인(Control Plane)을 관리해주는 구조다.쿠버네티스를 직접 EC2 위에 올릴 수도 있지만, 유지보수가 어렵고 ..
[Kubernetes] 싱글 노드 클러스터 구축하기 (kubeadm 기반)
·
Infra(aws, oci)
로컬 개발 환경이나 테스트 목적의 쿠버네티스 환경이 필요할 때, 단일 노드로 구성된 Kubernetes 클러스터를 구성할 수 있습니다. 이 글에서는 kubeadm과 containerd를 활용한 싱글 노드 클러스터 구축 방법을 단계별로 안내합니다.준비 사항Ubuntu 22.04 이상 권장root 권한 또는 sudo 권한 사용자시스템이 스왑(Swap)을 사용 중이라면 kubelet이 실행되지 않을 수 있습니다. 스왑 비활성화 명령: sudo swapoff -a1. 패키지 설치 및 저장소 설정sudo apt-get updatesudo apt-get install -y apt-transport-https ca-certificates curl gpgcurl -fsSL https://pkgs.k8s.io/core:..