본문 바로가기

인프라/AWS

EKS 서비스 구축

2023.09.12 - [인프라/AWS] - AWS - EKS 실습

 

AWS - EKS 실습

AWS의 Elastic Kubernetes Service를 통해 로컬에서 만들었던 것 과 비슷한 환경을 구축 해볼 예정입니다. bastion 및 NAT Instance 겸용으로 사용할 인스턴스 한개와 두개의 워커 노드를 통해 만들어볼 예정입

younyellow.tistory.com

 

 

프라이빗 VPC 생성

참고 

2023.09.12 - [인프라/AWS] - AWS NAT Gateway, NAT Instance

 

AWS NAT Gateway, NAT Instance

AWS에는 NAT Gateway와 NAT Instance은 private 사설망을 외부와 연결시키기 위해서 사용합니다. NAT Gateway 와 NAT Instance 비교 NAT Gateway NAT Instance AWS에서 관리하여 고가용성을 보장합니다. EC2와 동일 최대 100

younyellow.tistory.com

 

 

 

EKS생성

사전 설정 

2023.09.05 - [인프라/Kubernetes] - AWS EKS 생성

 

AWS EKS 생성

2023.08.27 - [인프라/Kubernetes] - Kubernetes 실습 및 서비스 구축 Kubernetes 실습 및 서비스 구축 예상 k8s 서비스 아키텍쳐 Kubernetes 란? 쿠버네티스는 컨테이너화된 서비스를 쉽고 빠르게 배포,확장,관리

younyellow.tistory.com

참고

EKSCluster 유저에 권한 추가

IAMFullAccess,AmazonVPCReadOnlyAccess,EC2-Security-Group

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:ModifySecurityGroupRules",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress"
            ],
            "Resource": [
                "arn:aws:ec2:region:ap-northeast-2:security-group/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Department": "Test"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifySecurityGroupRules"
            ],
            "Resource": [
                "arn:aws:ec2:region:ap-northeast-2:security-group-rule/*"
            ]
        }
    ]
}

k8s  생성

cluster 인바운드 규칙 수정

Bastion(NAT Instance)서버에

kubectl 설치

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

aws-cli설치

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
apt install unzip
unzip awscliv2.zip
sudo ./aws/install

그 후 cli에 만들어두었던 유저로 로그인

aws configure
AWS Access Key ID [None]:  [아이디 값]
AWS Secret Access Key [None]: [키 값]
Default region name [None]: ap-northeast-2
Default output format [None]:

aws cli를 통해 kubectl 설정 적용

aws eks update-kubeconfig --region ap-northeast-2 --name k8s-cluster

IAM role 생성

정책 연결

노드 그룹 생성

deployment 적용

aws-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-web-server1
spec:
  replicas: 4
  selector:
    matchLabels:
      app: my-web-server1
  template:
    metadata:
      name: my-web-server1
      labels:
        app: my-web-server1
    spec:
      containers:
        - name: my-web-server1
          image: sihyun2/firstservice:v1

테스트

'인프라 > AWS' 카테고리의 다른 글

EKS auto scalling  (0) 2023.09.14
EKS NLB,ALB  (0) 2023.09.14
다른 IAM 계정에서 EKS-Cluster 조작 방법  (0) 2023.09.12
AWS NAT Gateway, NAT Instance  (0) 2023.09.12
AWS - EKS 실습  (0) 2023.09.12