Istio WorkloadGroup

개요

워크로드 그룹은 이스티오 워크로드엔트리를 통합 관리할 수 있도록 그룹화시키는 리소스로, 디플로이먼트와 같이 파드의 각종 설정 정보를 추상화시킨 놈이라 보면 된다.

각종 설정 정보만 여기에 명시해서 넣어두면 직접 워크로드 엔트리 리소스를 만들지 않아도 된다!
이후에 메시 내에 워크로드가 들어오게 되면 해당 워크로드의 신원 정보 등이 이 그룹에 매칭될 때 자동으로 워크로드 엔트리 리소스가 생성된다.

기능

워크로드 자동 등록

워크로드 그룹 리소스의 핵심은 워크로드 엔트리 자동 등록이다.

처음 가상 머신이 메시에 등록될 때, istiod는 관련 정보를 검증하고 문제가 없다면 들어온 정보를 기반으로 알아서 워크로드 엔트리를 만든다.

헬스체크

워크로드 그룹을 통해 가상 머신의 헬스 상태를 보고하도록 설정할 수 있다.
물론 이스티오에서의 헬스 체크는 트래픽을 보내는 클라 측의 이상치 탐지도 있긴 하다.
하지만 클라의 헬스 체크는 언젠가 복구될 것을 전제하며 잠시 해당 엔드포인트를 제외시키는 방식으로만 동작한다.
그런데 정말 문제가 생긴 케이스라면 아예 서비스 레지스트리에서 엔드포인트가 제거되는 것이 바람직하다.
클러스터 내의 파드야 이게 api 서버와 통신해서 편하게 확인되지만 가상머신은 그렇지 않기 때문에 여기에 헬스체크 설정을 넣을 수 있는 것이다.

설정을 넣으면 실제 헬스체크는 가상 머신에 배치된 프록시가 수행한다.
그리고 해당 정보를 istiod에게 주기적으로 보고하며, istiod는 이 정보를 워크로드 엔트리 리소스에 업데이트한다.
이 헬스체크는 레디네스 프로브와 동일하며 문제가 있을 시에는 istiod가 해당 엔드포인트를 레지스트리에서 제거해버린다.

양식 작성법

apiVersion: networking.istio.io/v1
kind: WorkloadGroup
metadata:
  name: reviews
  namespace: bookinfo
spec:
  metadata:
    labels:
      app.kubernetes.io/name: reviews
      app.kubernetes.io/version: "1.3.4"
  template:
    ports:
      grpc: 3550
      http: 8080
    serviceAccount: default
  probe:
    initialDelaySeconds: 5
    timeoutSeconds: 3
    periodSeconds: 4
    successThreshold: 3
    failureThreshold: 3
    httpGet:
     path: /foo/bar
     host: 127.0.0.1
     port: 3100
     scheme: HTTPS
     httpHeaders:
     - name: Lit-Header
       value: Im-The-Best

template 필드에 이스티오 워크로드엔트리 양식을 그대로 넣어주면 된다.
주의점으로 labelmetatdata쪽에 설정해서 넣어야 한다!
또한 address 필드 역시 넣으면 안 되는데, 워크로드가 메시에 들어올 때 해당 필드를 자동으로 세팅하기 때문이다.

probe 필드는 레디네스 프로브 작성하듯 하면 된다.

관련 문서

EXPLAIN - 파생 문서

이름1related생성 일자
이스티오 가상머신 통합이스티오 확장성2025-06-01 13:32

기타 문서

Z0-연관 knowledge, Z1-트러블슈팅 Z2-디자인,설계, Z3-임시, Z5-프로젝트,아카이브, Z8,9-미분류,미완
이름1코드타입생성 일자
8W - 가상머신 통합하기Z8published2025-06-01 12:11

참고