https://www.youtube.com/playlist?list=PLApuRlvrZKogRzF98XVC6_5KS40MBKU7M

  • 구성
  • VPC 예시)
    • VPC = 192.168.0.0/16   
      •    # 이범위 안에서 WorkerNode 및 POD 가 IP 를 할당받음. 
      •    # VPC 내의 각각에 subnet 으로 분리하여 할당하는게 더안전함.
    • ㄴ WorkerNode IP = [192.168.70.30 , 192.168.2.91 , 192.168.56.22]
    • ㄴ CNI(Container Bridge 자동설치) (kubeproxy 등등)    # recommended policies were found for "vpc-cni" addon
      • ㄴ POD IP = [192.168.x.x , 192.168.x.x , 192.168.x.x , 192.168.x.x , 192.168.x.x , 192.168.x.x]
  • EKS Storage
  • Aws Auth ConfigMap
    • AWS User/Group 인증정보를 -> K8S 으로 연결해줌
  • 설치
  • $ eksctl create cluster \
    		--name 이름 \
    		--version 1.31
    		--region ap-northeast-2 \
    		--with-oidc \
    		--nodegroup-name 그룹명 \
    		--zones ap-northeast-2a,ap-northeast-2c \
    		--nodes 2 \
    		--node-type t3.small \
    		--node-volume-size=20 \
    		--managed
    
    # node-type : 최소 t3.small 이상
    # vpc-nat-mode : kubernetes의 모든 outbound는 nat gateway를 통해 나가게 되는게 default option 은 single 이라 하나만 생성된다. 개발 환경에서는 상관없을거 같지만 운영에서는 각 subnet 마다 하나씩 만드는 HighAvailable 옵션을 사용한다.
    # node-private-networking : 해당 option 이 없으면 node group 이 public subnet 에 만들어진다. 보안을 위해 private subnet 에 만들어지도록 이 옵션을 사용한다.
  • ...
  • AWS LoadBalancer Controller (AWS Ingress Controller) 배포 
    • k8s 클러스터에 필요한 AWS ELB (NLB+ALB) 를 자동으로 관리해줌.
    • NLB (Network Load Balancer) :
      • k8s 서비스에 LoadBalancer Type 이 감지되면, NLB가 자동으로 생성됨.   # 이건 Ingress Controller 설치 없이도 됨
    • ALB (Application Load Balancer) :
      • k8s 리소스에 Ingress 가 감지되면, ALB가 자동으로 생성됨.
    • 즉, AWS 에 NLB 및 ALB 생성할 권한이 있는 Controller 를 POD 형태로 2개 띄워서~ 자동화게 되게함.
    • https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/lbc-helm.html
  • # eksctl을 사용하여 IAM 역할 생성
    curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.11.0/docs/install/iam_policy.json
    mv iam_policy.json aws_lb_controller_policy.json
    
    aws iam create-policy \
        --policy-name AwsLbControllerPolicy \
        --policy-document file://aws_lb_controller_policy.json
    
    eksctl create iamserviceaccount \
      --cluster=클러스터명 \
      --namespace=kube-system \
      --name=aws-lb-controller-sa \
      --role-name AwsEksLbControllerRole \
      --attach-policy-arn=arn:aws:iam::입력:policy/AwsLbControllerPolicy \
      --approve
    eksctl get iamserviceaccount --cluster 클러스터명
    
    kubectl get sa -n kube-system
    kubectl describe -n kube-system sa aws-lb-controller-sa
    
    
    # AWS LoadBalancer Controller 설치
    helm repo add eks https://aws.github.io/eks-charts
    helm repo update eks
    
    helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
      -n kube-system \
      --set clusterName=클러스터명 \
      --set serviceAccount.create=false \
      --set serviceAccount.name=aws-lb-controller-sa
      
    kubectl get deployment -n kube-system aws-load-balancer-controller
    kubectl get pod -n kube-system
  • ...

 

https://catalog.us-east-1.prod.workshops.aws/workshops/9c0aa9ab-90a9-44a6-abe1-8dff360ae428/ko-KR

  • EKS 클러스터 생성하기
  • 인그레스 컨트롤러 만들기
  • ...

 

%[부록] labels, selector, matchLabels

  • ...

 

-끝-

'DevOps' 카테고리의 다른 글

AKS 오션  (0) 2024.11.30
Graphite  (0) 2024.10.30
EKS 초기화  (0) 2023.09.14
doppler  (0) 2023.07.13
크로미움과 토륨 in docker  (0) 2023.07.13

+ Recent posts