/kind bug
What steps did you take and what happened:
I was trying to use KFServing for Model Prediction as described here.
MODEL_NAME=flowers-sample
INPUT_PATH=@./input.json
INGRESS_GATEWAY=istio-ingressgateway
CLUSTER_IP=$(kubectl -n istio-system get service $INGRESS_GATEWAY -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
SERVICE_HOSTNAME=$(kubectl get inferenceservice ${MODEL_NAME} -o jsonpath='{.status.url}' | cut -d "/" -f 3)
I realize that CLUSTER_IP & SERVICE_HOSTNAME are blank. On checking the JSON file, it can be figured out that the jsonpath specified for CLUSTER_IP has been modified to spec.clusterIP, whereas the SERVICE_HOSTNAME continues to remain blank leading to failure of the steps that follow.
What did you expect to happen:
The commands to execute successfully & output a model prediction.
Anything else you would like to add:
I tried to hardcode the SERVICE_HOSTNAME to flowers-sample.default.example.com but that led to the connection time out error.
Environment:
kubectl version): Client Version: 1.18 Server Version: 1.15/etc/os-release): Ubuntu 18.04Issue-Label Bot is automatically applying the labels:
| Label | Probability |
| ------------- | ------------- |
| area/inference | 0.74 |
Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
Issue-Label Bot is automatically applying the labels:
| Label | Probability |
| ------------- | ------------- |
| area/inference | 0.74 |
Please mark this comment with :thumbsup: or :thumbsdown: to give our bot feedback!
Links: app homepage, dashboard and code for this bot.
@Manvi07 Can you follow the debug guide to see if that can help you figure out the problem ?
Hi @yuzisun
Thanks for sharing the debug guide. I get the RevisionMissing error.
But on running the command kubectl get pod -l model=sklearn-iris, it says no resource found, whereas the pod exists and is running, as I can see here:
kubectl get pods
NAME READY STATUS RESTARTS AGE
flowers-sample-predictor-default-grlzq-deployment-6b788b85xnfxg 2/2 Running 0 5d5h
hello-1593600420-5vfhf 0/1 Completed 0 2m49s
hello-1593600480-t5w9c 0/1 Completed 0 109s
hello-1593600540-gpb9w 0/1 Completed 0 48s
nuclio-controller-768f665b5f-s4zjz 1/1 Running 0 6d2h
nuclio-dashboard-586564dcdb-92gsc 1/1 Running 0 6d2h
pytorch-cifar10-predictor-default-gt8v5-deployment-5b85f75qpngj 2/2 Running 0 6d
sklearn-iris-predictor-default-gqt6h-deployment-578d88798-gh4vt 2/2 Running 0 8d
How is that the label model=sklearn-iris is missing? :confused:
@Manvi07 I think you might be on older version of KFServing which does not have this label, but your pod looks good though.
can you paste the output of kubectl get revision $(kubectl get configuration sklearn-iris-predictor-default --output jsonpath="{.status.latestCreatedRevisionName}") -oyaml ?
@yuzisun here it is:
kubectl get revision $(kubectl get configuration sklearn-iris-predictor-default --output jsonpath="{.status.latestCreatedRevisionName}") -oyaml
apiVersion: serving.knative.dev/v1
kind: Revision
metadata:
annotations:
autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
autoscaling.knative.dev/target: "1"
internal.serving.kubeflow.org/storage-initializer-sourceuri: gs://kfserving-samples/models/sklearn/iris
queue.sidecar.serving.knative.dev/resourcePercentage: "0.2"
serving.knative.dev/creator: system:serviceaccount:kfserving-system:default
creationTimestamp: "2020-06-23T05:06:32Z"
generateName: sklearn-iris-predictor-default-
generation: 1
labels:
serving.knative.dev/configuration: sklearn-iris-predictor-default
serving.knative.dev/configurationGeneration: "1"
serving.knative.dev/service: sklearn-iris-predictor-default
serving.kubeflow.org/inferenceservice: sklearn-iris
name: sklearn-iris-predictor-default-gqt6h
namespace: default
ownerReferences:
- apiVersion: serving.knative.dev/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Configuration
name: sklearn-iris-predictor-default
uid: 388c1d42-c9d4-44dc-bc35-374cefdbe0ce
resourceVersion: "25490270"
selfLink: /apis/serving.knative.dev/v1/namespaces/default/revisions/sklearn-iris-predictor-default-gqt6h
uid: 1a541a44-5cff-4ac2-8eaa-d2c37ac6d49b
spec:
containerConcurrency: 0
containers:
- args:
- --model_name=sklearn-iris
- --model_dir=/mnt/models
- --http_port=8080
image: gcr.io/kfserving/sklearnserver:0.2.2
name: kfserving-container
readinessProbe:
successThreshold: 1
tcpSocket:
port: 0
resources:
limits:
cpu: "1"
memory: 2Gi
requests:
cpu: "1"
memory: 2Gi
timeoutSeconds: 60
status:
conditions:
- lastTransitionTime: "2020-06-23T05:06:32Z"
reason: Deploying
severity: Info
status: Unknown
type: Active
- lastTransitionTime: "2020-06-23T05:06:32Z"
reason: Deploying
status: Unknown
type: ContainerHealthy
- lastTransitionTime: "2020-06-23T05:06:32Z"
reason: Deploying
status: Unknown
type: Ready
- lastTransitionTime: "2020-06-23T05:06:32Z"
reason: Deploying
status: Unknown
type: ResourcesAvailable
imageDigest: gcr.io/kfserving/sklearnserver@sha256:6702dddff99de5b8945f35d913a423e406b6cd039a14cefdbd1886078d393ce5
logUrl: http://localhost:8001/api/v1/namespaces/knative-monitoring/services/kibana-logging/proxy/app/kibana#/discover?_a=(query:(match:(kubernetes.labels.knative-dev%2FrevisionUID:(query:'1a541a44-5cff-4ac2-8eaa-d2c37ac6d49b',type:phrase))))
observedGeneration: 1
@Manvi07 seems like hitting this issue https://github.com/knative/serving/issues/6265. Can you try redeploying the inference service?
@yuzisun I deleted the existing inference service and deployed it again, but it still says revision missing:
kubectl apply -f sklearn.yaml
inferenceservice.serving.kubeflow.org/sklearn-iris created
manvi@manvi-pc:~/K8_cluster/kfserving/docs/samples/sklearn$ kubectl get ksvc
NAME URL LATESTCREATED LATESTREADY READY REASON
flowers-sample-predictor-default http://flowers-sample-predictor-default.default.example.com flowers-sample-predictor-default-grlzq Unknown RevisionMissing
pytorch-cifar10-predictor-default http://pytorch-cifar10-predictor-default.default.example.com pytorch-cifar10-predictor-default-gt8v5 Unknown RevisionMissing
sklearn-iris-predictor-default http://sklearn-iris-predictor-default.default.example.com sklearn-iris-predictor-default-9fd7c Unknown RevisionMissing
style-sample-predictor-default http://style-sample-predictor-default.default.example.com style-sample-predictor-default-qrh8c False RevisionMissing
@Manvi07 can you share the output of kubectl get knative-internal according to the instruction of above knative issue?
@yuzisun I am new to Knative, and many terms discussed in the above issue are not known to me.
Here's the output, as asked:
kubectl get knative-internal
NAME DESIREDSCALE ACTUALSCALE READY REASON
podautoscaler.autoscaling.internal.knative.dev/flowers-sample-predictor-default-grlzq
podautoscaler.autoscaling.internal.knative.dev/pytorch-cifar10-predictor-default-gt8v5
podautoscaler.autoscaling.internal.knative.dev/sklearn-iris-predictor-default-9fd7c
podautoscaler.autoscaling.internal.knative.dev/style-sample-predictor-default-qrh8c
NAME AGE
image.caching.internal.knative.dev/flowers-sample-predictor-default-grlzq-cache 5d6h
image.caching.internal.knative.dev/pytorch-cifar10-predictor-default-gt8v5-cache 6d1h
image.caching.internal.knative.dev/sklearn-iris-predictor-default-9fd7c-cache 18m
image.caching.internal.knative.dev/style-sample-predictor-default-qrh8c-cache 5d6h
The latest output looks like the PodAutoscalers are never picked up.
Can you make sure that Knative's control plane is running correctly? The output of kubectl get pods -n knative-serving should do the trick there.
Also the full YAML output of the podautoscaler resources would be handy. kubectl get podautoscaler.autoscaling.internal.knative.dev -oyaml should give us what we need.
Hi @markusthoemmes
Yeah, I see the control plane running correctly
kubectl get pods -n knative-serving
NAME READY STATUS RESTARTS AGE
autoscaler-hpa-68cc87bfb9-rndz7 1/1 Running 0 21d
controller-95dc7f8bd-6xbqr 1/1 Running 0 21d
networking-istio-5b8c5c6cff-x64ch 1/1 Running 0 21d
webhook-67847fb4b5-z6rf2 1/1 Running 0 21d
Here's the output of podautoscaler:
kubectl get podautoscaler.autoscaling.internal.knative.dev -oyaml
apiVersion: v1
items:
- apiVersion: autoscaling.internal.knative.dev/v1alpha1
kind: PodAutoscaler
metadata:
annotations:
autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
autoscaling.knative.dev/metric: concurrency
autoscaling.knative.dev/target: "1"
internal.serving.kubeflow.org/storage-initializer-sourceuri: gs://kfserving-samples/models/tensorflow/flowers
queue.sidecar.serving.knative.dev/resourcePercentage: "0.2"
serving.knative.dev/creator: system:serviceaccount:kfserving-system:default
creationTimestamp: "2020-06-26T05:49:22Z"
generation: 2
labels:
app: flowers-sample-predictor-default-grlzq
serving.knative.dev/configuration: flowers-sample-predictor-default
serving.knative.dev/configurationGeneration: "1"
serving.knative.dev/revision: flowers-sample-predictor-default-grlzq
serving.knative.dev/revisionUID: 320acf72-5f85-45ed-a358-438ef2a65f8d
serving.knative.dev/service: flowers-sample-predictor-default
serving.kubeflow.org/inferenceservice: flowers-sample
name: flowers-sample-predictor-default-grlzq
namespace: default
ownerReferences:
- apiVersion: serving.knative.dev/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Revision
name: flowers-sample-predictor-default-grlzq
uid: 320acf72-5f85-45ed-a358-438ef2a65f8d
resourceVersion: "28781961"
selfLink: /apis/autoscaling.internal.knative.dev/v1alpha1/namespaces/default/podautoscalers/flowers-sample-predictor-default-grlzq
uid: 7b592c5d-214a-496f-891d-79e69cb8d735
spec:
protocolType: http1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: flowers-sample-predictor-default-grlzq-deployment
- apiVersion: autoscaling.internal.knative.dev/v1alpha1
kind: PodAutoscaler
metadata:
annotations:
autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
autoscaling.knative.dev/metric: concurrency
autoscaling.knative.dev/target: "1"
internal.serving.kubeflow.org/storage-initializer-sourceuri: gs://kfserving-samples/models/pytorch/cifar10/
queue.sidecar.serving.knative.dev/resourcePercentage: "0.2"
serving.knative.dev/creator: system:serviceaccount:kfserving-system:default
creationTimestamp: "2020-06-25T10:16:14Z"
generation: 2
labels:
app: pytorch-cifar10-predictor-default-gt8v5
serving.knative.dev/configuration: pytorch-cifar10-predictor-default
serving.knative.dev/configurationGeneration: "1"
serving.knative.dev/revision: pytorch-cifar10-predictor-default-gt8v5
serving.knative.dev/revisionUID: 61a654c3-da28-4996-bda7-b17d25f4db39
serving.knative.dev/service: pytorch-cifar10-predictor-default
serving.kubeflow.org/inferenceservice: pytorch-cifar10
name: pytorch-cifar10-predictor-default-gt8v5
namespace: default
ownerReferences:
- apiVersion: serving.knative.dev/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Revision
name: pytorch-cifar10-predictor-default-gt8v5
uid: 61a654c3-da28-4996-bda7-b17d25f4db39
resourceVersion: "27889148"
selfLink: /apis/autoscaling.internal.knative.dev/v1alpha1/namespaces/default/podautoscalers/pytorch-cifar10-predictor-default-gt8v5
uid: 762c2db7-aa20-47f3-9db2-0aa81d3de1ff
spec:
protocolType: http1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: pytorch-cifar10-predictor-default-gt8v5-deployment
- apiVersion: autoscaling.internal.knative.dev/v1alpha1
kind: PodAutoscaler
metadata:
annotations:
autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
autoscaling.knative.dev/metric: concurrency
autoscaling.knative.dev/target: "1"
internal.serving.kubeflow.org/storage-initializer-sourceuri: gs://kfserving-samples/models/sklearn/iris
queue.sidecar.serving.knative.dev/resourcePercentage: "0.2"
serving.knative.dev/creator: system:serviceaccount:kfserving-system:default
creationTimestamp: "2020-07-01T11:53:20Z"
generation: 2
labels:
app: sklearn-iris-predictor-default-9fd7c
serving.knative.dev/configuration: sklearn-iris-predictor-default
serving.knative.dev/configurationGeneration: "1"
serving.knative.dev/revision: sklearn-iris-predictor-default-9fd7c
serving.knative.dev/revisionUID: 5d14ce6d-740e-406b-a4fd-d4e908e1f0a0
serving.knative.dev/service: sklearn-iris-predictor-default
serving.kubeflow.org/inferenceservice: sklearn-iris
name: sklearn-iris-predictor-default-9fd7c
namespace: default
ownerReferences:
- apiVersion: serving.knative.dev/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Revision
name: sklearn-iris-predictor-default-9fd7c
uid: 5d14ce6d-740e-406b-a4fd-d4e908e1f0a0
resourceVersion: "34236585"
selfLink: /apis/autoscaling.internal.knative.dev/v1alpha1/namespaces/default/podautoscalers/sklearn-iris-predictor-default-9fd7c
uid: e87a1d53-fbfd-44b8-bbca-69fb6d80fce0
spec:
protocolType: http1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: sklearn-iris-predictor-default-9fd7c-deployment
- apiVersion: autoscaling.internal.knative.dev/v1alpha1
kind: PodAutoscaler
metadata:
annotations:
autoscaling.knative.dev/class: kpa.autoscaling.knative.dev
autoscaling.knative.dev/metric: concurrency
autoscaling.knative.dev/target: "1"
internal.serving.kubeflow.org/storage-initializer-sourceuri: https://kfserving.blob.core.windows.net/examples/onnx/style/model.onnx
queue.sidecar.serving.knative.dev/resourcePercentage: "0.2"
serving.knative.dev/creator: system:serviceaccount:kfserving-system:default
creationTimestamp: "2020-06-26T05:45:28Z"
generation: 3
labels:
app: style-sample-predictor-default-qrh8c
serving.knative.dev/configuration: style-sample-predictor-default
serving.knative.dev/configurationGeneration: "1"
serving.knative.dev/revision: style-sample-predictor-default-qrh8c
serving.knative.dev/revisionUID: 102e6c35-8797-4f2f-bb07-e11724542790
serving.knative.dev/service: style-sample-predictor-default
serving.kubeflow.org/inferenceservice: style-sample
name: style-sample-predictor-default-qrh8c
namespace: default
ownerReferences:
- apiVersion: serving.knative.dev/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Revision
name: style-sample-predictor-default-qrh8c
uid: 102e6c35-8797-4f2f-bb07-e11724542790
resourceVersion: "28780613"
selfLink: /apis/autoscaling.internal.knative.dev/v1alpha1/namespaces/default/podautoscalers/style-sample-predictor-default-qrh8c
uid: 6ca3c633-a25d-4994-a206-b9100040e357
spec:
protocolType: http1
reachability: Unreachable
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: style-sample-predictor-default-qrh8c-deployment
kind: List
metadata:
resourceVersion: ""
selfLink: ""
The control-plane is definitely lacking an autoscaler. You only have autoscaler-hpa which is only an extension. The autoscaler will be responsible to pick these resources up.
@Manvi07 Can you help get the output of kubectl get deployment autoscaler -n knative-serving -oyaml ?
@markusthoemmes, I think it has timed out, as the below message states.
@yuzisun Here it is:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","serving.knative.dev/release":"v0.11.1"},"name":"autoscaler","namespace":"knative-serving"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"autoscaler","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative"}},"template":{"metadata":{"annotations":{"cluster-autoscaler.kubernetes.io/safe-to-evict":"false","sidecar.istio.io/inject":"true","traffic.sidecar.istio.io/includeInboundPorts":"8080,9090"},"labels":{"app":"autoscaler","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","serving.knative.dev/release":"v0.11.1"}},"spec":{"containers":[{"args":["--secure-port=8443","--cert-dir=/tmp"],"env":[{"name":"SYSTEM_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"CONFIG_LOGGING_NAME","value":"config-logging"},{"name":"CONFIG_OBSERVABILITY_NAME","value":"config-observability"},{"name":"METRICS_DOMAIN","value":"knative.dev/serving"}],"image":"gcr.io/knative-releases/knative.dev/serving/cmd/autoscaler@sha256:ef1f01b5fb3886d4c488a219687aac72d28e72f808691132f658259e4e02bb27","livenessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"autoscaler"}],"path":"/healthz","port":8080}},"name":"autoscaler","ports":[{"containerPort":8080,"name":"websocket"},{"containerPort":9090,"name":"metrics"},{"containerPort":8443,"name":"custom-metrics"},{"containerPort":8008,"name":"profiling"}],"readinessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"autoscaler"}],"path":"/healthz","port":8080}},"resources":{"limits":{"cpu":"300m","memory":"400Mi"},"requests":{"cpu":"30m","memory":"40Mi"}},"securityContext":{"allowPrivilegeEscalation":false}}],"serviceAccountName":"controller"}}}}
creationTimestamp: "2020-05-28T10:30:50Z"
generation: 1
labels:
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
serving.knative.dev/release: v0.11.1
name: autoscaler
namespace: knative-serving
ownerReferences:
- apiVersion: app.k8s.io/v1beta1
blockOwnerDeletion: true
controller: false
kind: Application
name: knative-serving-install
uid: 9114a3e9-6d31-4413-8830-f45a0b8da0cd
resourceVersion: "76848"
selfLink: /apis/extensions/v1beta1/namespaces/knative-serving/deployments/autoscaler
uid: ee76848b-b5a6-4f66-9bff-3e216726a7b0
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: autoscaler
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
sidecar.istio.io/inject: "true"
traffic.sidecar.istio.io/includeInboundPorts: 8080,9090
creationTimestamp: null
labels:
app: autoscaler
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
serving.knative.dev/release: v0.11.1
spec:
containers:
- args:
- --secure-port=8443
- --cert-dir=/tmp
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/serving
image: gcr.io/knative-releases/knative.dev/serving/cmd/autoscaler@sha256:ef1f01b5fb3886d4c488a219687aac72d28e72f808691132f658259e4e02bb27
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: autoscaler
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: autoscaler
ports:
- containerPort: 8080
name: websocket
protocol: TCP
- containerPort: 9090
name: metrics
protocol: TCP
- containerPort: 8443
name: custom-metrics
protocol: TCP
- containerPort: 8008
name: profiling
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: autoscaler
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 300m
memory: 400Mi
requests:
cpu: 30m
memory: 40Mi
securityContext:
allowPrivilegeEscalation: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: controller
serviceAccountName: controller
terminationGracePeriodSeconds: 30
status:
conditions:
- lastTransitionTime: "2020-05-28T10:30:50Z"
lastUpdateTime: "2020-05-28T10:30:50Z"
message: Deployment does not have minimum availability.
reason: MinimumReplicasUnavailable
status: "False"
type: Available
- lastTransitionTime: "2020-05-28T10:30:50Z"
lastUpdateTime: "2020-05-28T10:30:50Z"
message: 'pods "autoscaler-69bcc99c79-" is forbidden: unable to validate against
any pod security policy: [spec.initContainers[0].securityContext.capabilities.add:
Invalid value: "NET_ADMIN": capability may not be added]'
reason: FailedCreate
status: "True"
type: ReplicaFailure
- lastTransitionTime: "2020-05-28T10:40:51Z"
lastUpdateTime: "2020-05-28T10:40:51Z"
message: ReplicaSet "autoscaler-69bcc99c79" has timed out progressing.
reason: ProgressDeadlineExceeded
status: "False"
type: Progressing
observedGeneration: 1
unavailableReplicas: 1
Ah there you go. I'm assuming you're running with injected istio sidecars? The security settings of your cluster are not allowing the istio sidecars to be created for you. The activator is also not there for the same reason.
@markusthoemmes I am not aware of istio-sidecars injection. Is there a way I can set the activator?
Actually I am using an external cluster, that is a part of an enterprise.
@Manvi07 if you remove the annotation "sidecar.istio.io/inject":"true" on both autoscaler and activator deployment, the pod should then come up.
@yuzisun I modified the autoscaler and activator deployments, and redeployed the inference service, but ksvc output still shows revision missing.
@Manvi07 did you see the autoscaler and activator pod coming up now in knative-serving namespace?
No @yuzisun, still not coming up :(
No @yuzisun, still not coming up :(
Can you confirm if the annotation is removed from knative activator and autoscaler deployment?
@yuzisun
kubectl get deployment autoscaler -n knative-serving -oyaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "2"
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","serving.knative.dev/release":"v0.11.1"},"name":"autoscaler","namespace":"knative-serving"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"autoscaler","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative"}},"template":{"metadata":{"annotations":{"cluster-autoscaler.kubernetes.io/safe-to-evict":"false","traffic.sidecar.istio.io/includeInboundPorts":"8080,9090"},"labels":{"app":"autoscaler","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","serving.knative.dev/release":"v0.11.1"}},"spec":{"containers":[{"args":["--secure-port=8443","--cert-dir=/tmp"],"env":[{"name":"SYSTEM_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"CONFIG_LOGGING_NAME","value":"config-logging"},{"name":"CONFIG_OBSERVABILITY_NAME","value":"config-observability"},{"name":"METRICS_DOMAIN","value":"knative.dev/serving"}],"image":"gcr.io/knative-releases/knative.dev/serving/cmd/autoscaler@sha256:ef1f01b5fb3886d4c488a219687aac72d28e72f808691132f658259e4e02bb27","livenessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"autoscaler"}],"path":"/healthz","port":8080}},"name":"autoscaler","ports":[{"containerPort":8080,"name":"websocket"},{"containerPort":9090,"name":"metrics"},{"containerPort":8443,"name":"custom-metrics"},{"containerPort":8008,"name":"profiling"}],"readinessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"autoscaler"}],"path":"/healthz","port":8080}},"resources":{"limits":{"cpu":"300m","memory":"400Mi"},"requests":{"cpu":"30m","memory":"40Mi"}},"securityContext":{"allowPrivilegeEscalation":false}}],"serviceAccountName":"controller"}}}}
creationTimestamp: "2020-05-28T10:30:50Z"
generation: 3
labels:
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
serving.knative.dev/release: v0.11.1
name: autoscaler
namespace: knative-serving
ownerReferences:
- apiVersion: app.k8s.io/v1beta1
blockOwnerDeletion: true
controller: false
kind: Application
name: knative-serving-install
uid: 9114a3e9-6d31-4413-8830-f45a0b8da0cd
resourceVersion: "34333425"
selfLink: /apis/extensions/v1beta1/namespaces/knative-serving/deployments/autoscaler
uid: ee76848b-b5a6-4f66-9bff-3e216726a7b0
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: autoscaler
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
traffic.sidecar.istio.io/includeInboundPorts: 8080,9090
creationTimestamp: null
labels:
app: autoscaler
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
serving.knative.dev/release: v0.11.1
spec:
containers:
- args:
- --secure-port=8443
- --cert-dir=/tmp
env:
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/serving
image: gcr.io/knative-releases/knative.dev/serving/cmd/autoscaler@sha256:ef1f01b5fb3886d4c488a219687aac72d28e72f808691132f658259e4e02bb27
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: autoscaler
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: autoscaler
ports:
- containerPort: 8080
name: websocket
protocol: TCP
- containerPort: 9090
name: metrics
protocol: TCP
- containerPort: 8443
name: custom-metrics
protocol: TCP
- containerPort: 8008
name: profiling
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: autoscaler
path: /healthz
port: 8080
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 300m
memory: 400Mi
requests:
cpu: 30m
memory: 40Mi
securityContext:
allowPrivilegeEscalation: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: controller
serviceAccountName: controller
terminationGracePeriodSeconds: 30
status:
conditions:
- lastTransitionTime: "2020-05-28T10:30:50Z"
lastUpdateTime: "2020-05-28T10:30:50Z"
message: Deployment does not have minimum availability.
reason: MinimumReplicasUnavailable
status: "False"
type: Available
- lastTransitionTime: "2020-05-28T10:30:50Z"
lastUpdateTime: "2020-05-28T10:30:50Z"
message: 'pods "autoscaler-69bcc99c79-" is forbidden: unable to validate against
any pod security policy: [spec.initContainers[0].securityContext.capabilities.add:
Invalid value: "NET_ADMIN": capability may not be added]'
reason: FailedCreate
status: "True"
type: ReplicaFailure
- lastTransitionTime: "2020-07-01T14:04:47Z"
lastUpdateTime: "2020-07-01T14:04:47Z"
message: ReplicaSet "autoscaler-77d44b8884" has timed out progressing.
reason: ProgressDeadlineExceeded
status: "False"
type: Progressing
observedGeneration: 3
unavailableReplicas: 2
kubectl get deployment activator -n knative-serving -oyaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "2"
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","serving.knative.dev/release":"v0.11.1"},"name":"activator","namespace":"knative-serving"},"spec":{"selector":{"matchLabels":{"app":"activator","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","role":"activator"}},"template":{"metadata":{"annotations":{"cluster-autoscaler.kubernetes.io/safe-to-evict":"false"},"labels":{"app":"activator","app.kubernetes.io/component":"knative-serving-install","app.kubernetes.io/instance":"knative-serving-install-v0.11.1","app.kubernetes.io/managed-by":"kfctl","app.kubernetes.io/name":"knative-serving-install","app.kubernetes.io/part-of":"kubeflow","app.kubernetes.io/version":"v0.11.1","kustomize.component":"knative","role":"activator","serving.knative.dev/release":"v0.11.1"}},"spec":{"containers":[{"env":[{"name":"POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"POD_IP","valueFrom":{"fieldRef":{"fieldPath":"status.podIP"}}},{"name":"SYSTEM_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}},{"name":"CONFIG_LOGGING_NAME","value":"config-logging"},{"name":"CONFIG_OBSERVABILITY_NAME","value":"config-observability"},{"name":"METRICS_DOMAIN","value":"knative.dev/internal/serving"}],"image":"gcr.io/knative-releases/knative.dev/serving/cmd/activator@sha256:8e606671215cc029683e8cd633ec5de9eabeaa6e9a4392ff289883304be1f418","livenessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"activator"}],"path":"/healthz","port":8012}},"name":"activator","ports":[{"containerPort":8012,"name":"http1"},{"containerPort":8013,"name":"h2c"},{"containerPort":9090,"name":"metrics"},{"containerPort":8008,"name":"profiling"}],"readinessProbe":{"httpGet":{"httpHeaders":[{"name":"k-kubelet-probe","value":"activator"}],"path":"/healthz","port":8012}},"resources":{"limits":{"cpu":"1000m","memory":"600Mi"},"requests":{"cpu":"300m","memory":"60Mi"}},"securityContext":{"allowPrivilegeEscalation":false}}],"serviceAccountName":"controller","terminationGracePeriodSeconds":300}}}}
creationTimestamp: "2020-05-28T10:30:49Z"
generation: 2
labels:
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
serving.knative.dev/release: v0.11.1
name: activator
namespace: knative-serving
ownerReferences:
- apiVersion: app.k8s.io/v1beta1
blockOwnerDeletion: true
controller: false
kind: Application
name: knative-serving-install
uid: 9114a3e9-6d31-4413-8830-f45a0b8da0cd
resourceVersion: "34336932"
selfLink: /apis/extensions/v1beta1/namespaces/knative-serving/deployments/activator
uid: d785b4e3-5060-410c-90b5-025d24669350
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: activator
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
role: activator
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
annotations:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
creationTimestamp: null
labels:
app: activator
app.kubernetes.io/component: knative-serving-install
app.kubernetes.io/instance: knative-serving-install-v0.11.1
app.kubernetes.io/managed-by: kfctl
app.kubernetes.io/name: knative-serving-install
app.kubernetes.io/part-of: kubeflow
app.kubernetes.io/version: v0.11.1
kustomize.component: knative
role: activator
serving.knative.dev/release: v0.11.1
spec:
containers:
- env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: SYSTEM_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: CONFIG_LOGGING_NAME
value: config-logging
- name: CONFIG_OBSERVABILITY_NAME
value: config-observability
- name: METRICS_DOMAIN
value: knative.dev/internal/serving
image: gcr.io/knative-releases/knative.dev/serving/cmd/activator@sha256:8e606671215cc029683e8cd633ec5de9eabeaa6e9a4392ff289883304be1f418
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: activator
path: /healthz
port: 8012
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
name: activator
ports:
- containerPort: 8012
name: http1
protocol: TCP
- containerPort: 8013
name: h2c
protocol: TCP
- containerPort: 9090
name: metrics
protocol: TCP
- containerPort: 8008
name: profiling
protocol: TCP
readinessProbe:
failureThreshold: 3
httpGet:
httpHeaders:
- name: k-kubelet-probe
value: activator
path: /healthz
port: 8012
scheme: HTTP
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: "1"
memory: 600Mi
requests:
cpu: 300m
memory: 60Mi
securityContext:
allowPrivilegeEscalation: false
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: controller
serviceAccountName: controller
terminationGracePeriodSeconds: 300
status:
conditions:
- lastTransitionTime: "2020-05-28T10:30:49Z"
lastUpdateTime: "2020-05-28T10:30:49Z"
message: Deployment does not have minimum availability.
reason: MinimumReplicasUnavailable
status: "False"
type: Available
- lastTransitionTime: "2020-05-28T10:30:49Z"
lastUpdateTime: "2020-05-28T10:30:49Z"
message: 'pods "activator-6dc4884-" is forbidden: unable to validate against any
pod security policy: [spec.initContainers[0].securityContext.capabilities.add:
Invalid value: "NET_ADMIN": capability may not be added]'
reason: FailedCreate
status: "True"
type: ReplicaFailure
- lastTransitionTime: "2020-07-01T14:09:46Z"
lastUpdateTime: "2020-07-01T14:09:46Z"
message: ReplicaSet "activator-57cc9fcb85" has timed out progressing.
reason: ProgressDeadlineExceeded
status: "False"
type: Progressing
observedGeneration: 2
unavailableReplicas: 2
@Manvi07 Can you delete the deployment and try deploying again?
@yuzisun You mean deleting the autoscaler & activator deployments?
@yuzisun You mean deleting the autoscaler & activator deployments?
yes
@yuzisun, didn't work. The pods not showing up still. :(
Here are the logs.
manvi@manvi-pc:~/K8_cluster$ kubectl delete deployment activator -n knative-serving
deployment.extensions "activator" deleted
manvi@manvi-pc:~/K8_cluster$ kubectl apply -f activator.yaml -n knative-serving
deployment.extensions/activator created
manvi@manvi-pc:~/K8_cluster$ kubectl delete deployment autoscaler -n knative-serving
deployment.extensions "autoscaler" deleted
manvi@manvi-pc:~/K8_cluster$ kubectl apply -f autoscaler.yaml -n knative-serving
deployment.extensions/autoscaler created
manvi@manvi-pc:~/K8_cluster$ kubectl get pods -n knative-serving
NAME READY STATUS RESTARTS AGE
autoscaler-hpa-68cc87bfb9-rndz7 1/1 Running 0 22d
controller-95dc7f8bd-6xbqr 1/1 Running 0 22d
networking-istio-5b8c5c6cff-x64ch 1/1 Running 0 22d
webhook-67847fb4b5-z6rf2 1/1 Running 0 22d
@Manvi07 so activator.yaml does not have the istio injector annotation now? you might want to check the deployment status for activator and autoscaler to see if still the same error as before.
@Manvi07 you can also try explicitly turning off the sidecar like in this PR.
@Manvi07 so
activator.yamldoes not have the istio injector annotation now? you might want to check the deployment status for activator and autoscaler to see if still the same error as before.
Yes @yubozhao, it does not.
@Manvi07 so
activator.yamldoes not have the istio injector annotation now? you might want to check the deployment status for activator and autoscaler to see if still the same error as before.Yes @yubozhao, it does not.
@Manvi07 Try the above to set the annotation to false explicitly instead of removing it.
@yuzisun I turned off the sidecar explicitly as mentioned in your PR, and that resulted in successfully starting the autoscaler however, activator has some issues:
kubectl get pods -n knative-serving
NAME READY STATUS RESTARTS AGE
activator-596cd49775-pf5wp 0/1 CrashLoopBackOff 9 21m
autoscaler-7b58b49794-79vzl 1/1 Running 0 7s
autoscaler-hpa-68cc87bfb9-rndz7 1/1 Running 0 22d
controller-95dc7f8bd-6xbqr 1/1 Running 0 22d
networking-istio-5b8c5c6cff-x64ch 1/1 Running 0 22d
webhook-67847fb4b5-z6rf2 1/1 Running 0 22d
@yuzisun I turned off the sidecar explicitly as mentioned in your PR, and that resulted in successfully starting the autoscaler however, activator has some issues:
kubectl get pods -n knative-serving NAME READY STATUS RESTARTS AGE activator-596cd49775-pf5wp 0/1 CrashLoopBackOff 9 21m autoscaler-7b58b49794-79vzl 1/1 Running 0 7s autoscaler-hpa-68cc87bfb9-rndz7 1/1 Running 0 22d controller-95dc7f8bd-6xbqr 1/1 Running 0 22d networking-istio-5b8c5c6cff-x64ch 1/1 Running 0 22d webhook-67847fb4b5-z6rf2 1/1 Running 0 22d
@Manvi07 still crashing? try delete and redeploy activator? you are close !
Thanks a lot @yuzisun. The pods are up & running now. However, on redeploying the inferenceService I get IngressNotConfigured and the output of kubectl logs -l app=networking-istio -n knative-serving is:
{"level":"info","ts":"2020-07-02T04:48:35.823Z","logger":"istiocontroller.ingress-controller","caller":"ingress/ingress.go:169","msg":"Creating/Updating VirtualServices","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","knative.dev/traceid":"b818c5f1-e7fb-4a05-b8ff-95ab4db2bb48","knative.dev/key":"default/sklearn-iris-predictor-default"}
W0702 04:48:52.675011 1 reflector.go:302] k8s.io/client-go/informers/factory.go:133: watch of *v1.ConfigMap ended with: too old resource version: 34968785 (34973892)
{"level":"info","ts":"2020-07-02T04:49:05.826Z","logger":"istiocontroller.ingress-controller.event-broadcaster","caller":"record/event.go:258","msg":"Event(v1.ObjectReference{Kind:\"Ingress\", Namespace:\"default\", Name:\"sklearn-iris-predictor-default\", UID:\"3d9fd72e-e55a-418c-9d9b-c5ca7e5069a7\", APIVersion:\"networking.internal.knative.dev/v1alpha1\", ResourceVersion:\"34970598\", FieldPath:\"\"}): type: 'Warning' reason: 'CreationFailed' Failed to create VirtualService default/sklearn-iris-predictor-default-mesh: Timeout: request did not complete within requested timeout 30s","commit":"6b0e5c6","knative.dev/controller":"ingress-controller"}
{"level":"info","ts":"2020-07-02T04:49:05.826Z","logger":"istiocontroller.ingress-controller.event-broadcaster","caller":"record/event.go:258","msg":"Event(v1.ObjectReference{Kind:\"Ingress\", Namespace:\"default\", Name:\"sklearn-iris-predictor-default\", UID:\"3d9fd72e-e55a-418c-9d9b-c5ca7e5069a7\", APIVersion:\"networking.internal.knative.dev/v1alpha1\", ResourceVersion:\"34970598\", FieldPath:\"\"}): type: 'Warning' reason: 'InternalError' failed to create VirtualService: Timeout: request did not complete within requested timeout 30s","commit":"6b0e5c6","knative.dev/controller":"ingress-controller"}
{"level":"warn","ts":"2020-07-02T04:49:35.828Z","logger":"istiocontroller.ingress-controller","caller":"ingress/ingress.go:134","msg":"Failed to update Ingress status","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","knative.dev/traceid":"b818c5f1-e7fb-4a05-b8ff-95ab4db2bb48","knative.dev/key":"default/sklearn-iris-predictor-default","error":"Timeout: request did not complete within requested timeout 30s"}
{"level":"error","ts":"2020-07-02T04:49:35.829Z","logger":"istiocontroller.ingress-controller","caller":"controller/controller.go:376","msg":"Reconcile error","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","error":"Timeout: request did not complete within requested timeout 30s","stacktrace":"knative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).handleErr\n\t/home/prow/go/src/knative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:376\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).processNextWorkItem\n\t/home/prow/go/src/knative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:362\nknative.dev/serving/vendor/knative.dev/pkg/controller.(*Impl).Run.func2\n\t/home/prow/go/src/knative.dev/serving/vendor/knative.dev/pkg/controller/controller.go:310"}
{"level":"info","ts":"2020-07-02T04:49:35.829Z","logger":"istiocontroller.ingress-controller","caller":"controller/controller.go:363","msg":"Reconcile failed. Time taken: 1m0.0056637s.","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","knative.dev/traceid":"b818c5f1-e7fb-4a05-b8ff-95ab4db2bb48","knative.dev/key":"default/sklearn-iris-predictor-default"}
{"level":"info","ts":"2020-07-02T04:49:35.829Z","logger":"istiocontroller.ingress-controller.event-broadcaster","caller":"record/event.go:258","msg":"Event(v1.ObjectReference{Kind:\"Ingress\", Namespace:\"default\", Name:\"sklearn-iris-predictor-default\", UID:\"3d9fd72e-e55a-418c-9d9b-c5ca7e5069a7\", APIVersion:\"networking.internal.knative.dev/v1alpha1\", ResourceVersion:\"34970598\", FieldPath:\"\"}): type: 'Warning' reason: 'UpdateFailed' Failed to update status for Ingress \"sklearn-iris-predictor-default\": Timeout: request did not complete within requested timeout 30s","commit":"6b0e5c6","knative.dev/controller":"ingress-controller"}
{"level":"info","ts":"2020-07-02T04:49:35.989Z","logger":"istiocontroller.ingress-controller","caller":"ingress/ingress.go:160","msg":"Reconciling ingress: &v1alpha1.Ingress{TypeMeta:v1.TypeMeta{Kind:\"\", APIVersion:\"\"}, ObjectMeta:v1.ObjectMeta{Name:\"sklearn-iris-predictor-default\", GenerateName:\"\", Namespace:\"default\", SelfLink:\"/apis/networking.internal.knative.dev/v1alpha1/namespaces/default/ingresses/sklearn-iris-predictor-default\", UID:\"3d9fd72e-e55a-418c-9d9b-c5ca7e5069a7\", ResourceVersion:\"34970598\", Generation:1, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:63729261809, loc:(*time.Location)(0x29d6020)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string{\"serving.knative.dev/route\":\"sklearn-iris-predictor-default\", \"serving.knative.dev/routeNamespace\":\"default\", \"serving.knative.dev/service\":\"sklearn-iris-predictor-default\"}, Annotations:map[string]string{\"kubernetes.io/ingress.class\":\"contour-corp\", \"networking.knative.dev/ingress.class\":\"istio.ingress.networking.knative.dev\", \"serving.knative.dev/creator\":\"system:serviceaccount:kfserving-system:default\", \"serving.knative.dev/lastModifier\":\"system:serviceaccount:kfserving-system:default\"}, OwnerReferences:[]v1.OwnerReference{v1.OwnerReference{APIVersion:\"serving.knative.dev/v1alpha1\", Kind:\"Route\", Name:\"sklearn-iris-predictor-default\", UID:\"13972fd8-00dc-4d37-ab04-cde6a026681d\", Controller:(*bool)(0xc0017c6150), BlockOwnerDeletion:(*bool)(0xc0017c6151)}}, Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:\"\", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, Spec:v1alpha1.IngressSpec{DeprecatedGeneration:0, TLS:[]v1alpha1.IngressTLS(nil), Rules:[]v1alpha1.IngressRule{v1alpha1.IngressRule{Hosts:[]string{\"sklearn-iris-predictor-default.default.svc.cluster.local\", \"sklearn-iris-predictor-default.default.example.com\"}, Visibility:\"ExternalIP\", HTTP:(*v1alpha1.HTTPIngressRuleValue)(0xc001257be0)}}, Visibility:\"ExternalIP\"}, Status:v1alpha1.IngressStatus{Status:v1.Status{ObservedGeneration:0, Conditions:v1.Conditions{apis.Condition{Type:\"LoadBalancerReady\", Status:\"Unknown\", Severity:\"\", LastTransitionTime:apis.VolatileTime{Inner:v1.Time{Time:time.Time{wall:0xbfb777b7faf6ed52, ext:1953176998646523, loc:(*time.Location)(0x29d6020)}}}, Reason:\"\", Message:\"\"}, apis.Condition{Type:\"NetworkConfigured\", Status:\"Unknown\", Severity:\"\", LastTransitionTime:apis.VolatileTime{Inner:v1.Time{Time:time.Time{wall:0xbfb777b7faf6e196, ext:1953176998643518, loc:(*time.Location)(0x29d6020)}}}, Reason:\"\", Message:\"\"}, apis.Condition{Type:\"Ready\", Status:\"Unknown\", Severity:\"\", LastTransitionTime:apis.VolatileTime{Inner:v1.Time{Time:time.Time{wall:0xbfb777b7faf6d8bc, ext:1953176998641268, loc:(*time.Location)(0x29d6020)}}}, Reason:\"\", Message:\"\"}}}, LoadBalancer:(*v1alpha1.LoadBalancerStatus)(nil), PublicLoadBalancer:(*v1alpha1.LoadBalancerStatus)(nil), PrivateLoadBalancer:(*v1alpha1.LoadBalancerStatus)(nil)}}","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","knative.dev/traceid":"9483913d-2b54-41f6-9e1a-62943419495d","knative.dev/key":"default/sklearn-iris-predictor-default"}
{"level":"info","ts":"2020-07-02T04:49:35.989Z","logger":"istiocontroller.ingress-controller","caller":"ingress/ingress.go:169","msg":"Creating/Updating VirtualServices","commit":"6b0e5c6","knative.dev/controller":"ingress-controller","knative.dev/traceid":"9483913d-2b54-41f6-9e1a-62943419495d","knative.dev/key":"default/sklearn-iris-predictor-default"}
@Manvi07 Looks like it is not able to create the istio virtual service due to some networking issue on your cluster.
@yuzisun I am also having similar issue,
I have installed kubeflow with minikube and then installed kfserving from repo, run same example
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$ kubectl apply -f tensorflow.yaml
error: Error loading config file "/home/ubuntu/.kube/config": open /home/ubuntu/.kube/config: permission denied
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$ sudo kubectl apply -f tensorflow.yaml
inferenceservice.serving.kubeflow.org/flowers-sample unchanged
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$ kubectl get inferenceservices
error: Error loading config file "/home/ubuntu/.kube/config": open /home/ubuntu/.kube/config: permission denied
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$ sudo kubectl get inferenceservices
NAME URL READY DEFAULT TRAFFIC CANARY TRAFFIC AGE
flowers-sample 28h
sklearn-iris 71m
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$
not seeing any URL or Ready Statues
ubuntu@td-kubeflow:~/kfserving/docs/samples/tensorflow$ sudo kubectl get pods -n knative-serving
NAME READY STATUS RESTARTS AGE
activator-78c895d774-tdpdj 2/2 Running 5 6d18h
autoscaler-7cfc48cf7-qvhmr 2/2 Running 7 6d18h
autoscaler-hpa-867dddf-w4vnf 1/1 Running 1 6d18h
controller-986646d76-bg4h2 0/1 Pending 0 6d18h
networking-istio-79b5d9cf79-qnqtz 0/1 Pending 0 6d18h
webhook-5dbc56cccf-csqw4 1/1 Running 1 6d18h
@tiru1930 looks like your minkube does not have enough resources as you can see knative controller and networking-istio pods are in pending state
@Manvi07 Looks like it is not able to create the istio virtual service due to some networking issue on your cluster.
@yuzisun any suggestions on how should I go about the problem?
@yuzisun now i have increased cpu count
root@td-kubeflow:/home/ubuntu/kfserving/docs/samples/sklearn# kubectl get pods -n knative-serving
NAME READY STATUS RESTARTS AGE
activator-78c895d774-tdpdj 2/2 Running 10 7d11h
autoscaler-7cfc48cf7-qvhmr 2/2 Running 12 7d11h
autoscaler-hpa-867dddf-w4vnf 1/1 Running 3 7d11h
controller-986646d76-bg4h2 1/1 Running 0 7d11h
networking-istio-79b5d9cf79-qnqtz 1/1 Running 0 7d11h
webhook-5dbc56cccf-csqw4 1/1 Running 3 7d11h
root@td-kubeflow:/home/ubuntu/kfserving/docs/samples/sklearn# ls -lrt
total 16
-rw-rw-r-- 1 ubuntu ubuntu 214 Jul 2 11:20 sklearn.yaml
-rw-rw-r-- 1 ubuntu ubuntu 1050 Jul 2 11:20 perf.yaml
-rw-rw-r-- 1 ubuntu ubuntu 82 Jul 2 11:20 iris-input.json
-rw-rw-r-- 1 ubuntu ubuntu 2568 Jul 2 11:20 README.md
root@td-kubeflow:/home/ubuntu/kfserving/docs/samples/sklearn# kubectl apply -f sklearn.yaml
inferenceservice.serving.kubeflow.org/sklearn-iris unchanged
root@td-kubeflow:/home/ubuntu/kfserving/docs/samples/sklearn# kubectl get inferenceservices
NAME URL READY DEFAULT TRAFFIC CANARY TRAFFIC AGE
flowers-sample 44h
sklearn-iris 10h
root@td-kubeflow:/home/ubuntu/kfserving/docs/samples/sklearn#
Where does these pods created ?
when i do kubectl get pods
No resources found.
@Manvi07 Looks like it is not able to create the istio virtual service due to some networking issue on your cluster.
@yuzisun any suggestions on how should I go about the problem?
@Manvi07 this smells like firewall issue on your cluster, in this case knative is calling istio webhook istio-galley in istio-system namespace to create the virtual service but timed out. It is best to check your firewall setup.
@Manvi07 let me know if I can close this?
Yeah @yuzisun. Doesn't look like a Kubeflow issue now. Thanks for your help. :)
/close
@yuzisun: Closing this issue.
In response to this:
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.