Tools for IT/- Kubernetes

CKAD - Provide and troubleshoot access to applications via services

자굿 2024. 3. 19. 22:03

서비스

  • Service는 동일한 기능을 제공하는 Pod 그룹에 대한 안정적인 접근 방식을 제공한다.
  • Service는 클라이언트가 Pod 그룹을 네트워크에서 사용할 수 있도록 해준다.

서비스 타입

ClusterIP

  • Service에 내부 IP를 할당하여 클러스터 내부에서만 접근할 수 있게 한다.

NodePort

  • ClusterIP에 기반하며, 각 Node의 지정된 Port를 통해 외부에서 Service에 접근할 수 있게 한다.
  • Ports
    • port
    • targetPort
    • nodePort
  • NodePort 서비스 생성 YAML
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: MyApp
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30007

LoadBalancer:

  • LoadBalancer를 사용해 외부 IP를 Service에 할당한다.
  • LoadBalancer 서비스 생성 YAML
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app: MyApp
  ports:
    - port: 80
      targetPort: 80
      nodePort: 30007

ExternalName

  • 서비스를 특정 ExternalName을 DNS(example.com)에 매핑하여 Service에 접근할 수 있도록 한다.
  • ExternalName 서비스 생성 YAML
apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: prod
spec:
  type: ExternalName
  externalName: example.com

Troubleshoot 케이스

- 서비스가 동작하지 않을 때

  • Selector와 Pod 레이블의 매핑 확인
  • Service의 port와 targetPort 확인
  • kubectl get service 를 실행하여 서비스 실행여부 확인
  • kubectl describe service <service-name>을 실행하여 Servcie 내부 정보 확인

- NodePort나 LoadBalancer 접근 문제

  • 방화벽이나 보안 그룹 설정 확인
  • 지정한 port로 트래픽이 허용되는지 확인
  • LoadBalancer 구성 확인
반응형