Control-plane의 API 서버에 API 요청을 하는 두 개체가 있습니다. 바로 'User(or Group)'와 'Pod'인데요, (모든 Pod는 'ServiceAccount' 계정을 기반으로 동작) API 서버에 아무나 아무 요청을 하도록 하면 안 되기 때문에 API 요청을 승인하기 위해서는 Role 기반의 인증 작업을 거칩니다. 그 인증 작업을...
cordon/uncordon이란? 노드는 SchedulingEnabled(=default)와 SchedulingDisabled 중 하나의 상태를 가지는데 SchedulingDisabled 된 노드는 스케줄링 대상에서 제외되어 해당 노드에 파드가 신규로 생성되지 않습니다. (이미 노드에서 실행되고 있던 Pod에는 영향을 주지 않습니다.) 특정 노드의 스케줄...
관리자는 Pod를 배치하고 싶지 않은 노드에 taint를 설정합니다. taint는 '오염', '얼룩'이라는 뜻이기 때문에 직관적으로 생각해 보면 Pod를 띄우고 싶지 않은 노드를 오염시켜 오염된 노드에는 Pod가 뜨지 않도록 하는 것이라고 이해할 수 있습니다. toleration은 '허용', '용인'이라는 뜻으로, taint가 부여된 노드도 tolerat...
Pod에 할당되는 IP 주소는 Internal(내부) IP이며 노드 내에서 Pod끼리는 이 내부 IP로 통신합니다. Pod 내에는 여러 개의 컨테이너가 존재할 수 있는데 Pod 내 컨테이너들은 Pod의 IP를 할당받기 때문에 Pod 내에 여러 개의 컨테이너가 있더라도 이 컨테이너들은 모두 같은 IP를 할당받게 됩니다. 따라서 Pod 내 컨테이너끼리는 lo...
ETCD에 대해 알아보고 ETCD를 백업 및 복구하는 방법에 대해 알아보겠습니다. ETCD란? ETCD는 쿠버네티스의 기본 데이터 저장소이며 key-value 형태로 모든 쿠버네티스 클러스터 상태를 저장하고 복제합니다. 쿠버네티스 클러스터를 구성하는 필수 요소이므로 ETCD에 문제가 발생하여 클러스터 내 모든 정보가 사라져도 백업본이 있다면 restore...
EKS는 최초 생성 후 오직 'EKS를 생성한 IAM User'만 해당 EKS에 접근이 가능합니다. 만약 '생성한 User'가 아닌 다른 User로 접근을 시도할 경우, 다음과 같은 에러가 발생합니다. 따라서 'IAM User' 혹은 'IAM Role'의 EKS 접근을 허용하려면 EKS를 생성한 IAM User로 접속하여 권한을 부여해 주어야 합니다. 이...
eksctl로 EKS 애드온을 생성하려면 먼저 OIDC를 알아야 합니다. IAM OIDC provider 생성없이 eksctl 명령어를 사용하면 아래와 같은 에러가 발생하기 때문입니다. OIDC OIDC란 'OpenID Connect'의 약자로 OAuth 2.0을 기반으로 하는 인증 프로토콜입니다. Authorization Server에서 수행한 인증을...
Helm 설치 Helm으로 Nginx Ingress를 설치하기 위해 local(bastion)에 Helm을 설치해 보겠습니다. > 위 과정 진행 후에도 helm이 제대로 설치되지 않았다면 환경변수 path 확인(echo $PATH) 후 /usr/local/bin 아래 설치된 helm을 환경변수 path인 /usr/bin으로 옮겨줍니다. 'WARNING'...
문제 발생 ingress-nginx 설치 후 ingress를 생성한 뒤 kubectl get ingress 수행 시 생성한 ingress의 'ADDRESS'가 비어있는 문제 발생하였습니다. 문제 해결 1. ingress-class 값 찾기 ingress-controller의 deployment에서 ingress-class를 찾습니다. ingress-...
AWS Load Balancer Controller 추가 기능 설치를 참고하여 작성하였습니다. Prerequisites EKS 클러스터에는 OpenID Connect (OIDC) 발급자 URL이 연결되어 있습니다. 서비스 계정에 IAM 역할을 사용하려면 클러스터의 OIDC 발급자 URL에 IAM OIDC 제공업체가 있어야 합니다. OIDC provide...
에러 메시지 Pod의 status가 'Pending' 상태로 지속되며 정상적으로 뜨지 않아 kubectl describe로 확인해 봤더니 아래와 같이 "volume node affinity conflict" 에러가 발생하였습니다. Pod 상태 확인 에러 메시지 확인 문제 파악 먼저 PV를 확인합니다. 현재 제 EKS 클러스터는 Multi AZ(Zon...