k8s 클러스터 직접 구성해보기_9

duckiee·2022년 11월 29일
0

k8s 클러스터 구성

목록 보기
9/11
post-thumbnail

이번 포스트는 워커 노드간에 네트워크 라우팅 작업을 진행합니다.

이전 시리즈와 같이, 작업에 사용되는 명령어는 아래 깃허브에서 확인 가능합니다.

URL : https://github.com/go4real/kubernetes-the-hard-way-aws/blob/master/docs/11-pod-network-routes.md

현재 EC2를 통해 구성된 워커노드 서버의 네트워크 구성은 아래와 같습니다.

각 EC2마다 하나의 노드이며, 각 노드는 pod와 브릿지로 연결되어 있습니다.
라우팅 작업을 완료하면 라우트 테이블을 경유하여 eth0에 표기된 사설 IP로 접속 및 통신 가능합니다.
ex : worker-2 노드 내부 pod 에서 worker-0 노드 내부 pod로 통신

  1. The Routing Table and routes : kubernetes 라우팅 테이블에 각 노드의 CIDR 라우팅
ROUTE_TABLE_ID=$(aws ec2 describe-route-tables --output text --filters 'Name=tag:Name,Values=kubernetes' --query 'RouteTables[].Associations[].RouteTableId')

for instance in worker-0 worker-1 worker-2; do
  instance_id_ip="$(aws ec2 describe-instances \
    --filters "Name=tag:Name,Values=${instance}" \
    --output text --query 'Reservations[].Instances[].[InstanceId,PrivateIpAddress]')"
  instance_id="$(echo "${instance_id_ip}" | cut -f1)"
  instance_ip="$(echo "${instance_id_ip}" | cut -f2)"
  pod_cidr="$(aws ec2 describe-instance-attribute \
    --instance-id "${instance_id}" \
    --attribute userData \
    --output text --query 'UserData.Value' \
    | base64 --decode | tr "|" "\n" | grep "^pod-cidr" | cut -d'=' -f2)"
  echo "${instance_ip} ${pod_cidr}"

  aws ec2 create-route \
    --route-table-id "${ROUTE_TABLE_ID}" \
    --destination-cidr-block "${pod_cidr}" \
    --instance-id "${instance_id}"
done

결과 화면

AWS 콘솔에서도 해당 라우팅 정책이 적용된 것으로 확인할 수 있습니다.

profile
DevOps로 진화하기

0개의 댓글