본문으로 건너뛰기

EKS Default Namespace 삭제 시 장애 대응 가이드

📅 작성일: 2025-01-07 | 수정일: 2026-02-14 | ⏱️ 읽는 시간: 약 12분

1. 개요 (TL;DR)

Critical Alert

EKS 클러스터에서 default namespace를 삭제하면 Control Plane에 대한 모든 접근이 차단됩니다. kubectl 명령어가 작동하지 않으며, Velero나 etcd 백업으로도 복구할 수 없습니다. Default Namespace는 삭제가 불가능하도록 관리해야하는 클러스터의 핵심 리소스입니다. 따라서 Admission Controller 혹은 다른 접근 통제 매커니즘을 활용하여 신중하게 관리하는 것을 강력하게 권장합니다.

  • 장애 원인: default namespace 삭제 시 kubernetes Service가 함께 삭제됨
  • 영향 범위: API Server 접근 불가 → 클러스터 전체 관리 불가 → (장기화시)서비스 장애 유발
  • 복구 방법: AWS Support 케이스 오픈 필수 (Severity: Critical)
복구 방법 한 줄 요약

AWS Support에 Critical 케이스를 오픈하고, Account Team과 WWSO Specialist를 티켓에 참조로 추가하여 신속한 복구를 요청하세요.


2. 장애 원인 분석

2.1 Default Namespace의 역할

default namespace는 단순히 사용자 워크로드를 배포하는 기본 공간이 아닙니다. Kubernetes 클러스터의 핵심 리소스들이 이 namespace에 존재합니다.

default namespace에 포함된 핵심 리소스:

주의

kubernetes Service는 클러스터 내부에서 API Server에 접근하기 위한 유일한 경로입니다. 이 Service가 삭제되면 모든 Kubernetes 컴포넌트가 Control Plane과 통신할 수 없게 됩니다.

2.2 장애 발생 메커니즘

default namespace 삭제 시 발생하는 연쇄적인 장애 과정을 다이어그램으로 살펴보겠습니다.

장애 발생 순서:

  1. namespace 삭제 명령 실행: kubectl delete namespace default
  2. Cascading 삭제: namespace 내 모든 리소스가 함께 삭제됨
  3. kubernetes Service 삭제: API Server endpoint가 사라짐
  4. 연결 단절: 클러스터 내부 컴포넌트들이 API Server와 통신 불가
  5. 관리 불가 상태: 어떤 kubectl 명령어도 실행할 수 없음

워커 노드에 미치는 영향

API Server endpoint가 사라진 상태가 지속되면 워커 노드에도 연쇄적인 영향이 발생합니다.

시간에 따른 노드 상태 변화:

중요

이 상황에서는 Control Plane 자체에 접근이 불가능하기 때문에, Node Controller도 실제로 노드 상태를 업데이트하거나 taint를 추가하는 작업을 수행할 수 없습니다. 결과적으로 클러스터 전체가 "frozen" 상태에 빠지게 되며, 기존에 실행 중인 Pod들은 계속 동작하지만 새로운 스케줄링이나 상태 변경은 불가능합니다.

Frozen 상태에서의 서비스 영향

클러스터가 frozen 상태에 빠지면 기존 워크로드는 일정 시간 동안 계속 동작하지만, 시간이 경과할수록 서비스에 심각한 영향이 발생합니다.

즉시 영향받는 부분:

  • ❌ 새로운 Pod 스케줄링 불가
  • ❌ Pod 재시작/재배포 불가
  • ❌ ConfigMap, Secret 변경 반영 불가
  • ❌ HPA(Horizontal Pod Autoscaler) 스케일링 불가

시간 경과에 따른 서비스 영향:

특히 위험한 시나리오
  • DNS 캐시가 만료되거나 TLS 인증서 만료시 서비스 디스커버리 실패로 인한 통신 불가
  • Pod가 OOMKilled 되거나 crash 되면 재시작 불가
  • 노드가 장애나면 해당 노드의 모든 워크로드 손실
  • ALB/NLB Target Group 업데이트 불가로 트래픽 라우팅 실패

시간이 지날수록 장애 범위가 확대되므로, 가능한 빨리 AWS Support에 연락하는 것이 중요합니다.


3. 장애 대응 절차

Step 1: 장애 상황 확인

default namespace 삭제로 인한 장애가 의심되면, 먼저 클러스터 상태를 확인해야 합니다.

1-1. kubectl 접근 테스트

가장 먼저 kubectl 명령어가 정상 작동하는지 확인합니다.

# 클러스터 정보 조회 시도
kubectl cluster-info

# 예상되는 에러 메시지
# Unable to connect to the server: dial tcp: lookup kubernetes on 10.100.0.10:53: no such host
# 또는
# The connection to the server <cluster-endpoint> was refused
주의

위와 같은 에러가 발생하면 kubernetes Service가 삭제되어 API Server에 접근할 수 없는 상태입니다.

1-2. AWS CLI로 클러스터 상태 확인

kubectl이 작동하지 않더라도 AWS CLI를 통해 EKS 클러스터의 상태를 확인할 수 있습니다.

# 클러스터 상태 확인
aws eks describe-cluster \
--name <cluster-name> \
--query 'cluster.{Name:name,Status:status,Endpoint:endpoint,Version:version}' \
--output table

# 예상 출력 (클러스터 자체는 ACTIVE 상태)
# -------------------------------------------------------------------
# | DescribeCluster |
# +----------+------------------------------------------------------+
# | Name | my-eks-cluster |
# | Status | ACTIVE |
# | Endpoint| https://XXXXX.gr7.ap-northeast-2.eks.amazonaws.com |
# | Version | 1.31 |
# +----------+------------------------------------------------------+
# 노드 그룹 상태 확인
aws eks list-nodegroups --cluster-name <cluster-name>

aws eks describe-nodegroup \
--cluster-name <cluster-name> \
--nodegroup-name <nodegroup-name> \
--query 'nodegroup.{Name:nodegroupName,Status:status,DesiredSize:scalingConfig.desiredSize}' \
--output table

1-3. 장애 상황 판단 기준

핵심 포인트

AWS 콘솔이나 CLI에서 클러스터는 ACTIVE 상태로 보이지만, kubectl 명령어가 전혀 작동하지 않는다면 default namespace 삭제를 의심해야 합니다.

체크포인트: 위 증상이 확인되면 즉시 Step 2: AWS Support 케이스 오픈으로 진행하세요.

Step 2: AWS Support 케이스 오픈

default namespace 삭제로 인한 장애는 AWS Support를 통해서만 복구할 수 있습니다. 즉시 케이스를 오픈하세요.

2-1. 케이스 오픈 정보

2-2. 케이스 본문 템플릿

아래 템플릿을 복사하여 케이스 본문에 붙여넣으세요.

[긴급] EKS 클러스터 default namespace 삭제로 인한 Control Plane 접근 불가

■ 클러스터 정보
- Cluster Name: <클러스터 이름>
- Region: <리전>
- Account ID: <AWS 계정 ID>
- Cluster Version: <Kubernetes 버전>

■ 장애 상황
- 발생 시각: <YYYY-MM-DD HH:MM KST>
- 증상: default namespace 삭제 후 kubectl 명령어 실행 불가
- 영향 범위: 클러스터 전체 관리 불가

■ 확인된 사항
- AWS CLI로 클러스터 상태 확인: ACTIVE
- kubectl cluster-info 실행 결과: 연결 실패
- kubectl get ns default 실행 결과: 연결 실패

■ 요청 사항
default namespace 및 kubernetes Service 복구를 요청드립니다.
프로덕션 환경으로 긴급 복구가 필요합니다.

■ 연락처
- 담당자: <이름>
- 전화번호: <연락처>
- 이메일: <이메일>

2-3. AWS 콘솔에서 케이스 오픈 방법

  1. AWS Support Center 접속
  2. Create case 클릭
  3. Technical 선택
  4. Service: Elastic Kubernetes Service (EKS) 선택
  5. Category: Cluster Issue 선택
  6. Severity: Critical - Business-critical system down 선택 (Enterprise Support 플랜에서만 가능)
  7. 위 템플릿을 본문에 붙여넣기
  8. Contact options에서 Phone 선택 (빠른 응답)
  9. Submit 클릭
중요

케이스 오픈 후 케이스 ID를 반드시 기록해두세요. Account Team과 WWSO Specialist에게 연락할 때 필요합니다.

Step 3: Account Team/WWSO Specialist 연락

AWS Support 케이스 오픈과 동시에 Account Team과 WWSO(Worldwide Specialist Organization) Specialist에게 연락하여 복구 속도를 높이세요.

3-1. 티켓에 참조 추가

AWS Support 케이스에 Account Team과 WWSO Specialist를 참조로 추가합니다.

  1. 오픈한 케이스의 Correspondence 섹션으로 이동
  2. Reply 버튼 클릭
  3. 아래 내용을 추가하여 참조 요청
CC 요청:
- AWS Account Team: <Account Manager 이름/이메일>
- WWSO EKS Specialist: <Specialist 이름/이메일 (알고 있는 경우)>

긴급 복구가 필요한 프로덕션 환경입니다.
Account Team과 EKS Specialist의 지원을 요청드립니다.

3-2. Account Team 직접 연락

AWS Support 케이스와 별도로 Account Team에게 직접 연락합니다.

이메일 템플릿:

제목: [긴급] EKS 클러스터 장애 - Support Case #<케이스 ID>

안녕하세요,

프로덕션 EKS 클러스터에서 긴급 장애가 발생하여 연락드립니다.

■ 장애 요약
- 클러스터: <클러스터 이름>
- 증상: default namespace 삭제로 인한 Control Plane 접근 불가
- Support Case ID: <케이스 ID>

■ 요청 사항
해당 케이스의 우선순위 상향 및 EKS Specialist 연결을 요청드립니다.

감사합니다.
<이름>
<연락처>

Slack/SMS 메시지 (Account Team 채널이 있는 경우):

🚨 [긴급] EKS 클러스터 장애 발생

- Account: <계정 ID>
- Cluster: <클러스터 이름>
- Issue: default namespace 삭제로 Control Plane 접근 불가
- Support Case: #<케이스 ID>

프로덕션 환경으로 긴급 지원 요청드립니다.

3-3. WWSO Specialist 연락

WWSO EKS Specialist를 알고 있다면 직접 연락합니다. 스페셜리스트에게 연락을 하게 되면 내부 티켓을 활용하여 티켓의 중요도를 상승 시키고, 인터널 파이프라인을 통해서 할당된 엔지니어에게 직접 작업 요청을 전달 합니다.

3-4. 연락 체크리스트

Step 4: 복구 후 검증

AWS Support를 통해 default namespace가 복구되면, 클러스터가 정상적으로 작동하는지 검증합니다.

4-1. 기본 연결 검증

# 1. 클러스터 연결 확인
kubectl cluster-info

# 예상 출력:
# Kubernetes control plane is running at https://XXXXX.gr7.ap-northeast-2.eks.amazonaws.com
# CoreDNS is running at https://XXXXX.gr7.ap-northeast-2.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
# 2. default namespace 존재 확인
kubectl get namespace default

# 예상 출력:
# NAME STATUS AGE
# default Active <시간>
# 3. kubernetes Service 확인
kubectl get svc kubernetes -n default

# 예상 출력:
# NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
# kubernetes ClusterIP 10.100.0.1 <none> 443/TCP <시간>

4-2. 핵심 컴포넌트 상태 검증

# 4. 노드 상태 확인
kubectl get nodes

# 모든 노드가 Ready 상태인지 확인
# 5. 시스템 Pod 상태 확인
kubectl get pods -n kube-system

# 모든 Pod이 Running 상태인지 확인
# 특히 coredns, kube-proxy, aws-node 확인
# 6. 모든 namespace 확인
kubectl get namespaces

# default, kube-system, kube-public, kube-node-lease 존재 확인

4-3. API Server 기능 검증

# 7. API 리소스 조회 테스트
kubectl api-resources | head -20

# 8. 간단한 리소스 생성/삭제 테스트 (선택사항)
kubectl run test-pod --image=nginx --restart=Never -n default
kubectl get pod test-pod -n default
kubectl delete pod test-pod -n default

검증 체크리스트:

Step 5: 워크로드 점검

복구 후 기존 워크로드들이 정상적으로 동작하는지 점검합니다.

5-1. 워크로드 상태 점검

# 1. 모든 namespace의 Pod 상태 확인
kubectl get pods --all-namespaces | grep -v Running | grep -v Completed

# Running, Completed 상태가 아닌 Pod 확인
# 2. Deployment 상태 확인
kubectl get deployments --all-namespaces

# READY 컬럼에서 원하는 replica 수와 실제 수가 일치하는지 확인
# 3. StatefulSet 상태 확인
kubectl get statefulsets --all-namespaces
# 4. DaemonSet 상태 확인
kubectl get daemonsets --all-namespaces

# DESIRED와 READY 수가 일치하는지 확인

5-2. 서비스 연결 점검

# 5. Service 및 Endpoints 확인
kubectl get svc --all-namespaces
kubectl get endpoints --all-namespaces

# Endpoints에 IP가 정상적으로 할당되어 있는지 확인
# 6. Ingress 상태 확인 (사용하는 경우)
kubectl get ingress --all-namespaces

5-3. 스토리지 점검

# 7. PersistentVolumeClaim 상태 확인
kubectl get pvc --all-namespaces

# 모든 PVC가 Bound 상태인지 확인
# 8. PersistentVolume 상태 확인
kubectl get pv

# 모든 PV가 Bound 상태인지 확인

5-4. 이벤트 및 로그 확인

# 9. 최근 Warning 이벤트 확인
kubectl get events --all-namespaces --field-selector type=Warning --sort-by='.lastTimestamp' | tail -20
# 10. 문제가 있는 Pod의 로그 확인
kubectl logs <pod-name> -n <namespace> --tail=100

5-5. 워크로드 점검 체크리스트

장애 발생 시간 동안 실패한 Job이나 CronJob이 있을 수 있습니다. 필요한 경우 수동으로 재실행하세요.

# 실패한 Job 확인
kubectl get jobs --all-namespaces --field-selector status.successful=0

최종 체크포인트: 모든 워크로드가 정상 상태로 확인되면 장애 대응이 완료됩니다. 이후 재발 방지 대책을 검토하세요.


4. Critical 리소스 목록

4.1 Critical Namespaces

default namespace 외에도 삭제 시 클러스터에 치명적인 영향을 주는 시스템 namespace들이 있습니다. 이러한 namespace들은 절대로 삭제해서는 안 됩니다.

Critical Warning

default와 kube-system namespace는 삭제 시 kubectl 접근 자체가 불가능해지므로 수동 복구가 불가능합니다. 반드시 AWS Support를 통해 복구해야 합니다.

각 Namespace의 상세 역할:

default:

  • kubernetes Service: 클러스터 내부에서 API Server에 접근하기 위한 endpoint
  • default ServiceAccount: namespace에 ServiceAccount가 지정되지 않은 Pod의 기본 인증 주체

kube-system:

  • 클러스터 운영에 필수적인 모든 시스템 컴포넌트가 배포되는 namespace
  • EKS Add-on (CoreDNS, kube-proxy, VPC CNI) 및 컨트롤러들이 위치

kube-public:

  • 인증되지 않은 사용자도 읽을 수 있는 공개 정보 저장
  • cluster-info ConfigMap에 클러스터 CA 인증서와 API Server 주소 포함

kube-node-lease:

  • 각 노드의 Lease 객체가 저장되어 heartbeat 역할 수행
  • Node Controller가 이 정보를 기반으로 노드 상태를 판단

4.2 kube-system 핵심 컴포넌트

kube-system namespace에는 클러스터 운영에 필수적인 컴포넌트들이 배포되어 있습니다. 이 컴포넌트들을 개별적으로 삭제하거나 수정하면 심각한 장애가 발생할 수 있습니다.

EKS 핵심 Add-on

EKS 스토리지 컴포넌트

네트워킹 및 로드밸런싱 컴포넌트

EKS Add-on으로 관리되는 컴포넌트(CoreDNS, kube-proxy, VPC CNI, EBS CSI Driver)는 AWS 콘솔이나 CLI에서 Add-on을 재설치하여 복구할 수 있습니다.

# EKS Add-on 상태 확인
aws eks list-addons --cluster-name <cluster-name>

# Add-on 재설치 예시 (CoreDNS)
aws eks create-addon \
--cluster-name <cluster-name> \
--addon-name coredns \
--resolve-conflicts OVERWRITE
주의

위 복구 방법은 kube-system namespace가 존재하고 kubectl 접근이 가능한 경우에만 사용할 수 있습니다. namespace 자체가 삭제된 경우에는 AWS Support가 필요합니다.

4.3 Cluster-Scoped 리소스

Namespace에 속하지 않는 Cluster-Scoped 리소스들도 삭제나 수정 시 클러스터 전체에 영향을 줄 수 있습니다.

RBAC 관련 리소스

특히 위험한 ClusterRole/ClusterRoleBinding
  • system:node / system:node binding: 삭제 시 모든 노드가 API Server와 통신 불가
  • system:kube-controller-manager: 삭제 시 컨트롤러 매니저 동작 중단
  • system:kube-scheduler: 삭제 시 Pod 스케줄링 중단

CRD (Custom Resource Definition)

CRD 삭제 주의

CRD를 삭제하면 해당 CRD로 생성된 모든 Custom Resource가 cascading 삭제됩니다. 예를 들어, Cert-Manager의 Certificate CRD를 삭제하면 클러스터의 모든 Certificate 리소스가 삭제됩니다.

스토리지 관련 리소스

노드 및 네트워크 관련 리소스

EKS 특화 리소스

Best Practice

Cluster-Scoped 리소스를 수정하거나 삭제하기 전에 항상 백업을 생성하세요.

# ClusterRole 백업 예시
kubectl get clusterrole <role-name> -o yaml > clusterrole-backup.yaml

# 모든 ClusterRole 백업
kubectl get clusterroles -o yaml > all-clusterroles-backup.yaml

# CRD 백업 (CR 포함하지 않음)
kubectl get crd <crd-name> -o yaml > crd-backup.yaml

5. 재발 방지 방향성

5.1 Admission Controller를 통한 리소스 보호

Kubernetes Admission Controller를 활용하면 Critical 리소스의 삭제를 사전에 차단할 수 있습니다. 여기서는 Kyverno를 사용한 예시를 소개합니다.

Kyverno를 이용한 Critical Namespace 삭제 방지

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: protect-critical-namespaces
spec:
validationFailureAction: Enforce
background: false
rules:
- name: block-critical-namespace-deletion
match:
any:
- resources:
kinds:
- Namespace
names:
- default
- kube-system
- kube-public
- kube-node-lease
exclude:
any:
- clusterRoles:
- cluster-admin
validate:
message: "Critical namespace '{{request.object.metadata.name}}' 삭제가 차단되었습니다."
deny:
conditions:
all:
- key: "{{request.operation}}"
operator: Equals
value: DELETE

위 정책을 적용하면 cluster-admin 역할이 아닌 사용자가 Critical Namespace를 삭제하려 할 때 요청이 거부됩니다.

다른 Admission Controller 옵션

Kyverno 외에도 다양한 Admission Controller를 사용할 수 있습니다.

권장

팀의 기술 스택과 정책 복잡도에 따라 선택하세요. 간단한 리소스 보호 정책이라면 Kyverno가 빠르게 적용할 수 있습니다.

5.2 GitOps 및 KRMOps 기반 운영

GitOps와 KRMOps(Kubernetes Resource Model Operations) 기반 운영 방식을 도입하면 클러스터 리소스를 선언적으로 관리하고, 의도치 않은 변경으로부터 빠르게 복구할 수 있습니다.

EKS Auto Mode의 ArgoCD Capability

EKS Auto Mode는 ArgoCD를 기본 제공하여 GitOps 기반 운영을 쉽게 시작할 수 있습니다.

# ArgoCD Application 예시 - Critical 리소스 관리
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cluster-critical-resources
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/your-org/k8s-manifests.git
targetRevision: main
path: cluster-critical
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: false # Critical 리소스 자동 삭제 방지
selfHeal: true # Drift 발생 시 자동 복구
syncOptions:
- CreateNamespace=false

GitOps의 재발 방지 효과:

Critical Namespace와 리소스는 별도의 ArgoCD Application으로 분리하고, prune: false와 selfHeal: true를 설정하여 보호하세요.

ACK와 KRO를 활용한 KRMOps 전략

**ACK (AWS Controllers for Kubernetes)**와 **KRO (Kube Resource Orchestrator)**를 활용하면 AWS 인프라까지 Kubernetes Resource Model로 관리할 수 있습니다.

ACK를 통한 AWS 리소스 관리:

# ACK를 사용한 S3 버킷 선언적 관리 예시
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
name: my-app-bucket
namespace: default
spec:
name: my-app-bucket-12345
tagging:
tagSet:
- key: Environment
value: Production

KRO를 통한 복합 리소스 오케스트레이션:

# KRO ResourceGroup 예시 - 애플리케이션 스택 정의
apiVersion: kro.run/v1alpha1
kind: ResourceGroup
metadata:
name: web-application
spec:
schema:
apiVersion: v1alpha1
kind: WebApplication
spec:
name: string
replicas: integer | default=2
resources:
- id: deployment
template:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ${schema.spec.name}
spec:
replicas: ${schema.spec.replicas}
# ... 생략
- id: service
template:
apiVersion: v1
kind: Service
# ... 생략

KRMOps의 장점:

권장

ACK와 KRO를 함께 사용하면 EKS 클러스터뿐만 아니라 연관된 AWS 리소스(VPC, IAM, RDS 등)까지 Kubernetes 방식으로 통합 관리할 수 있습니다.

참고 자료:

  • AWS Controllers for Kubernetes (ACK)
  • Kube Resource Orchestrator (KRO)
  • EKS Auto Mode 문서

5.3 EKS Access Entry 기반 접근 통제

EKS Access Entry는 aws-auth ConfigMap의 한계를 극복하고 더 안전한 클러스터 접근 관리를 제공합니다.

aws-auth ConfigMap의 문제점

기존 aws-auth ConfigMap 방식은 다음과 같은 위험이 있습니다:

주의

aws-auth ConfigMap이 삭제되거나 손상되면 IAM 기반 인증이 모두 실패하여 클러스터에 접근할 수 없게 됩니다. 이 경우에도 AWS Support를 통해 복구해야 합니다.

EKS Access Entry로 전환

EKS Access Entry는 AWS API를 통해 클러스터 접근을 관리하므로 aws-auth ConfigMap의 위험을 제거합니다.

Access Entry 생성 예시:

# 관리자 Access Entry 생성
aws eks create-access-entry \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::XXXXXXXXXXXX:role/EKSAdminRole \
--type STANDARD

# 클러스터 관리자 권한 연결
aws eks associate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::XXXXXXXXXXXX:role/EKSAdminRole \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy \
--access-scope type=cluster

Namespace 레벨 접근 통제:

# 특정 namespace에만 접근 가능한 개발자 권한 설정
aws eks create-access-entry \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::XXXXXXXXXXXX:role/DevTeamRole \
--type STANDARD

aws eks associate-access-policy \
--cluster-name my-cluster \
--principal-arn arn:aws:iam::XXXXXXXXXXXX:role/DevTeamRole \
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonEKSEditPolicy \
--access-scope type=namespace,namespaces=dev,staging

EKS Access Entry의 장점:

사전 정의된 Access Policy:

권장 사항
  1. 신규 클러스터: 처음부터 EKS Access Entry만 사용하세요 (-bootstrap-cluster-creator-admin-permissions 옵션 활용)
  2. 기존 클러스터: Access Entry로 점진적 마이그레이션 후 aws-auth ConfigMap 의존성 제거
  3. 최소 권한 원칙: 클러스터 전체 권한 대신 namespace 스코프 권한 사용
  4. 긴급 복구 계정: 별도의 IAM Role에 클러스터 관리자 권한을 Access Entry로 설정해두어 lockout 상황 대비

마이그레이션 체크리스트:

참고 자료:

  • EKS Cluster Access Management
  • Migrating from aws-auth ConfigMap

6. 요약

6.1 핵심 내용 요약

핵심 메시지

default, kube-system namespace는 삭제 시 kubectl 접근 자체가 불가능해지므로 수동 복구가 불가능합니다. 반드시 AWS Support를 통해서만 복구할 수 있습니다.

6.2 참고 자료

EKS 공식 문서

  • Amazon EKS Best Practices Guide
  • EKS Cluster Access Management
  • Migrating from aws-auth ConfigMap to Access Entries
  • EKS Add-ons
  • EKS Auto Mode

Kubernetes 공식 문서

  • Kubernetes RBAC Authorization
  • Kubernetes Namespaces
  • Admission Controllers Reference

Admission Controller 도구

  • Kyverno - Kubernetes Native Policy Management
  • OPA Gatekeeper - Policy Controller for Kubernetes

GitOps 및 KRMOps 도구

  • ArgoCD - Declarative GitOps CD for Kubernetes
  • AWS Controllers for Kubernetes (ACK)
  • Kube Resource Orchestrator (KRO)