반응형
Jen'_'
Jen's Space
Email
GitHub
전체 방문자
오늘
어제
  • 분류 전체보기 (98)
    • Ansible (4)
      • 우아한앤서블 (4)
    • Cloud (19)
      • AWS (17)
      • GCP (2)
    • DevOps (40)
      • Docker (6)
      • Kubernetes (26)
      • CICD (6)
      • Terraform (2)
    • Language (13)
      • Python (12)
      • Node.js (1)
    • Linux (10)
    • etc. (7)
    • 개인기록 (1)
    • AEWS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 피드백 환영합니다 :)

인기 글

태그

  • 쿠버네티스
  • jenkins
  • k8s
  • autoscaling
  • argocd
  • terraform
  • Docker
  • 자격증
  • ansible
  • CICD
  • ubuntu
  • Kubernetes
  • INGRESS
  • 우아하게앤서블
  • AWS
  • karpenter
  • gitops
  • ALB
  • EKS
  • vagrant

최근 댓글

Jen'_'

Jen's Space

[EKS] eksctl create cluster yaml file 생성
DevOps/Kubernetes

[EKS] eksctl create cluster yaml file 생성

2022. 3. 18. 12:18
반응형

사전 환경

  • VPC 1개 
  • Private Subnet 2개 
  • Public Subnet 에 IGW, NAT 생성 
  • keypair 생성

 

 

클러스터 적용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
 
metadata:
  name: eks-demo
  region: ap-northeast-2
  version: "1.21"
 
iam:
  withOIDC: true
 
vpc:
  subnets:
    private:
      ap-northeast-2a: { id: subnet-xxxxxxxxxxxxxxxxx }
      ap-northeast-2c: { id: subnet-xxxxxxxxxxxxxxxxx }
cs
  1. metadata 에 cluster 의 정보를 넣습니다.
  2. iam.withOIDC: Amazon CNI 플러그인에 대해 IAM OIDC 공급자와 IRSA를 활성화합니다. 후에 alb-ingress-controller 와 같은 addons 를 설치하기 위해 필요합니다.
  3. vpc.subnets 에서 지정한 서브넷에 worker node가 생성됩니다. 

 

NodeGroup 적용 (managed)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
managedNodeGroups:
  - name: eks-worker
    instanceType: t3.medium
    instanceName: eks-worker
    privateNetworking: true
    # autoscaling
    minSize: 2
    maxSize: 4
    desiredCapacity: 2
    # volume
    volumeType: gp3
    volumeSize: 20
    # ssh 
    ssh:
      allow: true
      # keypair-pem key
      publicKeyName: jenakey
      # new feature for restricting SSH access to certain AWS security group IDs
      sourceSecurityGroupIds: ["sg-xxxxxxxxxxxx"]
    labels: {role: worker}
    tags:
      nodegroup-role: worker
Colored by Color Scripter
cs

 

1. 노드그룹에는 관리형(managedNodeGroups) 와  비관리형(nodeGroups) 가 있습니다.

  •  managedNodeGroups은 최신 k8s 및 호스트 OS 버전으로 노드를 최신화 상태로 유지시켜 줍니다. 반대로  nodeGroups는 사용자가 직접 업데이트를 해야합니다.
  • EKS 콘솔에는 managedNodeGroups 만 표시가 됩니다. nodeGroups 콘솔에 표시되지 않습니다. 
  • https://eksctl.io/usage/eks-managed-nodes/#creating-managed-nodegroups

 

2. privateNetworking: 보안을 위해 private 을 사용했습니다. 

 

3. ssh 

  • publickeyName: 키페어로 생성한 pem key 를 입력했습니다. 
  • sourceSecurityGroupIds: ssh 를 허용하는 sg id 를 입력합니다. master ec2 의 보안그룹을 입력하여 master 에서만 접근 가능하도록 했습니다. 

 

 

 

클러스터 생성

$ eksctl create cluster -f cluster.yaml

 

위의 명령어를 입력하면 클러스터가 생성됩니다.

CloudFormation 에서 클러스터 구성 스택이 끝나고 노드 구성 스택이 생성되는 과정을 거칩니다.

 

 

 

 

참고

https://eksctl.io/usage/schema/

https://github.com/weaveworks/eksctl/tree/main/examples

반응형
저작자표시

'DevOps > Kubernetes' 카테고리의 다른 글

Kubernetes Component  (0) 2022.06.22
[EKS] ingress-nginx helm chart 에 AWS ACM 등록  (0) 2022.06.01
[EKS] AWS EBS 볼륨을 K8S PV로 사용  (0) 2021.12.22
[EKS] alb-ingress-controller path 기반 라우팅 404 에러  (0) 2021.12.20
[ECS] Fargate 사용해보기  (0) 2021.09.05
    'DevOps/Kubernetes' 카테고리의 다른 글
    • Kubernetes Component
    • [EKS] ingress-nginx helm chart 에 AWS ACM 등록
    • [EKS] AWS EBS 볼륨을 K8S PV로 사용
    • [EKS] alb-ingress-controller path 기반 라우팅 404 에러
    Jen'_'
    Jen'_'
    DevOps 엔지니어 Jen의 기술 블로그 / 이메일: jenakim47@gmail.com

    티스토리툴바