전체 글

1. 롤링 배포 (Rolling Update Deployment) 클러스터 가동 중지 시간 없이 새 버전을 배포하면서, 새 버전 파드를 하나씩 늘려가고 기존 버전의 파드를 하나씩 줄여나가는 방식이다. Kubernetes의 기본 배포 전략으로 spec.strategy.type으로 RollingUpdate, Recreate을 지정할 수 있다. RollingUpdate 옵션 maxSurge : 업데이트 중 원래 Pod 수 이상으로 예약할 수 있는 최대 Pod 수 (기본값: 25%) maxUnavailable : 업데이트 중 사용할 수 없는 최대 Pod 수 (기본값: 25%) 장점 많은 서버 자원을 확보하지 않아도 무중단 배포가 가능함으로 서버 수의 제약이 있을 경우 유용하다. 서비스의 지속적인 가용성을 제공하..
1. 테스트 사전 설명 이번 글에서는 ⑥ , ⑦ 번 CD 과정을 설정하는 과정을 설명하였습니다. 전체적인 테스트 구성 및 ① ~ ⑤ CI 과정은 이전 글을 참고하시길 바랍니다. [Devops] Jenkins, ArgoCD를 통한 CI/CD 구성 - (1) Jenkins 구성 1. 아키텍처 CI 과정 ① Push codes to the repository 애플리케이션 코드 수정 후 dockerimage repository로 git commit 및 push 한다. ② Trigger Job - build image dockerimage repository로 push되면 github webhook을 통해 build image Jo lilylabs.tistory.com 2. CD 과정 ⑥ Sync kubernet..
1. 아키텍처 CI 과정 ① Push codes to the repository 애플리케이션 코드 수정 후 dockerimage repository로 git commit 및 push 한다. ② Trigger Job - build image dockerimage repository로 push 되면 github webhook을 통해 build image Job이 Trigger 된다. ③ Build docker container image and save it in the ACR build image Job을 통해 Docker Container Image가 Build 되고 해당 이미지가 Azure Container Registry에 저장된다. ④ Trigger Job - update manifest build..
1. Linux 노드에 대한 대화형 셸 연결 1) 하기 명령어로 접근하고자 하는 Node의 이름을 확인한다. kubectl get nodes 2) 하기 명령어로 노드에서 컨테이너 이미지를 실행하여 연결한다. 해당 Pod는 노드에 대한 액세스를 제공한다. kubectl debug node/aks-nodepool1-37663765-vmss000000 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0 3) chroot /host 명령어를 입력하여 root 권한으로 Node에 접근한다. 4) exit 명령어로 대화형 셸 세션을 종료하는 명령을 입력한다. 5) 대화형 컨테이너 세션이 닫히면 kubectl delete pod 명어를 통해 노드 접속에 사용된 Pod를 삭..
1. Jenkins에서 Docker pipeline 플러그인 설치 Docker를 사용하여 pipeline을 구축하기 위해서는 Docker pipeline 플러그인 설치가 필요하다. 1) Dashboard → Jenkins 관리 → Plugins → Available plugins → docker pipeline 검색 후 설치 2. Jenkins에서 Github Credentials 구성 Jenkins 에는 미리 Credential 을 설정해놓고 빌드시 사용 할 수 있다. Github에서 Token을 발급받아 Jenkins Credential에 등록한다. 1) Github personal access token 생성 Github personal access token 생성하는 방법 token에 repo, ..
· CS/보안
1. RSA 암호화란? 현재 SSL/TLS에 가장 많이 사용되는 공개키 암호화 알고리즘이다. 전세계 대부분의 인터넷 뱅킹(대한민국 포함)이 이 RSA-2048 암호화를 사용한다. 공개키와 개인키가 한 쌍을 이루며, 공개키로 암호화한 내용은 개인키로만, 개인키로 암호화한 내용은 공개키로만 해독할 수 있다. 2. Encryption / Decryption Tool 사이트 접속 ​https://www.devglan.com/online-tools/aes-encryption-decryption 3. RSA Key 생성 공개키(Public Key)와 비공개키(Private Key)가 생성된다. 4. Test 진행 1) 비공개키의 소유자가 비공개 키를 이용해서 정보를 암호화한다. 2) 공개키와 함께 암호화된 정보를 ..
1. 사전 준비 Jenkins는 Java 개발 키트의 오픈 소스 버전 응용 프로그램으로 Java Platform의 오픈 소스 구현인 OpenJDK 11을 설치한다. sudo apt update sudo apt install openjdk-11-jdk OpenJDK 11 설치가 완료되면 Java 버전을 확인한다. java -version # openjdk version "11.0.7" 2020-04-14# OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) # OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing) 2. Jenkins 설치 wg..
· Cloud/Azure
1. Azure Private Endpoint 소개Azure에서 제공 중인 PaaS 서비스(Azure Storage, Azure SQL Database, Azure App Service 등)는 기본적으로 공용 인터넷을 통해 접근하게 된다. 이때, Azure Private Endpoint를 사용하면 네트워크 트래픽이 Microsoft 백본 네트워크를 통해 흐르게 되며 공용 인터넷에서 노출되지 않는다.Private Endpoint는 프라이빗 IP 주소를 사용하여 통신하기 때문에, 공용 IP 주소나 인터넷을 통한 외부 접속을 허용하지 않는다. 이를 통해 외부에서의 접근을 제한하고, 보안을 강화할 수 있다. 또한, Azure Private Endpoint는 트래픽을 암호화하여 데이터의 안전성을 보장한다.Azur..
· Cloud/Azure
1. 아키텍처 본 테스트는 '구성도01’과 같이 AWS의 ‘vpn 연결’에서 제공하는 2개의 터널 중 각각 1개의 터널만 Azure와 연결한다. AWS는 S2S VPN 연결에 2개의 터널이 있으며, 각 터널은 고유의 퍼블릭 IP 주소를 사용한다. Tunnel 1개만 up 되어 있어도 당장 사용은 가능하지만 Tunnel 장애 발생하면 바로 연결이 끊기기 때문에 이중화를 위해 Tunnel 2개를 모두 설정해서 사용하는 것을 권장한다. 2. 사전 구성 2-1. BGP APIPA 구성표 2-2. 생성 예정 리소스 1) AWS VPC 1개 가상 프라이빗 게이트웨이 1개 고객 게이트웨이 2개 사이트 간 연결 2개, 각각에 터널 2개(총 4개의 터널) 2) Azure 가상 네트워크 1개 활성-활성 및 BGP 지원 가..
· OS/Linux
1. 서버 볼륨 확인 df - Filesystem: 논리파티션 Size: 할당량 Used: 사용량 Avail: 여유공간 Use%: 사용률 Mount on: 마운트경로명 2. 파티션별 배정 용량 확인 (디스크 정보 확인) # 디스크 구조를 트리 형태로 확인 하는 명령어 lsblk 3. PV 정보 확인 pvs PV: 실제로 존재하는 물리 볼륨으로 하드디스크를 나타낸다. 4. VG 정보 확인 vgs VG: PV들이 모여서 생성되는 단위로 여러 하드디스크를 묶어 가상 디스크로 만든다. 예) /dev/sda3 과 /dev/sdb1을 가상 디스크로 묶는다. 5. 물리 공간 논리 볼륨 그룹 정보 확인 # LVM에 대한 정보 확인 vgdisplay LVM: 여러 물리 디스크를 마치 하나의 디스크 공간처럼 사용 가능하게..