<1> 헬름이란? 1 서울리전으로 변경 2 cloudformation으로 명령서버 1대 생성 3.36.103.152 aws-1130-key 3 aws s3 ls Unable to locate credentials. You can configure credentials by running "aws login". [root@kops-ec2 ~]# 4 # iam access-key , secret-key 확인 5 # 권한 설정 aws configure ap-northeast-2 <엔터> aws s3 ls 6 # 참고: 퍼블릭에 설치 cat < eks-public-setup.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: free-vpc-cluster region: ap-northeast-2 version: "1.34" vpc: clusterEndpoints: publicAccess: true privateAccess: true # --- 비용 절감 핵심: NAT Gateway를 생성하지 않음 --- nat: gateway: Disable managedNodeGroups: - name: standard-nodes instanceType: t3.small minSize: 1 maxSize: 3 desiredCapacity: 2 # --- 핵심 변경 사항: Public 서브넷에 노드 배치 --- privateNetworking: false iam: withAddonPolicies: imageBuilder: true autoScaler: true cloudWatch: true # EFS 사용을 위해 필요한 정책 추가 efs: true addons: - name: vpc-cni - name: coredns - name: kube-proxy - name: aws-efs-csi-driver # EFS 사용을 위한 드라이버 미리 추가 EOF # 클러스터 생성 시작 eksctl create cluster -f eks-public-setup.yaml 7 # 참고 : 프라이빗에 설치 cat < eks-freetier-setup.yaml apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: free-vpc-cluster region: ap-northeast-2 version: "1.34" vpc: clusterEndpoints: publicAccess: true privateAccess: true nat: gateway: Single # 비용 절감을 위해 NAT 게이트웨이를 1개만 생성 (중요!) managedNodeGroups: - name: standard-nodes # --- 인스턴스 타입 선택 가이드 --- # 1. t3.micro : 프리티어 대상 (단, K8s 시스템 Pod 실행 시 리소스가 매우 부족할 수 있음) # 2. t3.small : 가성비 추천 (시스템 안정성 확보) # 3. c7i-flex.large (2cpu/4gb) : 연산 위주 # 4. m7i-flex.large (2cpu/8gb) : 메모리 여유 instanceType: t3.small minSize: 1 maxSize: 3 desiredCapacity: 2 # 비용 절감을 위해 노드 수를 1대로 시작 (필요 시 증가) privateNetworking: true iam: withAddonPolicies: imageBuilder: true autoScaler: true cloudWatch: true # 필수 애드온만 설치 addons: - name: vpc-cni - name: coredns - name: kube-proxy EOF # 클러스터 생성 시작 eksctl create cluster -f eks-freetier-setup.yaml (15분) <2> 헬름 기반으로 애플리케이션 설치 0 터미널 1 wa 1 helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update 2 helm install my-web-server bitnami/nginx 3 # Helm 릴리스 목록 확인 helm list # 생성된 포드와 서비스 확인 kubectl get all -l app.kubernetes.io/name=nginx 4 # --set 옵션을 사용하여 설치 시점에 변수 주입 helm install my-web-server bitnami/nginx \ --set extraEnvVars[0].name=REQUIRED_VAR \ --set extraEnvVars[0].value='Hello from Helm!' 5 (ssss@free-vpc-cluster:N/A) [root@kops-ec2 ~]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 443/TCP 74m my-web-service ClusterIP 10.100.127.162 80/TCP 43m 6 # 기존 설치된 my-web-service의 타입을 LoadBalancer로 변경 helm upgrade my-web-server bitnami/nginx --set service.type=LoadBalancer 7 # 로컬의 8080 포트를 서비스의 80 포트로 연결 kubectl port-forward svc/my-web-service 8080:80 8 helm show values bitnami/nginx 9 # LoadBalancer로 변경해서 외부 주소를 할당 helm upgrade my-web-server bitnami/nginx --set service.type=LoadBalancer kubectl get svc my-web-service 10 # EXTERNAL-IP가 1.2.3.4라고 가정할 때 curl -I http://[할당된-외부-IP-또는-DNS] <3> Helm 기반 Nginx 설치 및 운영 가이드 1 wa k delete service/my-web-service # 1. 비트나미 저장소 추가 helm repo add bitnami https://charts.bitnami.com/bitnami # 2. 최신 차트 정보로 업데이트 helm repo update 2 # 1. 릴리스 helm install my-web-server bitnami/nginx \ --set extraEnvVars[0].name=REQUIRED_VAR \ --set extraEnvVars[0].value='Hello\, Kubernetes!' \ --set service.type=LoadBalancer 3 로드밸런서 접속 확인 ab2998c659c81490cab528e27e232525-872242410.ap-northeast-2.elb.amazonaws.com 4 # 1. 헬름 배포 상태 확인 helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-web-server default 1 2026-02-18 19:26:31.661175701 +0900 KST deployed nginx-22.5.01.29.5 kubectl get svc my-web-service <5> dns kubectl get svc -n kube-system -l k8s-app=kube-dns <6> 삭제 eksctl delete cluster --name free-vpc-cluster --region ap-northeast-2