ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CKAD - Provide and troubleshoot access to applications via services
    Tools for IT/- Kubernetes 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 구성 확인
    반응형

    댓글

Designed by Tistory.