본문 바로가기

AWS EKS 실습/EKS Intermediate

(10)
Monitoring using Prometheus and Grafana prometheus와 grafana를 kuberenetes 환경에 설치하기 위해서는 먼저 helm repo를 먼저 추가한다. # add prometheus Helm repo helm repo add prometheus-community https://prometheus-community.github.io/helm-charts # add grafana Helm repo helm repo add grafana https://grafana.github.io/helm-charts Deploy prometheus 먼저 prometheus의 namespace를 만들고 gp2 EBS Volume을 사용하여 prometheus 저장 공간을 생성한다. kubectl create namespace prometheus he..
CI/CD with CodePipeline ㅁ Create IAM Role 간단한 sample kubernetes service를 deploy하기 위하여 AWS CodeBuild를 사용한다. 이 것을 위하여 먼저 EKS Cluster와 Interacting이 가능한 IAM role을 먼저 정의한다. 다음과 같이 정의한다. cd ~/environment TRUST="{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::${ACCOUNT_ID}:root\" }, \"Action\": \"sts:AssumeRole\" } ] }" echo '{ "Version": "2012-10-17", "Stateme..
Implement Logging with EFK Fluent Bit: 다양한 소스에서 데이터/로그를 수집하고 통합하여 여러 대상으로 보낼 수 있는 오픈 소스 및 다중 플랫폼 로그 프로세서 및 Fowarder이다. Docker 및 Kubernetes 환경과 완벽하게 호환된다. Amazon Elasticsearch 서비스: Elasticsearch를 비용 효율적으로 배포, 보호 및 대규모로 실행 할 수 있게 해주는 완전 관리형 서비스이다. Kibana: Elasticsearch를 기반으로 오픈 소스 FrontEnd Application으로, Elasticsearch에서 인덱싱 된 데이터에 대한 검색 및 데이터 시각화 기능을 제공한다. Fluent Bit, Elasticsearch 및 Kibana를 함께 사용하면 EFK Stack이라고 한다. ㅁ Confi..
CI/CD with CodePipeline (다시 볼것) ㅁ Create IAM Role 간단한 sample kubernetes service를 deploy하기 위하여 AWS CodeBuild를 사용한다. 이 것을 위하여 먼저 EKS Cluster와 Interacting이 가능한 IAM role을 먼저 정의한다. 다음과 같이 정의한다. cd ~/environment TRUST="{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"AWS\": \"arn:aws:iam::${ACCOUNT_ID}:root\" }, \"Action\": \"sts:AssumeRole\" } ] }" echo '{ "Version": "2012-10-17", "Stateme..
Deploying Jenkins for Kubernetes 먼저 CodeCommit repository를 생성한다. 이 repository는 application code와 Jenkinsfile을 저장하기 위한 장소이다. aws codecommit create-repository --repository-name eksworkshop-app { "repositoryMetadata": { "repositoryName": "eksworkshop-app", "cloneUrlSsh": "ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/eksworkshop-app", "lastModifiedDate": 1616109672.528, "repositoryId": "826bfbfd-2a75-4242-ac8d-87ad614..
Advanced POD CPU and Memory management LimitRange는 namespace에서 Request와 Limit 사이의 비율을 계산, 저장 또는 적용하는데 사용된다. 이 섹션에서는 컴퓨터 워크로드를 low-usage, high-usage 그리고 unrestricted-usage로 구분한다. 먼저 분리된 Namespace를 만든다. mkdir ~/environment/resource-management kubectl create namespace low-usage kubectl create namespace high-usage kubectl create namespace unrestricted-usage ㅁ Create Limit Range low-usage와 high-usage namespace level에 대한 LimitRange spec을 만..
Pod Priority And Preemption Pod Priority는 다른 Pod에 비해 Pod의 중요도를 적용하는데 사용된다. 이 섹션에서는 두 개를 만들고 PriorityClass Pod의 상호 작용을 확인 한다. ㅁ PriorityClass 만들기 cat
Resource Quotas ResoureQuotas는 CPU, Mem, Storage 및 서비스와 같은 리소스를 제한하는 데 사용된다. 이 섹션에서는 ResourceQuotas를 Blue, Red 두 팀을 만들어 설정한다. # Create different namespaces kubectl create namespace blue kubectl create namespace red Resource Quota 생성 두 팀이 같은 리소스를 공유한다. Red팀은 Load Balancer 수에 제한을 두고 Blue팀은 메모리/CPU 사용량 제한을 한다. kubectl create quota blue-team --hard=limits.cpu=1,limits.memory=1G --namespace blue kubectl create quota..