为您的 LangSmith 安装创建 Ingress (仅限 Kubernetes)
默认情况下,LangSmith 将为 langsmith-frontend
服务 provision 一个 LoadBalancer 服务。根据您的云提供商,这可能会导致为该服务分配一个公共 IP 地址。如果您想使用自定义域名或更好地控制到您的 LangSmith 安装的流量路由,您可以配置 Ingress。
要求
- 现有的 Kubernetes 集群
- Kubernetes 集群中已安装的 Ingress 控制器
参数
您可能需要为您的 LangSmith 安装提供某些参数以配置 Ingress。此外,我们将希望将 langsmith-frontend
服务转换为 ClusterIP 服务。
-
主机名 (可选): 您想用于 LangSmith 安装的主机名。例如
"langsmith.example.com"
。如果您将此项留空,Ingress 将为 LangSmith 安装提供所有流量。 -
子域名 (可选): 如果您想在子域名上提供 LangSmith,您可以在此处指定它。例如,添加
"langsmith"
将在"langsmith.example.com/langsmith"
提供应用程序。 -
IngressClassName (可选): 您想使用的 Ingress 类的名称。如果未设置,将使用默认的 Ingress 类。
-
注解 (可选): 要添加到 Ingress 的其他注解。某些提供商(如 AWS)可能会使用注解来控制 TLS 终止等。
例如,您可以使用 AWS ALB Ingress Controller 添加以下注解,以将 ACM 证书附加到 Ingress
annotations:
alb.ingress.kubernetes.io/certificate-arn: "<your-certificate-arn>" -
标签 (可选): 要添加到 Ingress 的其他标签。
-
TLS (可选): 如果您想通过 HTTPS 提供 LangSmith,您可以在此处添加 TLS 配置(许多 Ingress 控制器可能有其他控制 TLS 的方法,因此通常不需要此项)。这应该是一个 TLS 配置数组。每个 TLS 配置应具有以下字段
- hosts: 证书应有效的主机数组。例如 ["langsmith.example.com"]
- secretName: 包含证书和私钥的 Kubernetes Secret 的名称。此 Secret 应具有以下键
- tls.crt: 证书
- tls.key: 私钥
- 您可以在此处阅读有关创建 TLS Secret 的更多信息。
配置
有了这些参数,您可以配置您的 LangSmith 实例以使用 Ingress。您可以通过修改 LangSmith Helm Chart 安装的 config.yaml
文件来完成此操作。
- Helm
ingress:
enabled: true
hostname: "" # Main domain for LangSmith
subdomain: "" # If you want to serve langsmith on a subdomain
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 安装。如果一切配置正确,您的 LangSmith 实例现在应该可以通过 Ingress 访问。您可以运行以下命令来检查 Ingress 的状态
kubectl get ingress
您应该在输出中看到类似这样的内容
NAME CLASS HOSTS ADDRESS PORTS AGE
langsmith-ingress nginx <host> 35.227.243.203 80, 443 95d
如果您没有自动 DNS 设置,您需要手动将 IP 地址添加到您的 DNS 提供商。