기본적으로 LangSmith는 langsmith-frontend를 위한 LoadBalancer service를 프로비저닝합니다. 클라우드 제공업체에 따라 이는 service에 공개 IP 주소가 할당될 수 있습니다. 사용자 정의 도메인을 사용하거나 LangSmith 설치로의 트래픽 라우팅을 더 세밀하게 제어하려면 Ingress, Gateway API 또는 Istio Gateway를 구성할 수 있습니다.

Requirements

  • 기존 Kubernetes 클러스터
  • Kubernetes 클러스터에 다음 중 하나가 설치되어 있어야 합니다:
    • Ingress Controller (표준 Ingress용)
    • Gateway API CRD 및 Gateway 리소스 (Gateway API용)
    • Istio (Istio Gateway용)

Parameters

Ingress를 구성하기 위해 LangSmith 설치에 특정 parameter를 제공해야 할 수 있습니다. 또한 langsmith-frontend service를 ClusterIP service로 변환해야 합니다.
  • Hostname (선택사항): LangSmith 설치에 사용할 hostname입니다. 예: "langsmith.example.com". 이 값을 비워두면 ingress가 LangSmith 설치로의 모든 트래픽을 처리합니다.
  • BasePath (선택사항): LangSmith를 URL basePath 아래에서 제공하려면 여기에 지정할 수 있습니다. 예를 들어 "langsmith"를 추가하면 애플리케이션이 "example.hostname.com/langsmith"에서 제공됩니다. 이는 UI 경로와 API endpoint에 모두 적용됩니다.
  • IngressClassName (선택사항): 사용할 Ingress class의 이름입니다. 설정하지 않으면 기본 Ingress class가 사용됩니다.
  • Annotations (선택사항): Ingress에 추가할 추가 annotation입니다. AWS와 같은 특정 제공업체는 annotation을 사용하여 TLS 종료와 같은 것을 제어할 수 있습니다. 예를 들어, AWS ALB Ingress Controller를 사용하여 Ingress에 ACM 인증서를 연결하려면 다음 annotation을 추가할 수 있습니다:
    annotations:
      alb.ingress.kubernetes.io/certificate-arn: "<your-certificate-arn>"
    
  • Labels (선택사항): Ingress에 추가할 추가 label입니다.
  • TLS (선택사항): HTTPS를 통해 LangSmith를 제공하려면 여기에 TLS 구성을 추가할 수 있습니다(많은 Ingress controller가 TLS를 제어하는 다른 방법을 가지고 있을 수 있으므로 이는 종종 필요하지 않습니다). 이는 TLS 구성의 배열이어야 합니다. 각 TLS 구성에는 다음 필드가 있어야 합니다:
    • hosts: 인증서가 유효해야 하는 host의 배열입니다. 예: [“langsmith.example.com”]
    • secretName: 인증서와 private key를 포함하는 Kubernetes secret의 이름입니다. 이 secret에는 다음 key가 있어야 합니다:
      • tls.crt: 인증서
      • tls.key: private key
    • TLS secret 생성에 대한 자세한 내용은 여기에서 확인할 수 있습니다.

Configuration

LangSmith 인스턴스를 세 가지 라우팅 옵션 중 하나를 사용하도록 구성할 수 있습니다: 표준 Ingress, Gateway API 또는 Istio Gateway. 인프라에 가장 적합한 옵션을 선택하세요.

Option 1: Standard Ingress

이러한 parameter를 준비했다면 LangSmith 인스턴스가 Ingress를 사용하도록 구성할 수 있습니다. LangSmith Helm Chart 설치를 위한 config.yaml 파일을 수정하여 이를 수행할 수 있습니다.
config:
  hostname: "" # Main domain for LangSmith
  basePath: "" # If you want to serve langsmith under a URL base path (e.g., /langsmith)
ingress:
  enabled: true
  hostname: "" # Deprecated: Use config.hostname instead after v0.12.0
  subdomain: "" # Deprecated: Use config.hostname instead after v0.12.0
  ingressClassName: "" # If not set, the default ingress class will be used
  annotations: {} # Add annotations here if needed
  labels: {} # Add labels here if needed
  tls: [] # Add TLS configuration here if needed
frontend:
  service:
    type: ClusterIP
구성이 완료되면 LangSmith 설치를 업데이트해야 합니다. 모든 것이 올바르게 구성되었다면 이제 Ingress를 통해 LangSmith 인스턴스에 액세스할 수 있어야 합니다. 다음을 실행하여 Ingress의 상태를 확인할 수 있습니다:
kubectl get ingress
출력에서 다음과 같은 내용을 볼 수 있어야 합니다:
NAME                         CLASS   HOSTS    ADDRESS          PORTS     AGE
langsmith-ingress            nginx   <host>   35.227.243.203   80, 443   95d
자동화된 DNS 설정이 없는 경우 DNS 제공업체에 IP 주소를 수동으로 추가해야 합니다.

Option 2: Gateway API

Gateway API 지원은 LangSmith v0.12.0부터 사용할 수 있습니다
클러스터가 Kubernetes Gateway API를 사용하는 경우 LangSmith가 HTTPRoute 리소스를 프로비저닝하도록 구성할 수 있습니다. 이렇게 하면 LangSmith용 HTTPRoute와 각 agent deployment용 HTTPRoute가 생성됩니다.

Parameters

  • name (필수): 참조할 Gateway 리소스의 이름
  • namespace (필수): Gateway 리소스가 위치한 namespace
  • hostname (선택사항): LangSmith 설치에 사용할 hostname입니다. 예: "langsmith.example.com"
  • basePath (선택사항): LangSmith를 base path 아래에서 제공하려면 여기에 지정할 수 있습니다. 예: “example.com/langsmith”
  • sectionName (선택사항): 사용할 Gateway의 특정 listener section 이름
  • annotations (선택사항): HTTPRoute 리소스에 추가할 추가 annotation
  • labels (선택사항): HTTPRoute 리소스에 추가할 추가 label

Configuration

config:
  hostname: "" # Main domain for LangSmith
  basePath: "" # If you want to serve langsmith under a base path. E.g "example.com/langsmith"
gateway:
  enabled: true
  name: "my-gateway" # Name of your Gateway resource
  namespace: "gateway-system" # Namespace of your Gateway resource
  sectionName: "" # Optional: specific listener section name
  annotations: {} # Add annotations here if needed
  labels: {} # Add labels here if needed
frontend:
  service:
    type: ClusterIP
구성이 완료되면 HTTPRoute의 상태를 확인할 수 있습니다:
kubectl get httproute

Option 3: Istio Gateway

Istio Gateway 지원은 LangSmith v0.12.0부터 사용할 수 있습니다
클러스터가 Istio를 사용하는 경우 LangSmith가 VirtualService 리소스를 프로비저닝하도록 구성할 수 있습니다. 이렇게 하면 LangSmith용 VirtualService와 각 agent deployment용 VirtualService가 생성됩니다.

Parameters

  • name (선택사항): 참조할 Istio Gateway 리소스의 이름입니다. 기본값은 "istio-gateway"입니다
  • namespace (선택사항): Istio Gateway 리소스가 위치한 namespace입니다. 기본값은 "istio-system"입니다
  • hostname (선택사항): LangSmith 설치에 사용할 hostname입니다. 예: "langsmith.example.com"
  • basePath (선택사항): LangSmith를 base path 아래에서 제공하려면 여기에 지정할 수 있습니다. 예: “example.com/langsmith”
  • annotations (선택사항): VirtualService 리소스에 추가할 추가 annotation
  • labels (선택사항): VirtualService 리소스에 추가할 추가 label

Configuration

config:
  hostname: "" # Main domain for LangSmith
  basePath: "" # If you want to serve langsmith on a separate basePath. E.g "example.com/langsmith"
istioGateway:
  enabled: true
  name: "istio-gateway" # Name of your Istio Gateway resource
  namespace: "istio-system" # Namespace of your Istio Gateway resource
  annotations: {} # Add annotations here if needed
  labels: {} # Add labels here if needed
frontend:
  service:
    type: ClusterIP
구성이 완료되면 VirtualService의 상태를 확인할 수 있습니다:
kubectl get virtualservice

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I