[EKS 접근제어 설정]
eksctl create iamidentitymapping --cluster eks-demo --arn ${rolearn} --group system:masters --username admin
- eks configmap에 본인의 rolearn을 추가
kubectl describe configmap -n kube-system aws-auth
※ SSO로 작업 할 경우 rolearn에 대한 추가적인 수정이 필요하다 !!aws-reserved ~~ ap-northeast-2는 표준ARN 형식에 맞지 않는다 따라서 configmap에 rolearn등록 시 해당부분을 지워야한다.
[alb-ingress-conroller 생성]
1. 클러스터에 대한 IAM OIDC(OpenID Connect) identity Provider 생성
eksctl utils associate-iam-oidc-provider \
--region ${AWS_REGION} \
--cluster dhkim-eks \
--approve
2. ALB에 부여할 iam policy생성
curl -o iam-policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.4.4/docs/install/iam_policy.json
aws iam create-policy \
--policy-name dhkim-AWSLoadBalancerControllerIAMPolicy \
--policy-document file://iam-policy.json
- dhkim-AWSLoadBalancerControllerIAMPolicy으로 alb에 부여할 iam policy 생성
3. ServiceAccount생성
eksctl create iamserviceaccount \
--cluster dhkim-eks \
--namespace kube-system \
--name aws-load-balancer-controller \
--attach-policy-arn arn:aws:iam::$ACCOUNT_ID:policy/dhkim-AWSLoadBalancerControllerIAMPolicy \
--override-existing-serviceaccounts \
--approve
- AWS Load Balancer Controller를 위한 ServiceAccount 생성
- 앞서 생성한 dhkim-~~policy를 serviceaccount에 attach
- --override-existing-serviceaccounts 옵션을 통해 계정이 이미 존재할 경우 덮어쓰기
4. cert-manager설치 및 ALByaml 다운
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
wget https://github.com/kubernetes-sigs/aws-load-balancer-controller/releases/download/v2.4.4/v2_4_4_full.yaml
- cert-manager는 쿠버네티스 클러스터 내에서 TLS인증서를 자동으로 프로비저닝 및 관리하는 오픈소스
- ALB배포 yaml다운
5. ALByaml 수정 및 배포
spec:
containers:
- args:
- --cluster-name={your-cluster-name} # 생성한 클러스터 이름을 입력
- --ingress-class=alb
image: amazon/aws-alb-ingress-controller:v2.4.4
#아래는 찾아서 삭제 ※위에서 ServiceAccount는 이미 생성했음
---
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
- ALB YAML파일 수정
kubectl apply -f v2_4_4_full.yaml
kubectl get deployment -n kube-system aws-load-balancer-controller
- AWS Load Balancer controller 배포 및 확인
'Kubernetes' 카테고리의 다른 글
[Monitoring] EKS & Prometheus & Grafana (0) | 2023.06.11 |
---|---|
[AWS EKS] 웹 애플리케이션 구축하기 - 5.CI/CD구성 (0) | 2023.04.27 |
[AWS EKS] 웹 애플리케이션 구축하기 - 4.서비스 배포 (0) | 2023.04.25 |
[AWS EKS] 웹 애플리케이션 구축하기 - 2.EKS Terraform (2) | 2023.04.24 |
[AWS EKS] 웹 애플리케이션 구축하기 - 1.환경설정 (0) | 2023.04.12 |