본문 바로가기

⭐ Kubernetes & EKS/서비스 (Service)

(5)
K8S에서 Service의 주요 역할 Kubernetes에서 Service는 여러 Pod 간의 네트워크 통신을 추상화하여 안정적인 네트워크 엔드포인트를 제공하는 역할을 한다. 이는 다음과 같은 의미를 가진다:추상화된 네트워크 엔드포인트: Service는 Pod의 IP 주소와 포트를 추상화하여 단일 엔드포인트(예: DNS 이름)를 제공한다. 이를 통해 클라이언트는 Pod의 실제 IP 주소를 알 필요 없이 Service의 엔드포인트를 통해 통신할 수 있다.로드 밸런싱: Service는 여러 Pod에 대한 로드 밸런싱을 수행한다. 클라이언트가 Service에 요청을 보내면, Service는 요청을 적절한 Pod로 분배한다. 이를 통해 트래픽이 고르게 분산되고, 특정 Pod에 과부하가 걸리는 것을 방지할 수 있다.Pod의 동적 생성 및 삭제 처리:..
포트별로 서비스 갯수 및 형태를 나누기 # 포트별로 서비스 갯수 및 형태를 나누는 작업에 대해 알아보자. - 일단 eks의 서비스를 조회하면 아래와 같이 PORT(S)에 할당 가능한 포트를 확인 할 수 있다. - 2개의 서비스를 맵핑 시킬수 있는데 하나는 80 포트를 활용하여 가능하고 또하나는 443포트를 활용하여 서비스가 가능하다. - 여기서 확인해야할 내용은 포트별로 다른 유형의 서비스가 할당이 가능한지 이다. - 예를들어 80은 로드밸런서로 44은 또다른 NLB 서비스의 리스너에 등록하여 서비스를 하는게 가능할까 이다. 결론은 가능하다이다. 이론적으로도 서로다른 서비스포트와 노드포트를 각각 가지고 있으므로, 서로다른 유형의 서비스 타입을 세팅해도 정상적으로 서비스가 가능하다. 1. 테스트진행 - 80은 LoadBalancer 타입으로 세..
service.yaml 파일에 healthcheck 설정 - AWS 로드밸런서 > 대상그룹 > 등록된 대상 > 상태 확인 - 설정하는 방법 1. service.yaml 파일에 healthcheck 어노테이션 설정 apiVersion: v1 kind: Service metadata: name: member-api-service namespace: default annotations: alb.ingress.kubernetes.io/healthcheck-path: "/member" spec: selector: app: member-api type: NodePort ports: - port: 80 protocol: TCP targetPort: 3000 2. 접근 확인 접근 url/member 로 접근이 가능하여 정상적인 페이지가 호출 되어야 한다. 한마디로, serv..
외부로 서비스하는 방법들과 노드포트 실습 # 외부로 서비스하는 방법들과 노드포트 NodePort: 노드의 자체 포트를 사용하여 포드로 리다이렉션 LoadBalancer: 외부 게이트웨이를 사용해 노드 포트로 리다이렉션 Ingress: 하나의 IP 주소를 통해 여러 서비스를 제공하는 특별한 메커니즘 # 노드포트 생성하기 port: 80 # 서비스의 포트 targetPort: 8080 # 포드의 포트 nodePort: 30001 # 최종적으로 서비스되는 포트 간단한 개념 : 노드 - svc - 포드 - vpc는 방화벽 개념이므로, 해당 node 포트를 허용해주어야 한다. # 노드포드 실습 # 이전 실습한 파일을 copy 하기 cp http-go-deploy.yaml http-go-np.yaml vim http-go-np.yaml - 모두 삭제하고 ..
서비스와 클러스터IP # 서비스와 클러스터IP 소개 - 로드밸런싱, 포드를 선택하는 역할 - port: 서비스를 할 포트 - targetPort: pod의 포트 - selector는 label과 관련되어 있고, 해당 selector를 기준으로 로드밸런싱 등 작업을 수행한다. - yaml 파일들중 ports 처럼 복수의 값을 부여하는 경우 - 을 기준으로 단을 구분한다. # 서비스 관련 실습은 GKE에서 실행 kubectl create deploy --image=gasbugs/http-go http-go --port=8080 --dry-run=client -o yaml > http-go-deploy.yaml vim http-go-deploy.yaml # 서비스 추가하기 쿠버네티스 공식사이트 검색 > service > servi..