Category: AWS

0

EKS - Cluster Autoscaler

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://github.com/kubernetes/autoscaler https://docs.aws.amazon.com/ko_kr/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeTags", "ec2:DescribeInstanceTypes", "ec2:DescribeLaunchTemplateVersions" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "autoscaling:SetDesiredCapacity", "autoscaling:TerminateInstanceInAutoScalingGroup", "ec2:DescribeImages", "ec2:GetInstanceTypesFromInstanceRequirements", "eks:DescribeNodegroup" ], "Resource": ["*"] } ]} helm repo add autoscaler https://kubernetes.github.io/autoscaler helm show values autoscaler/cluster-autoscaler 적용 대상 node에는 아래의 tag가 달려야 한다. k8s.io/cluster-autoscaler/skcc-dev-floot-eks: ownedk8s.io/cluster-autoscaler/enabled: true

0

EKS - EFS CSI Driver 설치

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://aws.amazon.com/ko/blogs/tech/persistent-storage-for-kubernetes/ EFS CSI Driver 설치를 위한 EKS 내 Service Account 생성curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-efs-csi-driver/master/docs/iam-policy-example.json aws iam create-policy \ --policy-name AmazonEKS_EFS_CSI_Driver_Policy \ --policy-document file://iam-policy-example.json eksctl create iamserviceaccount \ --cluster my-cluster \ --namespace kube-system \ --name efs-csi-controller-sa \ --attach-policy-arn arn:aws:iam::<111122223333>:policy/AmazonEKS_EFS_CSI_Driver_Policy \ --approve \ --region <region-code> EBS CSI Driver 설치

0

EKS - EBS CSI Driver 설치

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://aws.amazon.com/ko/blogs/tech/persistent-storage-for-kubernetes/ EBS CSI Driver 설치를 위한 EKS 내 Service Account 생성eksctl create iamserviceaccount \ --name ebs-csi-controller-sa \ --namespace kube-system \ --cluster <Cluste 이름> \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --approve \ --role-only \ --role-name AmazonEKS_EBS_CSI_DriverRole EBS CSI Driver 설치aws eks describe-addon-versions --addon-name aws-ebs-csi-driver eksctl create addon \ --name aws-ebs-csi-driver \ --cluster <Cluste 이름> \ --service-account-role-arn arn:aws:iam::<AWS 계정 ID>:role/AmazonEKS_EBS_CSI_DriverRole \ --force

0

EKS - ALB Controller 를 활용한 NLB 생성

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/network-load-balancing.html apiVersion: v1kind: Servicemetadata: name: nlb-sample-service namespace: nlb-sample-app annotations: service.beta.kubernetes.io/aws-load-balancer-type: external service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: ip service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing service.beta.kubernetes.io/aws-load-balancer-name: skcc-prd-vitality-dx-nlb-ftp service.beta.kubernetes.io/subnets: <Public Subnet1 ID>, <Public Subnet2 ID>spec: ports: - port: 80 targetPort: 80 protocol: TCP type: LoadBalancer selector: app: nginx apiVersion: apps/v1kind: Deploymentmetadata: name: nlb-sample-app namespace: nlb-sample-appspec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: public.ecr.aws/nginx/nginx:1.21 ports: - name: tcp containerPort: 80

0

EKS - ALB Controller 설치

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/aws-load-balancer-controller.html IAM policy & role 생성curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.7/docs/install/iam_policy.json aws iam create-policy \ --policy-name AWSLoadBalancerControllerIAMPolicy \ --policy-document file://iam_policy.json ServiceAccount 생성eksctl create iamserviceaccount \ --cluster=my-cluster \ --namespace=kube-system \ --name=aws-load-balancer-controller \ # 원하는 Service Account 이름으로 변경해도 된다 --role-name AmazonEKSLoadBalancerControllerRole \ --attach-policy-arn=arn:aws:iam::111122223333:policy/AWSLoadBalancerControllerIAMPolicy \ --approve

0

EKS - Cluster Access 문제

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) Error 현재 사용자 또는 역할이 이 EKS Cluster 에 있는 Kubenetes 객체에 엑세스 할 수 없습니다.EKS Dashboard 에서 다음과 같이 문구가 뜨면서 Kubernetes 객체에 정상적으로 Access 하지 못하는 문제가 있다. 다음과 같이 에러가 발생하는 이유는 생성한 클러스터 내부 ConfigMap의 aws-auth에 현재 사용자 또는 역할이 없어 AWS Console에서 확인이 안되는 것이다. 1. ARN 확인 2. ConfigMap 수정다음 명령어를 통해 aws-auth ConfigMap 에 접근해 mapUsers 를 추가 해주도록 하자.

0

EKS - NodeGroup 생성

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 UserData 생성 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/launch-templates.html#launch-template-custom-ami https://eksctl.io/usage/managing-nodegroups/ https://kim-dragon.tistory.com/54 1. LauchTemplate 생성1. UserData 생성을 위한 EKS Cluster 정보 확인aws eks describe-cluster 명령어를 이용해 필요한 EKS 클러스터의 정보를 가져오도록 한다. 클러스터 Certificate Authority 확인 aws eks describe-cluster \ --query "cluster.certificateAuthority.data" \ --output text \ --name [클러스터 이름] \ --region [지역] \ --profile [aws-profile]

0

EKS - eksctl 로 클러스터 생성 및 삭제

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) 참고 eksctl Documnet https://eksctl.io/ eksctl로 클러스터 생성하기 https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR/50-eks-cluster/100-launch-cluster Amazon EKS의 애플리케이션 로드 밸런싱 https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/alb-ingress.html 나만의 k8s 클러스터 구축하기 https://coffeewhale.com/kubernetes/cluster/eks/2020/09/03/k8s-eks/ EKSCTL 를 이용한 EKS 구성 https://kingofbackend.tistory.com/235 eksctl 설치 MAC OS # mac osbrew tap weaveworks/tapbrew install weaveworks/tap/eksctl Linux # eksctl 명령어 설치curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp# 전역적으로 사용할 수 있게 bin 파일로 이동sudo mv /tmp/eksctl /usr/local/bin

0

EKS (Elastic Kubernetes Service)

목차 EKS - Cluster Autoscaler EKS - EFS CSI Driver 설치 EKS - EBS CSI Driver 설치 EKS - ALB Controller 를 활용한 NLB 생성 EKS - ALB Controller 설치 EKS - Cluster Access 문제 EKS - NodeGroup 생성 EKS - eksctl 로 클러스터 생성 및 삭제 EKS (Elastic Kubernetes Service) EKS (Elastic Kubernetes Service) 란? Elastic Kubernetes Service 의 약자로 AWS 에서 제공하는 Kubernetes 관리 서비스 EKS를 사용하면 Kubernetes 마스터를 관리하고 보안, 스케일링, 업그레이드 및 가용성과 같은 관리적인 부담을 덜 수 있습니다. EKS는 Kubernetes API를 완전히 호환하며, AWS에서 제공하는 다양한 서비스와 통합할 수 있습니다. 이러한 서비스는 Amazon Elastic Load Balancer, Amazon Simple Storage Service, Amazon DynamoDB 등이 있습니다. EKS는 Kubernetes 마스터를 관리하므로 클러스터를 시작하기 위해 마스터 노드를 프로비저닝하고 구성할 필요가 없습니다. 대신, 단일 명령으로 새로운 Kubernetes 클러스터를 시작하고 노드를 추가하거나 제거할 수 있습니다. EKS는 또한 클러스터 보안을 제공하며, Kubernetes 마스터와 작업 노드가 모두 Amazon VPC(Virtual Private Cloud) 내에서 실행됩니다. 또한 EKS는 Kubernetes 마스터와 작업 노드 간의 통신을 위해 네트워크 라우팅 및 보안 구성을 자동으로 처리합니다. 마지막으로, EKS는 Amazon EC2와 같은 AWS 서비스와의 긴밀한 통합을 제공하며, 클러스터 노드의 Amazon Machine Image(AMI)를 사용하여 노드를 구성할 수 있습니다. 이는 사용자가 EKS와 다른 AWS 서비스를 쉽게 통합하고 관리할 수 있도록 도와줍니다. Kubernetes 클러스터를 쉽게 생성하고 관리할 수 있도록 지원한다.