服务器配置
默认情况下,可以使用提供的 Kubeflow Pipelines 部署清单,其目标是为大多数用例提供标准配置。同时,也为更高级的用法提供了自定义选项。
部署 Kubeflow Pipelines 服务器时,可以传递各种环境变量来自定义服务器的行为。
前端服务器
部署名为 ml-pipeline-ui
的前端服务器时,可以传递各种环境变量来自定义服务器在你命名空间中的行为。部分示例可见于 ml-pipeline-ui-deployment.yaml。
Artifact 存储端点允许列表
你可以配置 ALLOWED_ARTIFACT_DOMAIN_REGEX
来允许前端服务器从中获取 Artifact 的对象存储端点。如果前端服务器尝试获取的域与 ALLOWED_ARTIFACT_DOMAIN_REGEX
中定义的正则表达式不匹配,则会向用户返回请求域不被允许的错误。
独立 Kubeflow Pipelines 部署
默认情况下,ALLOWED_ARTIFACT_DOMAIN_REGEX
的值为 "^.*$"
。你可以为用户自定义此值,例如在 ml-pipeline-ui-deployment.yaml 中设置为 "^.*.yourdomain$"
。
完整 Kubeflow 部署
对于完整 Kubeflow 部署,每个命名空间对应一个同名项目。要为用户命名空间配置 ALLOWED_ARTIFACT_DOMAIN_REGEX
值,请在 ml-pipeline-ui-artifact
中添加一个条目,就像 sync.py 中关于 ALLOWED_ARTIFACT_DOMAIN_REGEX
环境变量的这个示例一样,该条目与独立 Kubeflow Pipelines 部署中的环境变量说明相同。
代理
自 KFP 2.5 起,你可以通过在 API Server 部署中设置以下任一环境变量(大写)来为后端配置服务器作用域的代理。所有变量都是可选的。
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
如果设置了 HTTP_PROXY
或 HTTPS_PROXY
但未设置 NO_PROXY
,NO_PROXY
将自动设置为 localhost,127.0.0.1,.svc.cluster.local,kubernetes.default.svc,metadata-grpc-service,0,1,2,3,4,5,6,7,8,9
。
API Server 部署设置了 HTTP_PROXY
、HTTPS_PROXY
和 NO_PROXY
的示例
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: ml-pipeline
application-crd-id: kubeflow-pipelines
name: ml-pipeline
namespace: kubeflow
spec:
selector:
matchLabels:
app: ml-pipeline
application-crd-id: kubeflow-pipelines
template:
metadata:
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
labels:
app: ml-pipeline
application-crd-id: kubeflow-pipelines
spec:
containers:
- env:
- name: HTTP_PROXY
value: http://squid.squid.svc.cluster.local:3128
- name: HTTPS_PROXY
value: http://squid.squid.svc.cluster.local:3128
- name: NO_PROXY
value: localhost,127.0.0.1,.svc.cluster.local,kubernetes.default.svc,metadata-grpc-service,0,1,2,3,4,5,6,7,8,9