Ich habe ein Modell zur Vorhersage von MNIST- Dataset-Werten, aber während der Konfiguration von my ingress.yaml
und ich habe den Host angegeben, auf den ich mit meinem Befehl zugreifen kann curl
, wird mir eine Fehlermeldung angezeigt
0curl: (6) Could not resolve host: mnist.testing
Und ich habe überprüft, ob mein Pod läuft. Hier ist meine Ingress-Datei:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mnist-classifier
namespace: my-model
annotations:
certmanager.k8s.io/acme-challenge-type: dns01
certmanager.k8s.io/acme-dns01-provider: clouddns
certmanager.k8s.io/cluster-issuer: letsencrypt-prod-dns
kubernetes.io/ingress.allow-http: "true"
kubernetes.io/ingress.class: "nginx"
kubernetes.io/tls-acme: "true"
spec:
rules:
- host: mnist.testing
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: tfserving-tfserving
port:
number: 8000
tls:
- hosts:
- '*.testing'
secretName: dns01-tls
Ich stelle mein Modell mit Seldon Core bereit, und dies ist meine Deployment.yaml:
apiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
name: tfserving
namespace: my-model
spec:
name: ala-deployment
predictors:
- graph:
children: []
implementation: TENSORFLOW_SERVER
modelUri: gs://seldon-aladin/mnist
serviceAccountName: user-gcp-ala
name: mnist-model
name: toto
replicas: 1
und dies ist mein Python-Code für die Vorhersage aus der URL:
mnist = tf.keras.datasets.mnist
(x_train, y_train),(x_test, y_test) = mnist.load_data()
to_predict = tf.reshape(x_test[3], [1, 784])
payload = {"data":{"tensor":{"shape": [1,784], "values": to_predict}}}
!curl -X POST http://mnist.testing/predict -d payload -H "Content-Type: application/json"
Ps: Ich bin ein Anfänger in Kubernetes und stecke seit einer Woche fest. Und ich folge diesem Tutorial
Das Ergebnis meines curl
Befehls, wenn ich hinzufüge--http0.9 -v --trace-ascii -
== Info: Trying 127.0.0.1:9000...
== Info: Connected to mnist.plz (127.0.0.1) port 9000 (#0)
=> Send header, 137 bytes (0x89)
0000: POST /predict HTTP/1.1
0018: Host: mnist.plz:9000
002e: User-Agent: curl/7.79.1
0047: Accept: */*
0054: Content-Type: application/json
0074: Content-Length: 4
0087:
=> Send data, 4 bytes (0x4)
0000: data
<= Recv data, 10 bytes (0xa)
Output exceeds the size limit. Open the full output data in a text editor
Warning: --trace-ascii overrides an earlier trace/verbose option
Note: Unnecessary use of -X or --request, POST is already inferred.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 14 0 10 100 4 8 3 0:00:01 0:00:01 --:--:-- 11
100 14 0 10 100 4 4 1 0:00:04 0:00:02 0:00:02 6
100 14 0 10 100 4 3 1 0:00:04 0:00:03 0:00:01 4
Lösung des Problems
Möglicherweise müssen Sie das numpy-Array mit konvertieren tolist
. Können Sie zur Bestätigung ausgeben, was Sie per curl senden?
Keine Kommentare:
Kommentar veröffentlichen