• 프로필사진
    Home
  • Portfolio
  • github [#ffffff] Created with Sketch.
    Github
  • linkedin
    Linkedin
  • Setting
  • Posting
    • 분류 전체보기 (105)
      • Aws (96)
      • Backend (3)
      • Extension (1)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • EKS Loadbalancer Controller
        2024년 12월 24일
        • wngnl05
        • 작성자
        • 2024.12.24.:58

        Albcontroller를 생성하기전에

        Public subnet Tag = kubernetes.io/role/elb : 1

        Private subnet Tag = kubernetes.io/role/internal-elb : 1

         

         

        Loadbalancer-Role 을 생성해줍니다.

        CLUSTER_NAME="<클러스터 이름>"
        eksctl utils write-kubeconfig --name $CLUSTER_NAME
        eksctl utils associate-iam-oidc-provider --approve --cluster $CLUSTER_NAME
        ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
        CLUSTER_OIDC=$(aws eks describe-cluster --name $CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | sed 's/https:\/\///')
        # 역할 생성
        aws iam create-role \
            --role-name Eks-Loadbalancer-Controller-Role \
            --assume-role-policy-document '{
                "Version": "2012-10-17",
                "Statement": [
                    {
                        "Effect": "Allow",
                        "Principal": {
                            "Federated": "arn:aws:iam::'"$ACCOUNT_ID"':oidc-provider/'"$CLUSTER_OIDC"'"
                        },
                        "Action": "sts:AssumeRoleWithWebIdentity",
                        "Condition": {
                            "StringEquals": {
                                "'"$CLUSTER_OIDC"':aud": "sts.amazonaws.com",
                                "'"$CLUSTER_OIDC"':sub": "system:serviceaccount:kube-system:aws-load-balancer-controller"
                            }
                        }
                    }
                ]
            }' \
            --output json
        
        # 정책 연결
        aws iam attach-role-policy --role-name Eks-Loadbalancer-Controller-Role --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
        aws iam attach-role-policy --role-name Eks-Loadbalancer-Controller-Role --policy-arn arn:aws:iam::aws:policy/ElasticLoadBalancingFullAccess

         

        service-account.yaml을 apply 해줍니다.

        ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
        cat <<EOF >> service-account.yaml
        apiVersion: v1
        kind: ServiceAccount
        metadata:
          labels:
            app.kubernetes.io/component: controller
            app.kubernetes.io/name: aws-load-balancer-controller
          name: aws-load-balancer-controller
          namespace: kube-system
          annotations:
            eks.amazonaws.com/role-arn: arn:aws:iam::${ACCOUNT_ID}:role/Eks-Loadbalancer-Controller-Role
        EOF
        kubectl apply -f service-account.yaml

         

         

        Helm 설치 스크립트를 다운로드하고 실행 권한을 부여합니다.

        AWS Load Balancer Controller를 지정한 네임스페이스에 설치합니다.

        CLUSTER_NAME="<클러스터 이름>"
        # Helm 설치 스크립트를 다운로드하고 실행 권한을 부여합니다.
        curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
        chmod +x get_helm.sh
        ./get_helm.sh
        helm repo add eks https://aws.github.io/eks-charts
        helm repo update
        
        # AWS Load Balancer Controller를 지정한 네임스페이스에 설치합니다.
        helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
          -n kube-system \
          --set clusterName=$CLUSTER_NAME \
          --set serviceAccount.create=false \
          --set serviceAccount.name=aws-load-balancer-controller


        Aws Loadbalncer Conrtroller 설치되었는지 확인

        kubectl get pods -n kube-system | grep aws-load-balancer-controller
        helm list -n kube-system
        kubectl get events -n kube-system | grep aws-load-balancer-controller


        Alb-controller 삭제하기

        helm uninstall aws-load-balancer-controller -n kube-system

         

        Download Manifest File

        curl -o deployment.yaml  https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/Manifest/Deployment/deployment.yaml
        curl -o service.yaml  https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/Manifest/service.yml
        curl -o ingress.yaml  https://raw.githubusercontent.com/wngnl-dev/AWS/main/EKS/Manifest/ingress.yml

         

         

         

         

         

        저작자표시 비영리 변경금지 (새창열림)

        'Aws' 카테고리의 다른 글

        EKS CodeBuild를 이용해서 자동으로 Pod 업데이트 하기  (0) 2024.12.24
        EKS Fargate  (0) 2024.12.24
        EKS Cluster 만들기  (0) 2024.12.24
        같은 IP로 3번 접속 시 Revoke 하기  (0) 2024.12.24
        시작템플릿으로 Docker 배포하기  (0) 2024.12.24
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바