젠킨스 설치는 쿠버네티스 위에 할 수도 있고 kops를 설치했던 EC2 서버에서 할 수도 있습니다. 둘 다 해봤을 때 대략 1. 쿠버네티스 내 설치 PV 등 추가로 설정 후, 빌드시 젠킨스 파이프라인에서 podTemplate 사용 2. EC2 리눅스 서버에 설치 - 쿠버네티스에서 Kubernetes Continous Deployment 플러그인 사용해서 배포하는 방법 1은 설정 방법이 많이 나와있지만 익숙하지 않아서 패스하고(현재 쿠버네티스 버전에서는 docker를 더이상 쓰지 않고 containerd를 쓰는 이슈도 있습니다) 2의 방법은 해당 플러그인이 현재 suspended 상태라 사용 불가능합니다. 해당 플러그인으로 설정하는 방법은 아래 블로그에 잘 정리되어 있습니다. https://zunoxi.t..
EC2 서버는 중지 후 재시작하면 아이피가 변경됩니다. EC2 서비스에 들어가면 좌측 메뉴에 Elastic IP가 있는데 여기서 Allocate를 누르면 신규 Elastic IP를 발급받아 EC2 인스턴스에 할당 가능합니다. 생성(Allocate) > 할당(Associate) > 할당 해제(Disassociate) > 삭제(Release) 할당된 인스턴스 실행중에는 Elastic IP 요금은 무료입니다. 지정된 인스턴스에서 해제하려면 Elastic IP를 선택하고 Action에서 Disassociate를 누릅니다. Release를 하면 생성된 탄력적 IP가 삭제되어 더이상 요금이 부과되지 않습니다. 생성된 상태에서 EC2에 할당된 것이 아니면 요금이 부과되므로 인스턴스 삭제 시 사용하지 않는 Elasti..
리눅스 계정 패스워드 등 서버 설정을 하고, kops를 설치해봅니다. sudo apt install net-tools #netstat 사용 위해 설치 sudo apt install unzip #zip 파일 unzip하기 위해 설치 sudo passwd root XXX #root 비밀번호를 XXX로 변경 sudo vi /etc/ssh/sshd_config # /PasswordAuth 엔터로 검색해서 PasswordAuthentication yes로 변경하면 키 대신 비밀번호로 인증 가능 sudo service sshd restart kops는 도메인이 있는 상태로 연결하거나 없는 상태로 연결하는 두 가지가 있는데, 저는 장기간 사용이 아닌 단기 사이드 프로젝트이기 때문에 가비아를 통해 1년 500원하는 s..
클라우드 서버는 제일 유명한 건 구글 GCP, 아마존 AWS 그리고 프리티어가 있는 오라클 OCI 등이 있지만 이번에는 AWS를 이용하여 서버를 구성해보겠습니다. 오라클 프리티어는 사실 프리티어 자체로는 쿠버네티스를 구현하기엔 사양이 부족합니다. AWS도 쿠버네티스 구현하다보면 프리티어 범위를 벗어납니다. 대략적으로 AWS 인스턴스 생성 및 기본 설정 kops를 이용해서 쿠버네티스 클러스터 구성 + 500원짜리 도메인 구매해서 사용하기 EC2에 젠킨스 설치 마스터노드에서 helm 설치 helm으로 젠킨스 설치 젠킨스에 깃헙을 이용해서 배포 구성 argoCD로 배포 MSA 소스 배포 를 만들어 보겠습니다. 사용툴은 AWS, kops, EC2, Kubernetes, Jenkins(젠킨스 내 각종 플러그인),..
kops 버그인 듯 한데 aws 환경에서 kops로 쿠버네티스 클러스터 구성 후 jenkins 배포 시 다음과 같은 오류가 발생 SyncLoadBalancerFailed status code: 403 Error syncing load balancer: failed to ensure load balancer: AccessDenied: User: arn:aws:sts::836399647365:assumed-role/aws-cloud-controller-manager.kube-system.sa.cluster.today-7r15r6/1675860055045299980 is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:ia..
kops로 쿠버네티스 클러스터를 구성하고 난 뒤 마스터노드에서 deployment를 적용하자 The connection to the server localhost:8080 was refused 오류 발생 kubeconfig 설정이 적용 안되서라고 /home/ubuntu/.kube/config는 제대로 생성되어 있음 The connection to the server localhost:8080 was refused - did you specify the right host or port? root 유저에서 실행해서 다른 계정의 설정이 적용되지 않음 cp /home/ubuntu/.kube/config /.kube/config kubectl config view https://stackoverflow.com/..
스프링 시큐리티 5.7.0 이후부터 websecurityconfigureradapter를 사용하면 websecurityconfigureradapter is deprecated가 나타납니다. 스프링부트 2.7.8 버전을 사용했더니 시큐리티 버전이 올라 코드 마이그레이션이 필요했습니다. 스프링 블로그에 해결 방법이 올라와 있습니다. https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter Spring Security without the WebSecurityConfigurerAdapter In Spring Security 5.7.0-M2 we deprecated the WebSecurityConfigur..
h2에서 @ColumnDefault(value = "CURRENT_TIMESTAMP") 을 이용하는 소스가 있었는데, DB를 mysql로 바꾸고 @Column(nullable=false) 했더니 default 컬럼 값에 문제가 있다고 실행 실패 JPA로 mysql에서 Datetime 컬럼에 생성일/수정일이 자동으로 들어가게 하는 두 가지 방법 엔티티 내에서 다음 코드 사용 1. @CreationTimestamp private Instant createdAt; 2. private LocalDateTime createdAt; @PrePersist public void createdAt() { this.createdAt = LocalDateTime.now(); } 날짜, 시간이 잘 입력됨 참고 https://..
접속 설정시 useSSL=false&allowPublicKeyRetrieval=true 두 가지 설정을 추가한다. jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true DBeaver 기준 설정 방법 접속 화면의 Driver properties에서 설정 변경 https://deeplify.dev/database/troubleshoot/public-key-retrieval-is-not-allowed [Mysql] Public key retrieval is not allowed 에러 해결 Public key retrieval is not allowed 에러가 발생하는 이유와 해결하는 방법에 대해서 소개해드립니다. deeplify...