본문 바로가기

⭐ Kubernetes & EKS

(140)
EKS에서 Fargate로 pod 배포하기 # nginx pod를 eks에서 pod로 배포하는 작업을 진행한다. - eks에서는 오리지날 pod로 배포할 수도있고 fargate를 활용하여 pod로 배포가 가능하다. - fargate란? AWS 공식사이트 설명 AWS Fargate는 기본 인프라를 관리할 필요 없이 컨테이너를 배포하고 관리할 수 있는 컴퓨팅 엔진입니다. Fargate를 사용하면 애플리케이션을 쉽게 확장할 수 있습니다. 더 이상 컨테이너 애플리케이션에 대해 충분한 컴퓨팅 리소스를 프로비저닝하기 위해 걱정할 필요가 없습니다. 수십 또는 수천 개의 컨테이너를 몇 초 이내에 시작할 수 있습니다. - AWS 공식 사이트 https://aws.amazon.com/ko/about-aws/whats-new/2017/11/introducing-aw..
클러스터 권한을 2명 이상 부여 해야 할 경우 # 클러스터 권한부여를 2명이상 할 때 - 클러스터 권한을 2명이상 부여할 때 아래와 같이 정의한다. apiVersion: v1 data: mapRoles: | - groups: - system:bootstrappers - system:nodes rolearn: arn:aws:iam::12345678901234:role/EKS-Worker-Node-Role username: system:node:{{EC2PrivateDNSName}} mapUsers: | - groups: - system:masters userarn: arn:aws:iam::12345678901234:user/test_user_01 username: test_user_01 userarn: arn:aws:iam::12345678901234..
Custom AMI를 생성 후 EKS 노드그룹에 반영하기 # Custom AMI를 활용하여 EKS 노드그룹에 반영하여 구성하기 - Custom AMI란? Custom AMI는 AWS에서 사용하던 인스턴스를 그대로 이미지로 만들 수 있다. 이러한 이미지를 Custom AMI 이라고 하며 자신이 구축한 인스턴스 환경을 그대로 이미지화 할 수 있다는 점에서 클라우드 환경에서 꼭 필요한 기능이다. - Custom AMI를 활용하여 EKS 노드그룹에서 배포를 하는 방법에 대해서 알아보자. EKS NodeGroup에 Custom AMI를 배포하는 법은 간단하다. 이러한 작업이 필요한 이유는 EKS NodeGroup 즉, 각각의 EC2에 개별 보안 요소를 적용하거나 에이전트를 설치하여 Golden Image로 운영을 필요로 하는 사람들이 많을 것이다. EKS NodeGro..
ClusterAutoscaler 생성 및 테스트 (Part.1) # EKS에 ClusterAutoscaler를 생성하자. - 일단 ClusterAutoscaler가 무엇인지 알아보면 아래와 같다. Cluster Autoscaler는 resource부족으로 실행이 안된 pod가 존재할때 node를 scale out 한다. 그리고 Cluster에 장시간동안 사용률이 낮은 node가 있고, 이 node에 있는 pod를 다른 node에 재배치할 수 있을때 node를 scale in 한다. CA는 10초에 한번씩 pod를 검사하며 빠르게 scale out, scale in을 한다. 하지만 한번 node가 scale out 되면 scale in 검사를 하기까지 10분동안 대기를 하기때문에 scale out은 비교적 빠르게, scale in은 비교적 느리게 진행된다고 할 수 있다..
EKS에 다른 사용자 접근 허용하기 # EKS에 다른 IAM 사용자의 접근을 허용하는 방법 - EKS는 생성자 외에는 내부 자원을 볼 수 없게 되어 있다. 만약 EKS 리소스를 생성한자 외의 사람이 EKS 클러스터에 접근을 하기 위해서는 aws-auth.yml 파일에 접근 하려는 사용자를 추가해 줘야 한다. 1. AWS 권한 Configmap을 확인 및 저장해보자. kubectl get -n kube-system configmap/aws-auth - AWS 권한 Configmap을 수정 kubectl edit -n kube-system configmap/aws-auth - AWS Cloud9 에서는 복사 붙여넣기가 잘 안되므로 파일로 저장하여 수정하는 방법을 써보자. - 파일로 저장하기 kubectl get configmaps aws-au..
K8S Secret을 활용한 ID / Password 확인하기 # K8S에서 Secret의 기본적인 동작 방식은 아래를 참고한다. 2021.09.14 - [⭐ Kubernetes & EKS/Secret (시크릿)] - Secret을 활용한 환경변수 설정 Secret을 활용한 환경변수 설정 # Secret을 활용한 환경변수 설정 쿠버네티스 시크릿을 사용하면 비밀번호, OAuth 토큰, ssh 키와 같은 민감한 정보를 저장하고 관리할 수 ​​있다. 시크릿은 암호, 토큰 또는 키와 같은 소량의 중요 may9noy.tistory.com 1. Secret 조회하기 - 명령어 # 모든 NmaeSpaces의 secret을 조회 kubectl get secret -A 2. 특정 Namespace의 secret 조회하기 kubectl get secret -n jenkins NAME..
레이블과 셀렉터 실습 (service의 셀렉터와 deployment의 셀렉터 매칭) # 레이블과 셀렉터의 정보를 변경하여 어떤 흐름으로 동작하는지 확인 1. metadata의 name 변경 metadata의 name을 nginx와 nginx-01로 변경하면 아래와 같이 각각의 리소스별로 생성이 된다. nginx nginx-01-6595874d85-5w9sd 1/1 Running 0 14s nginx nginx-01-6595874d85-cbrjx 1/1 Running 0 14s nginx nginx-01-6595874d85-cq55n 1/1 Running 0 14s nginx nginx-01-6595874d85-dwn6r 1/1 Running 0 14s nginx nginx-01-6595874d85-jmp7h 1/1 Running 0 14s nginx nginx-01-6595874d85-..
Taint & Toleration # Taint & Toleration에 대해서 알아본다. 1. Affinity - affinity는 간단하게 말하면, Pod를 특정 Node에 배포되도록 하는 정책이다. 2. Taints - 간단하게 말해서 Pod가 배포되지 못하도록 하는 정책 이다. 3. master node에 pod가 스케줄링 되지 않도록 구성 - Taint & Toleration taint: 노드마다 설정가능하며 설정한 노드에는 pod가 스케줄되지 않는다. toleration: taint를 무시하고 pod에 설정하면 해당 규칙대로 pod 스케줄링 가능하다. Taint 설정 Options NoSchedule: toleration이 없으면 pod가 스케줄되지 않는다. 단, 기존 실행된 pod에는 적용 안됨. PreferNoSchedul..