별거 없음.. 착수보고 완성하고 eks yaml 파일 만들었다. 끝!!
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: book-network
region: ap-northeast-2
version: "1.24" #쿠버네티스의 버전
# AZ(가용 영역), 설정하지 않으면 3개의 가용 영역에서 랜덤으로 생성된다
availabilityZones: ["ap-northeast-2a", "ap-northeast-2b", "ap-northeast-2c"]
# IAM OIDC & Service Account
iam: #AWS IAM
withOIDC: true #Open ID Connection
serviceAccounts: #미리 생성할 서비스 어카운트
- metadata: #인그레스용
name: aws-load-balancer-controller #계정
namespace: kube-system #네임스페이스
wellKnownPolicies: #AWS Role, SA에 역할을 붙인다
awsLoadBalancerController: true
- metadata: #볼륨용
name: ebs-csi-controller-sa
namespace: kube-system
wellKnownPolicies: #AWS Role, SA에 역할을 붙인다
ebsCSIController: true
- metadata: #클러스터 오토스케일러용
name: cluster-autoscaler
namespace: kube-system
wellKnownPolicies: #AWS , SA에 역할을 붙인다
autoScaler: true
# Managed Node Groups, EKS는 관리형이므로 컨트롤플레인을 AWS에서 관리해 준다.
managedNodeGroups:
# On-Demand Instance
- name: mynodes-t3
instanceType: t3.medium #인스턴스 타입
minSize: 1 #최소 용량
desiredCapacity: 2 #기본 용량
maxSize: 3 #최대 용량
privateNetworking: true #프라이빗 네트워크로 구성
#ssh:
#allow: true
#publicKeyPath: ./keypair/myeks.pub #프라이빗 네트워크에 있으므로 굳이?
availabilityZones: ["ap-northeast-2a", "ap-northeast-2b", "ap-northeast-2c"] #가용 영역
iam: #역할들을 ec2 인스턴스에도 세팅해준다.
withAddonPolicies:
autoScaler: true
albIngress: true
cloudWatch: true
ebs: true
imageBuilder: true
externalDNS: true
certManager: true
# CloudWatch Logging
cloudWatch: #컨트롤플레인 로깅
clusterLogging:
enableTypes: ["*"] #모든 로그를 cloudwatch에 담는다.
생각해보니 SQL용 role도 부여해야 할 것 같다,, 참고 아침에 일어나서 수정하기로.. 다시 보니까 수정할거 많은 듯
aws eks describe-cluster --name book-network --region ap-northeast-2 --query cluster.resourcesVpcConfig
생각해보니 aws sql을 인프라쪽에서 파일을 만들어서 웹 쪽에 넘겨줘야 하는 것 같아서... 그거 말하고 DB부터 만들 예정. 그러면 순서는 이렇게 되는 것 같다.