05_EKS-LoadBalancer 연결
이번 시간에는 생성한 EKS 클러스터를 LoadBalancer에 연결해 보도록 하겠습니다.
1. manifest 파일 생성 및 적용
2. Object 확인
3. LoadBalancer 생성
4. 확인
5. Cluster 삭제
순으로 진행합니다.
1. manifest 파일 생성 및 적용
1.1. 작업디렉토리 생성 및 이동
# mkdir load
# cd load
1.2. namespace 생성
1.2.1. 노트패드로 notepad name.yml 네임스페이스 web생성
apiVersion: v1
kind: Namespace
metadata:
name: web
1.3. Deployment 생성
1.3.1. 노드패드로 dep.yml 이름의 Deployment 생성
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-dep
namespace: web
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
1.4. Service 생성
1.4.1. notepad로 ser.yml이라는 Service 생성
apiVersion: v1
kind: Service
metadata:
name: nginx-dep
namespace: web
spec:
ports:
- port: 80
name: http
protocol: TCP
targetPort: 80
selector:
app: nginx-dep
1.5. 파일 적용 및 Object 확인
# kubectl apply -f name.yml
# kubectl apply -f dep.yml
# kubectl apply -f ser.yml
# kubectl get all -n web
2. Object 확인
2.1. Pod 확인
2.1.1. 클러스터 -> sdkim_clu -> 리소스 -> 포드 선택
2.2. ReplicaSet 확인
2.2.1. 클러스터 -> sdkim_clu -> 리소스 -> ReplicasSet선택
2.3. Deployment 확인
2.3.1. 클러스터 -> sdkim_clu -> 리소스 -> 배포 선택
3. LoadBalancer 생성
3.1. Deployment를 LoadBalancer로 내보내기
# kubectl expose deployment nginx-dep --type=LoadBalancer --name=my-web -n web
3.2. Pod를 PortForwarding 하기
kubectl port-forward [pod이름] 80:80 -n web
3.3. 삭제 시에는 namespace web을 삭제하면 됩니다.
3.3. Cluster를 구성하는 EC2 확인
3.3.1. EC2 대쉬보드 -> 인스턴스
3.4. 보안 그룹 확인
3.4.1. EC2 대쉬보드 -> 보안그룹
3.4.2. 자동 생성된 EKS LoadBalancer의 보안그룹 확인
3.4.2.1. EC2 대쉬보드 -> 보안그룹 -> k8s-elb로 시작하는 보안그룹 클릭
3.4.2.2. 80Port Open 확인
4. 확인
4.1. LoadBalancer 확인
4.1.1. EC2 대쉬보드 -> 로드밸런싱 -> 로드밸런서 -> DNS 주소 확인
4.2. 웹사이트 접속
4.2.1. 복사한 LoadBalancer의 Name을 웹브라우저 주소창에 입력
5. Cluster 삭제
5.1. 클러스터 삭제시에는 반드시
5.1.1. 해당 클러스터 -> 컴퓨팅 -> 노드그룹 -> 해당 노드 그룹을 먼저 삭제해야 클러스터가 삭제 됩니다.
EKS에서 LoadBalancer까지 구현을 해보았으니
슬슬 마무리가 되가네요!
고생들 하셨습니다.
Have a nice day!