Kubernetes/Infra작업
[kubernetes] 외부 IP 주소를 노출하여 클러스터의 애플리케이션에 접속하기
기록하는 백앤드개발자
2022. 8. 1. 19:32
반응형
ㅁ 개요
ㅇ AWS 환경에서 쿠버네티스의 튜터리얼 실습과정을 정리
ㅇ Hello World 애플리케이션을 다섯 개의 인스턴스 실행
ㅇ 외부 IP 주소를 노출하는 서비스를 생성
ㅇ 실행 중인 애플리케이션에 접근하기 위해 서비스 오브젝트를 사용
ㅇ Network Load Balancer를 생성하여 도메인에 연결
ㅁ 클러스터에서 Hello World 애플리케이션을 실행
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
name: hello-world
spec:
replicas: 5
selector:
matchLabels:
app.kubernetes.io/name: load-balancer-example
template:
metadata:
labels:
app.kubernetes.io/name: load-balancer-example
spec:
containers:
- image: gcr.io/google-samples/node-hello:1.0
name: hello-world
ports:
- containerPort: 8080
ㅇ service/load-balancer-example.yaml 을 생성하여 실행 할 수 있고, 아래의 명령으로도 실행할 수 있다.
kubectl apply -f https://k8s.io/examples/service/load-balancer-example.yaml
ㅁ 디플로이먼트에 대한 정보를 확인
# deployment 확인
kubectl get deployments hello-world
# 디플로이 상세 확인
kubectl describe deployments hello-world
ㅁ 레플리카셋 오브젝트에 대한 정보를 확인
kubectl get replicasets
kubectl describe replicasets
ㅁ 디플로이먼트를 외부로 노출시키는 서비스 오브젝트를 생성
kubectl expose deployment hello-world --type=LoadBalancer --name=my-service
ㅁ 서비스에 대한 정보를 확인
kubectl get services my-service
ㅇ External IP가 생성되었다.
kubectl describe services my-service
ㅁ AWS 로드밸런스 확인
ㅇ 쿠버네티스에 서비스를 생성하면 로드밸런스에도 ad75a85d6bdc04d30952b74f89405bfc-1386427692 로 생성이 되었다.
ㅁ External IP 접속 확인
![]() |
ㅇ http:// e.ap-northeast-2.elb.amazonaws.com:8080/로 접속 확인하였다.
ㅁ 서브 도메인 세팅
![]() |
ㅇ 서브도메인으로 접속을 확인하였다.
ㅁ 테스트 환경 정리
[ec2-user@ip-172-31-43-214 ~]$ kubectl delete services my-service
service "my-service" deleted
[ec2-user@ip-172-31-43-214 ~]$ kubectl get service
serviceaccounts services
[ec2-user@ip-172-31-43-214 ~]$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 6h28m
ㅇ 로드 밸런서에서도 삭제가 되었다.
ㅁ 함께 보면 좋은 사이트
외부 IP 주소를 노출하여 클러스터의 애플리케이션에 접속하기
이 페이지에서는 외부 IP 주소를 노출하는 쿠버네티스 서비스 오브젝트를 생성하는 방법에 대해 설명한다. 시작하기 전에 kubectl을 설치한다. Google Kubernetes Engine 또는 Amazon Web Services와 같은 클라
kubernetes.io
반응형