쿠버네티스
-
기존에는 EKS에서 노드 그룹을 관리 위해서는 Cluster-Autoscaler를 이용하여 Autoscaling 그룹을 조정하여 운영해왔습니다. 이럴 경우 몇가지 문제가 발생 됩니다. 1. Autoscaling 그룹은 인스턴스의 생성/삭제가 느리다. 2. Topology 이슈 3. 무조건 1대 이상의 인스턴스가 실행되어 있어야 한다. 1번의 경우 Autoscaling 그룹의 원하는 용량(desire)을 조정하여 스케일링 하므로, 동작이 매우 느린 단점이 있습니다. 2번의 경우 Autoscaling 그룹이 가용영역 별로 인스턴스의 수량을 균등하게 유지하려는 특성이 있기 때문에, PV가 있는 가용영역에 생성되지 않는 불상사(?)가 발생될 수 있습니다. 3번의 경우 빌드 서버로 예를 들면, 빌드 서버는 상시로..
Karpenter 설치 및 후기기존에는 EKS에서 노드 그룹을 관리 위해서는 Cluster-Autoscaler를 이용하여 Autoscaling 그룹을 조정하여 운영해왔습니다. 이럴 경우 몇가지 문제가 발생 됩니다. 1. Autoscaling 그룹은 인스턴스의 생성/삭제가 느리다. 2. Topology 이슈 3. 무조건 1대 이상의 인스턴스가 실행되어 있어야 한다. 1번의 경우 Autoscaling 그룹의 원하는 용량(desire)을 조정하여 스케일링 하므로, 동작이 매우 느린 단점이 있습니다. 2번의 경우 Autoscaling 그룹이 가용영역 별로 인스턴스의 수량을 균등하게 유지하려는 특성이 있기 때문에, PV가 있는 가용영역에 생성되지 않는 불상사(?)가 발생될 수 있습니다. 3번의 경우 빌드 서버로 예를 들면, 빌드 서버는 상시로..
2023.07.14 -
안녕하세요. 오늘은 Terraform Provider 중 Kubernetes를 설정하는 법에 대해서 간단하게 가이드해보고자 합니다. 준비물 : kubectl에서 사용하는 config 파일 config파일에 내용은 다음처럼 구성되어 있습니다. apiVersion: v1 clusters: - cluster: certificate-authority-data: base64 encoding server: https://server ip:port name: cluster.local contexts: - context: cluster: cluster.local user: kubernetes-admin name: kubernetes-admin@cluster.local current-context: kubernetes-..
Terraform Kubernetes Provider 설정하기 (1)안녕하세요. 오늘은 Terraform Provider 중 Kubernetes를 설정하는 법에 대해서 간단하게 가이드해보고자 합니다. 준비물 : kubectl에서 사용하는 config 파일 config파일에 내용은 다음처럼 구성되어 있습니다. apiVersion: v1 clusters: - cluster: certificate-authority-data: base64 encoding server: https://server ip:port name: cluster.local contexts: - context: cluster: cluster.local user: kubernetes-admin name: kubernetes-admin@cluster.local current-context: kubernetes-..
2020.11.12 -
안녕하세요. 이번 포스팅은 지난 Blue/Green 배포에 이어서 Canary 배포를 하는 방법에 대해서 가이드 하고자 합니다. Canary 배포는 기존에 배포된 서비스에 신규 서비스를 한꺼번에 배포/교체를 진행하지 않고 소량의 Pod만 일시적으로 배포하는 방식입니다. Canary 배포를 함으로서, 신규 서비스의 영향도나 반응 체크등을 할 수 있고 문제 시 소량 배포된 Pod만 정리하면 되기 때문에 편의성이 있습니다. 해당 배포 방식도 Kubernetes에서 Deployment만으로 배포가 가능하지만 Argo CD를 이용하는 방법에 대해 알아봅니다. 사전 준비 사항 * Argo CD 설치 * Argo Rollouts 설치 먼저 배포를 위해 아래의 코드를 사용하겠습니다. apiVersion: argopro..
Argo CD를 이용한 Canary 배포 (4)안녕하세요. 이번 포스팅은 지난 Blue/Green 배포에 이어서 Canary 배포를 하는 방법에 대해서 가이드 하고자 합니다. Canary 배포는 기존에 배포된 서비스에 신규 서비스를 한꺼번에 배포/교체를 진행하지 않고 소량의 Pod만 일시적으로 배포하는 방식입니다. Canary 배포를 함으로서, 신규 서비스의 영향도나 반응 체크등을 할 수 있고 문제 시 소량 배포된 Pod만 정리하면 되기 때문에 편의성이 있습니다. 해당 배포 방식도 Kubernetes에서 Deployment만으로 배포가 가능하지만 Argo CD를 이용하는 방법에 대해 알아봅니다. 사전 준비 사항 * Argo CD 설치 * Argo Rollouts 설치 먼저 배포를 위해 아래의 코드를 사용하겠습니다. apiVersion: argopro..
2020.10.22 -
안녕하세요. 이번에는 Argo CD를 이용한 Blue/Green 배포 방법에 대해서 알아보겠습니다. Blue/Green 배포란? Blue-Green 배포는 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다. 이때 두 버전 모두 프로덕션 환경에서 실행 상태를 유지합니다. 이전 버전을 blue 환경으로, 새 버전은 green 환경으로 부를 수 있습니다. 프로덕션 트래픽이 blue에서 green으로 완전히 이전되면, blue는 롤백에 대비하여 대기 상태로 두거나 프로덕션에서 가져온 후 업데이트하여 다음 업데이트의 템플릿으로 삼을 수 있습니다. 이와 같은 지속적 배포 모델에는 단점이 있습니다. 환경에 따라서..
Argo CD를 이용한 Blue/Green 배포 (3)안녕하세요. 이번에는 Argo CD를 이용한 Blue/Green 배포 방법에 대해서 알아보겠습니다. Blue/Green 배포란? Blue-Green 배포는 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다. 이때 두 버전 모두 프로덕션 환경에서 실행 상태를 유지합니다. 이전 버전을 blue 환경으로, 새 버전은 green 환경으로 부를 수 있습니다. 프로덕션 트래픽이 blue에서 green으로 완전히 이전되면, blue는 롤백에 대비하여 대기 상태로 두거나 프로덕션에서 가져온 후 업데이트하여 다음 업데이트의 템플릿으로 삼을 수 있습니다. 이와 같은 지속적 배포 모델에는 단점이 있습니다. 환경에 따라서..
2020.10.22 -
안녕하세요. 오늘은 Grafana에 Prometheus Data Source를 추가하는 방법에 대해서 소개하고자 합니다. Kubernetes에서 모니터링 시 Prometheus를 이용하여 Metric을 수집하고, 수집된 Metric을 Grafana에서 Graph를 보는 것이 보편적인 Kubernetes의 모니터링 방식입니다. 본 포스팅은 Prometheus와 Grafana가 다소 낯선 분들을 위해 조금씩 작성하는 포스트입니다. Kubernetes 환경에서 Grafana와 Prometheus를 활용하려면 먼저 data source를 추가해야 합니다. 본 글은 Prometheus와 Grafana가 설치되었다는 가정하에 작성합니다. 순서는 다음과 같습니다. 1. Prometheus의 EndPoint(URL)을..
[Kubernetes Monitoring] Grafana에 Prometheus Data Source 추가하기안녕하세요. 오늘은 Grafana에 Prometheus Data Source를 추가하는 방법에 대해서 소개하고자 합니다. Kubernetes에서 모니터링 시 Prometheus를 이용하여 Metric을 수집하고, 수집된 Metric을 Grafana에서 Graph를 보는 것이 보편적인 Kubernetes의 모니터링 방식입니다. 본 포스팅은 Prometheus와 Grafana가 다소 낯선 분들을 위해 조금씩 작성하는 포스트입니다. Kubernetes 환경에서 Grafana와 Prometheus를 활용하려면 먼저 data source를 추가해야 합니다. 본 글은 Prometheus와 Grafana가 설치되었다는 가정하에 작성합니다. 순서는 다음과 같습니다. 1. Prometheus의 EndPoint(URL)을..
2020.10.15 -
Kubespray에서 최초 설치 시 Registry 설정을 할 수 있습니다. inventory 폴더에 group_vars/k8s-cluster/addons.yaml을 열어보면, 아래와 같은 설정이 있습니다. 기본이 false인데, true로 변경하면 됩니다. # Registry deployment registry_enabled: true # registry_namespace: kube-system # registry_storage_class: "" # registry_disk_size: "15Gi" 설치 이후 docker info를 해보면 생성해둔 registry 정보가 없는데, /etc/docker/daemon.json 파일을 새로 생성하여 다음 내용을 추가하고 docker service를 재시작합니다..
Kubespray에서 Private Registry 설정Kubespray에서 최초 설치 시 Registry 설정을 할 수 있습니다. inventory 폴더에 group_vars/k8s-cluster/addons.yaml을 열어보면, 아래와 같은 설정이 있습니다. 기본이 false인데, true로 변경하면 됩니다. # Registry deployment registry_enabled: true # registry_namespace: kube-system # registry_storage_class: "" # registry_disk_size: "15Gi" 설치 이후 docker info를 해보면 생성해둔 registry 정보가 없는데, /etc/docker/daemon.json 파일을 새로 생성하여 다음 내용을 추가하고 docker service를 재시작합니다..
2020.03.05