问题描述
我正在尝试Seldon Core示例。
这是SeldonExampleDeployment.yaml。
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
Metadata:
name: seldon-model
spec:
name: test-deployment
predictors:
- componentSpecs:
- spec:
containers:
- image: seldonio/mock_classifier_rest:1.3
name: classifier
command:
- --kubelet-insecure-tls
- --insecure-skip-tls-verify
graph:
children: []
endpoint:
type: REST
name: classifier
type: MODEL
name: example
replicas: 1
$ kubectl apply -n seldon -f SeldonExampleDeployment.yaml
Error from server (InternalError): error when creating "SeldonExampleDeployment.yaml":
Internal error occurred: Failed calling webhook "v1.vseldondeployment.kb.io":
Post https://seldon-webhook-service.kubeflow.svc:443/validate-machinelearning-seldon-io-v1-seldondeployment?timeout=30s:
x509: certificate signed by unkNown authority
- 我使用EKS
- 我刚刚打开了VPC中的所有流量(入站和出站)
我不知道为什么会发生此错误。 请帮助我...
解决方法
旧情况,但至少可以帮助其他Google员工...
为避免该Webhook部署失败,
- 首先创建SeldonDeployment
- 然后在名称空间上启用干扰服务,
- 最后添加网关
# Create namespace and add a mock classifier REST service
MY_NS=a-namespace
kubectl create namespace $MY_NS
cat <<EOF | kubectl create -n $MY_NS -f -
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
name: seldon-model
spec:
name: test-deployment
predictors:
- componentSpecs:
- spec:
containers:
- image: seldonio/mock_classifier_rest:1.3
name: classifier
graph:
children: []
endpoint:
type: REST
name: classifier
type: MODEL
name: example
replicas: 1
EOF
# Enable interferenceservice namespace and add gateway
kubectl label namespace $MY_NS serving.kubeflow.org/inferenceservice=enabled
cat <<EOF | kubectl create -n $MY_NS -f -
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: kubeflow-gateway
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- '*'
port:
name: http
number: 80
protocol: HTTP
EOF
# Test REST service
curl -s -d '{"data": {"ndarray":[[1.0,2.0,5.0]]}}' -X POST http://localhost:8004/seldon/$MY_NS/seldon-model/api/v1.0/predictions -H "Content-Type: application/json"