본문 바로가기
반응형

전체 글73

Consul Cluster Peering을 통한 데이터 센터 간 통신 Cluster Peering이란?Consul에서 Cluster Peering은 독립적인 Consul 서버들을 서로 연결하여, 다양한 파티션과 데이터 센터에 배포된 서비스들이 통신할 수 있게 해주는 기능이다. 아래 그림은 HashiCorp Consul 문서에서 제공하는 Peering 아키텍처이다.그림 참조: https://developer.hashicorp.com/consul/docs/connect/cluster-peering위 그림에서는 Consul DC1과 Consul DC2가 Peering 연결 되어있고, 각 DC에 존재하는 Mesh Gateway를 통해 "Service A"에서 "Service D"로 통신할 수 있다는 걸 보여준다. Cluster Peering의 동작을 보면 Consul의 또 다른 .. 2024. 2. 7.
Terraform Cloud를 활용한 Kubernetes Provider 동적 자격 증명 구성(Dynamic Provider Credentials) Terraform Cloud를 통해 동적 자격 증명에 대한 간략한 내용 및 AWS Provider 동적 자격 증명 구성 실습을 이 전 글에서 다루었다.[Terraform Cloud를 활용한 AWS Provider 동적 자격 증명 구성(Dynamic Provider Credentials] 이번 글에서는 Kubernetes 동적 자격 증명 구성을 통해 Kubernetes RBAC권한을 이용하여 테라폼에서 Kubernetes Provider를 사용하여 Kubernetes 리소스를 배포하는 실습을 다룰 것이다.   Kubernetes Dynamic Provider Credentials의 인증 워크플로우는 아래와 같다. 사용자가 Terraform Cloud를 통해 Plan & Apply를 실행한다.Terrafor.. 2024. 1. 9.
Terraform Cloud를 활용한 AWS Provider 동적 자격 증명 구성(Dynamic Provider Credentials) Terraform Cloud 환경에서 Terraform을 사용할 때 AWS Provider 사용에 필요한 "access_key", "secret_key" 값을 설정해야 하는데 일반적으로 워크스페이스 변수 또는 변수 세트를 사용하여 정적으로 자격 증명을 저장하여 사용한다.  그러나 이 방식은 장기간 자격 증명이 저장되어 있고, 모든 작업에 동일한 권한이 부여되어야 함을 의미하며 이는 보안 문제를 야기할 수 있다. 또한, 정적 자격 증명을 저장하여 사용할 때 자격 증명을 교체해야 하는 상황이 발생하는데, 매번 수동으로 교체하는 작업은 운영 부담이 증가하게 되고 이 과정 중 보안 위험에 노출될 수 있다. 이러한 문제를 해결하기 위해 Terraform은 AWS 환경에서 사용할 수 있는 Dynamic Provid.. 2024. 1. 9.
Jenkins란? 개념부터 설치 실행까지 (쿠버네티스 환경) 먼저, Jenkins를 알기 전 CI/CD가 무엇인지 알아야 한다. CI/CD란?CI는 지속적 통합(Continuous Integration), CD는 지속적 배포(Continuous Deployment)의 약어로, 개발자들이 동시에 작업한 코드 변경 사항을 통합하고, 이를 실제 환경에 지속적으로 배포하는 프로세스를 의미한다. Jenkins란?Jenkins는 CI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화한다. Jenkins를 사용하면 코드 변경 사항이 발생할 때마다 자동으로 빌드, 테스트, 배포 과정을 수행할 수 있기 때문에 개발자는 코드 변경에 따른 빌드 및 테스트 과정을 수동으로 수행할 필요가 없어지며, 신속하게 개발에 대한 코드 검증 및 배포할 수 있고, 이 과정에서 휴먼 .. 2023. 12. 23.
Keycloak을 활용한 Kubernetes 사용자 인증 및 권한 관리 개요Kubernetes를 사용하는 환경에서는 사용자 인증 및 권한 관리 측면에서 어려움을 겪는다.  일반적으로 하나의 "kubeconfig" 파일을 통한 접근을 제공하지만 해당 파일을 여러 사용자가 공유하여 사용하는 것은 보안상 매우 취약하고 부적절한 방법이다. 따라서 사용자 인증 및 권한을 분리하여 관리해야 하며, 이를 위해서는 추가적인 설정이 필요하다. 또한 이를 팀 또는 프로젝트 단위로 효과적으로 관리하기에는 어려움이 존재한다. 이번 글에서는 이러한 어려움을 개선하고자 Keycloak을 통한 사용자 인증 및 권한 관리에 대한 내용을 다루며, 실제 구성 실습을 통해 동작을 이해하고자 한다.  Keycloak + Kubernetes 통합을 통해 오는 장점은 여러 가지가 있겠지만 실제 사용하면서 느낀 장.. 2023. 12. 19.
Gitlab Backup & Restore (Omnibus, Multi-node) 이번 글에서는 GitLab에서 프로젝트를 삭제한 후에 발생할 수 있는 비상 상황에 대비하여 백업 및 복원 시나리오를 다뤄보려 한다. Backup & Restore 시나리오 개요GitLab 프로젝트 삭제:  GitLab에서 실수로 프로젝트를 삭제했다고 가정한다.Backup 수행: 프로젝트를 삭제하기 전 백업을 수행한다.프로젝트 Restore: 프로젝트를 삭제한 후, 백업 파일을 사용하여 프로젝트를 복원한다.프로젝트 확인: 프로젝트 복원이 완료되었으면 안에 파일 및 내용이 정상인지 확인한다. 본 글은 이전에 작성된 [Gitlab 고가용성 환경 구성하기]의 실습을 기반으로 하기 때문에 본 글의 Backup & Restore 실습을 진행하려면 이전 글에서 다룬 GitLab HA 구성 환경이 필요하다.[참고]G.. 2023. 12. 12.
728x90
반응형