본문 바로가기

AWS EKS 실습/EKS Beginner

(14)
EKS Cluster에서 사용자 권한 등록 EKS Cluster 구성 확인 EKS 콘솔을 통해서, 생성된 EKS Cluster를 확인 할 수 있습니다. 각 계정의 User로 로그인 한 경우, 아래에서 처럼 eks cluster에 대한 정보를 확인 할 수 없습니다. 이것은 권한이 없기 때문입니다. User의 권한을 Cloud9에서 추가해 줍니다. configmap 인증 정보 수정 cloud9 IDE Terminal 에 kubectl 명령을 통해서, 계정의 사용자에 대한 권한을 추가해 줍니다. kubectl edit -n kube-system configmap/aws-auth user arn은 IAM에서 확인 할 수 있습니다. AWS 관리 콘솔 - IAM - User 아래 새로운 사용자의 권한을 mapRoles 뒤에 추가해 줍니다. mapUsers:..
Statefulsets을 사용하는 STATEFUL CONTAINER (w/ Persistent Volume) StatefulSet Pod 집합에 대한 deployment와 scaling을 관리하고 이들 Pod가 다음중 하나 이상의 요구 사항을 갖는 어플리케이션을 위해 안정적으로 제공되는 것을 보장한다. - Stable, unique 네트워크 식별자 - Stable, Persistent Storage - Ordered, graceful deployment and scaling - Ordered, automated rolling updates 이 장에서는 StatefulSet 및 PersistentVolume으로 Amazon Elastic Block Store(EBS)를 다음과 같이 사용하여 MySQL 데이터베이스를 배포하는 방법을 검토한다. ㅁ Amazon EBS CSI Driver ㅇ Container Stor..
Spot Instance로 EKS 구성 이번장에서는 Spot Instance를 통해 비용과 Sacle을 최적화 하는 EKS 환경을 구성해 본다. ㅁ Spot EC2 Worker Node 추가 기존 구성되어 있는 node를 OnDemand Node로 변경하여 신규 생성할 Spot Node와 구분할 수 있도록 함 $ kubectl label nodes --all 'lifecycle=OnDemand' node/ip-192-168-21-20.ap-northeast-2.compute.internal labeled node/ip-192-168-40-208.ap-northeast-2.compute.internal labeled node/ip-192-168-71-49.ap-northeast-2.compute.internal labeled 새로운 Spot w..
Assigning Pods to Nodes 이 파트에서는 pod 할당 전략의 작동 방식, 대안 및 권장 되는 접근 방식을 검토한다. 특정 노드에서만 실행되거나 특정 노드에서 실행되도록 pod를 제한 할 수 있다. 일반적으로 스케줄러가 자동으로 Pod의 적절한 배치를 수행하기 때문에 pod를 노드에 할당하는 제약 조건이 필요하지 않으나 Pod가 연결된 노드에 특성이 일부 있을 수 있어 이 기능도 필요하다. ㅁ NODESELECTOR nodeSelectorsms는 node를 선택하는 제한을 적용하기에 가장 추천하는 기능이다. nodeSelector는 PodSpec의 필드이다. kye-value 맵을 지정한다. Pod가 Node에서 실행될 수 있으려면 Node에 표시된 각 Key-Value Pair가 Label로 있어야 한다. ㅇ Attach a La..
Exposing a Service Kuberenetes는 Pod가 어떤 호스트에 연결되든 관계없이 포드가 다른 Pod와 통신할 수 있다고 가정한다. clarkshim.tistory.com/59 외부 서비스에서 외부 클라이언트로...(Nodeport, Loadbalancer, Ingress) [서비스가 외부에서 액세스 가능하게 하는 방법] ㅇ. NodePort 서비스 타입으로 설정하기 - NodePort 서비스의 각 클러스터 노드는 노드 자체 이름을 통해 port를 열고 port에서 발생한 트래픽을 서비 clarkshim.tistory.com 모든 Pod에 고유한 cluster-private-IP 주소를 제공하므로 포드간에 링크를 명시적으로 만들거나 컨테이너 포트를 호스트포트에 매핑할 필요가 없다. 즉 Pod내의 컨테이너는 모두 local..
EKS Network 정책 실습 (w/Calico) ㅇ Egress Access Control 구현 (EKS workload가 다른 Amazon 서비스 (RDS 또는 EC2 인스턴스) 또는 다른 API End Point와 통신) ㅇ 서로 통신할 수 없는 Microservice Troubleshooting ㅇ EKS에서 Enterprise 보안 control 구현 및 리포트 ㅁ Install Calico aws/amazon-vpc-cni-k8s GitHub project에서 Calico manifest를 받아서 적용하면 kube-system namespace에 daemon set으로 생성된다. kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/v1.6..
Security Groups For Pods 컨테이너화된 어플리케션은 Amazon RDS와 같은 외부 AWS 서비스뿐만 아니라 cluster 내에서 실행되는 다른 서비스간에 엑세스 하는 것이 자주 필요하다. AWS에서 서비스 간의 네트워크 수준 액세스 제어는 종종 보안 그룹을 통해 수행 된다. 이 기능이 출시 되기 전에는 노드 수준에서만 보안 그룹을 할당할 수 있었다. 또한 노드 그룹 내부의 모든 노드가 보안 그룹을 공유하기 때문에 노드 그룹 보안 그룹이 RDS 인스턴스에 액세스 할 수 있도록 허용하여 녹색 Pod에서만 액세스 권한이 있어야 하는 경우에도 노드에서 실행중인 모든 Pod가 RDS에 액세스 엑세스 할 수 있다. Security Groups for Pods는 Kubernetes Pods와 Securty Group을 통합한다. Amazon..
Create An OIDC Identity Provider Cluster에서 Service Accounts를 위한 IAM Role을 사용하기 위해서는 IAM Console에서 OIDC identity provider를 생성해야 한다. 먼저 eksctl version을 확인하여 0.5.1보다 버전이 낮다면 eksctl을 업그레이드 해야 한다. eksctl version docs.aws.amazon.com/eks/latest/userguide/eksctl.html#installing-eksctl 참고 The eksctl command line utility - Amazon EKS The GitTag version should be at least 0.38.0. If not, check your terminal output for any installation or ..