•
워크로드가 돌아가는 컨테이너를 배치하는 물리(가상) 머신
•
control plane에 의해 관리
•
일반적인 운영환경에서는 multi node로 운영
•
각 노드는 kubelet / container-runtime / kube-proxy가 포함
# 노드 리스트 확인
kubectl get nodes
# 노드의 상세 정보 확인
kubectl get nodes -o wide
# yaml 형식으로 출력
kubectl get nodes <node명>-o yaml
# 노드의 상세 정보 확인
kubectl describe node <node명>
# 노드를 스케줄링 금지
kubectl cordon <node명>
# 노드 스케줄링 허용
kubectl uncordon <node명>
# 노드의 파드를 다른 노드로 이동 후 노드를 비운다
kubectl drain <node명>
# 노드를 다시 사용할 수 있게 한다
kubectl undrain <node명>
# 데몬셋을 무시하고 노드를 비운다
kubectl drain <node명> --ignore-daemonsets --delete-local-data
Shell
복사
•
NodeGroup Role Name Check
NODEGROUP_ROLE_NAME=$(aws eks describe-nodegroup --cluster-name $EKS_CLUSTER_NAME --nodegroup-name $EKS_NODE_GROUP_NAME --query "nodegroup.nodeRole" --output text | cut -d'/' -f2-)
Shell
복사
•
NodeGroup SG Check
EKS_NODE_GROUP_SG_ID=$(aws ec2 describe-instances --filter Name=tag:Name,Values=skills-app-node --query "Reservations[1].Instances[].SecurityGroups[].GroupId" --output text)
Shell
복사
EKS Node의 Pod Limit 해제하기 (Prefix Mode)
네트워크 인터페이스의 개별 IP 주소를 할당하는 대신 /28(16개의 IP 주소) IP 주소 prefix를 할당합니다.
참고
•
max-pod 개수를 확인
kubectl get node -o yaml | grep allocatable -F7
Shell
복사
•
현재 ENABLE_PREFIX_DELEGATION 값 확인
kubectl describe daemonset aws-node -n kube-system | grep -i ENABLE_PREFIX_DELEGATION
Shell
복사
kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
kubectl set env ds aws-node -n kube-system WARM_PREFIX_TARGET=100
kubectl set env ds aws-node -n kube-system WARM_IP_TARGET=150
kubectl set env ds aws-node -n kube-system MINIMUM_IP_TARGET=150
Shell
복사
kubectl rollout restart daemonset aws-node -n kube-system
Shell
복사
위 명령어 후 노드 그룹을 삭제하고 재생성해야 반영될 수 있음
•
노드의 남은 CPU와 메모리 확인
kubectl top nodes
Shell
복사
SSM
sudo yum install -y https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpm
Shell
복사
aws ec2 describe-instances --filters "Name=tag:eks:nodegroup-name,Values=skills-app-nodegroup" --query "Reservations[*].Instances[*].InstanceId" --output text
Shell
복사
aws ssm start-session --target <instance-id>
Shell
복사