썸네일 마이크로서비스 아키텍처(MSA)란? 1. 마이크로서비스 아키텍처(MSA)란? 마이크로서비스 아키텍처(MSA)는 시스템의 개별 기능을 서비스 단위로 잘라 서비스끼리 gRPC나 RESTful API 등으로 연계하여 시스템 전체를 구성하는 느슨한 결합(loose coupling) 아키텍처입니다. 전체 시스템을 여러 개의 작고 독립적인 부분으로 나누는 방식으로, 각 부분들은 특정한 업무나 기능을 담당하고 서로 통신하여 전체 시스템을 이루게 됩니다. 이러한 작고 독립적인 부분을 마이크로서비스라고 부르며, 이들은 독립적으로 배포하고 확장시키고 유지 보수 할 수 있습니다. 이를 통해 더 유연하고 확장성이 높은 시스템을 구성할 수 있으며 장애 발생 시 전체 시스템에 미치는 영향을 줄일 수 있습니다. 참고로, 마이크로서비스 아키텍처와 반대되는 개념은, 시..
썸네일 Label과 Selector Labels Kubernetes의 각 object에 대해 필요에 따라 label attach ex. env: dev / app: nginx metadata section 하위에 label이라는 이름의 field 생성 후 기입 원하는 만큼 label attach 가능 metadata: labels: env: dev app: nginx ex) label이 있는 pod를 선택하기 위해 kubectl get po --selector app=App1과 같이 --selector 파라미터를 사용하여 filtering함 Selectors Selector는 각 Kubernets Object들을 filtering하는데 사용 apiVersion: apps/v1 kind: Deployment metadata: name: ng..
썸네일 Encrypting Secret Data at Rest in ETCD 1. ETCD란? ETCD Encryption at Rest 테스트를 진행하기에 앞서 먼저 ETCD가 무엇인지 간단하게 알아보도록 하겠습니다. ETCD란? ETCD는 Kubernetes Cluster의 모든 데이터를 담는 Kubernetes의 Key-Value 형태의 저장소입니다. 우리가 kubectl 명령어를 입력해서 받는 여러 Kubernetes Objects에 대한 정보는 모두 ETCD에 저장된 데이터에서 가져오는 정보죠. 따라서 Secret 데이터도 ETCD에 저장되게 됩니다. 그렇다면 Secret 데이터가 ETCD에 저장될 때 암호화되어 저장이 될까요? 답은 No입니다. 기본적으로 ETCD에 저장되는 Secret 데이터는 평문으로 저장이 됩니다. 그러나 Kubernetes는 ETCD에 저장되는 ..
썸네일 Virtual Machine으로 Kubernetes Cluster 구성하기 (2) 3. Control Plane 구성 3.1 kubeadm init Kubernetes Cluster용 [가상 머신] 모두에게 설치해야 할 것들을 모두 설치하였습니다. 지금부터는 Control Plane에서 kubeadm init 명령어를 사용하여 본격적으로 Kubernetes Cluster를 구성해 보도록 하겠습니다. ※ kubeadm init 명령어는 반드시 Control Plane에서만 설치하여야 합니다.※ kubeadm init 명령어를 실행합니다. 만약 pod cidr 대역이 기본값과 다르다면 (default : 192.168.0.0/16) --pod-network-cidr flag를 사용하여 사용할 pod의 cidr 대역을 직접 명시해 주어야 합니다. (본 테스트에서는 default cidr 대..
썸네일 Virtual Machine으로 Kubernetes Cluster 구성하기 (1) 1. Virtual Machine 배포 Azure 환경에 [가상 머신]을 세 대 배포하여, 1대는 control plane, 2대는 node로 사용합니다. 1.1 Virtual Machine 배포 1.1.1 [리소스 그룹] 생성 구독 : # 사용할 구독 선택 리소스 그룹 : rg-k8s-test # 리소스 명 입력 영역 : Korea Central # 가상 머신이 배포될 Azure Region 선택 1.1.2 [가상 머신] 생성 세 대 모두 배포 방법은 모두 동일합니다. 본 테스트에서는 이름만 변경하였으나 필요에 따라 control plane의 역할을 하는 [가상 머신]의 SKU를 더 크게 지정할 수 있습니다. [기본 사항] 노란색으로 하이라이트한 부분에 대해 설정을 완료한 후 [다음 : 디스크 >] 버..
썸네일 CKAD 시험 후기 1. CKAD (Certified Kubernetes Application Developer)란? 사실 CKAD가 무엇인지에 대해서는 이미 많은 블로그에서 정리를 잘 해 놓았기 때문에 굳이 정리하지 않으려고 하다가 그래도 해야 하지 않나 싶어서 정리해 보았습니다. (●'◡'●) Linux Foundation 홈페이지에는 CKAD에 대해 다음과 같의 설명하고 있습니다. The Certified Kubernetes Application Developer (CKAD) exam certifies that candidates can design, build and deploy cloud-native applications for Kubernetes.  즉, CKAD는 Kubernetes를 위한 클라우드 네이티브 ..
썸네일 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (3) 이전 글 : https://sundlscha.tistory.com/16 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (2) 지난 글 : https://sundlscha.tistory.com/15 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (1) ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 1. CI/CD Flow 개발자가 코드를 sundlscha.tistory.com ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 6. GitHub와 ArgoCD 연결 두 번째 Job에 의해 Github Repository의 depl..
썸네일 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (2) 지난 글 : https://sundlscha.tistory.com/15 Jenkins, ArgoCD로 CI/CD Pipeline 구성하기 (1) ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 1. CI/CD Flow 개발자가 코드를 수정한 후 'Toy-Project-Web' Repository에 변경 사항을 push합니다. (Toy-Project-Web이 sundlscha.tistory.com ※ Jenkins와 ArgoCD 등 CI/CD Pipeline 구성에 필요한 모든 리소스는 사전에 배포해 두었습니다.※ 4. Jenkins에서 Job 생성 (1) Push the image to ACR 4.1 Project 생성 [+ New ..
썸네일 Kubernetes Network Policy 공부하기 (2) 이전 글 : https://sundlscha.tistory.com/13 Kubernetes Network Policy 공부하기 (1) 1. Network Policy란? Kubernetes Cluster 내부에서 pod 간 통신 시 트래픽 규칙을 규정하는 역할을 하는 object입니다. 기본적으로 Network Policy를 사용하지 않는 경우 Kubernetes Cluster 내부의 모든 pod는 서로 통 sundlscha.tistory.com 1. Namespace 생성 및 Label 지정 테스트에 사용할 namespace를 생성합니다. kubectl create ns ns-01 kubectl create ns ns-02 생성된 namespace 확인하기 위해 하기 명령어를 입력합니다. kubectl..