Skip to content

Latest commit

 

History

History
171 lines (165 loc) · 5.29 KB

Knative-Insight.md

File metadata and controls

171 lines (165 loc) · 5.29 KB

Knative Insight

This document describe the insights of Knative

Describe a user service pod

A user service pod contains 1 init container docker.io/istio/proxy_init and 4 containers:

  • user-container: the container with user codes;
  • queue-proxy: Knative Serving owned sidecar container to enforce request concurrency limits, image of gcr.io/knative-releases/github.com/knative/serving/cmd/queue@sha256;
  • fluentd-proxy: Sidecar container to collect logs from /var/log, image k8s.gcr.io/fluentd-elasticsearch;
  • istio-proxy: Sidecar container to form an Istio mesh, image docker.io/istio/proxyv2:1.0.2, running pilot-agent and envoy.

Three kinds of knative.dev/type till now

  • app: long running service
  • function: function as a service
  • container:container as a service

A user service contains:

  • a

helloworld-go

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2018-12-06T08:49:29Z
  name: helloworld-go
  namespace: default
  ownerReferences:
  - apiVersion: serving.knative.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Route
    name: helloworld-go
    uid: d24d7f13-f933-11e8-8d79-062cfe122831
  resourceVersion: "1206457"
  selfLink: /api/v1/namespaces/default/services/helloworld-go
  uid: d7d58441-f933-11e8-8d79-062cfe122831
spec:
  externalName: knative-ingressgateway.istio-system.svc.cluster.local
  sessionAffinity: None
  type: ExternalName
status:
  loadBalancer: {}

telemetrysample-route

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2018-12-11T03:01:39Z
  name: telemetrysample-route
  namespace: default
  ownerReferences:
  - apiVersion: serving.knative.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Route
    name: telemetrysample-route
    uid: bd5229ad-fcf0-11e8-97dc-86906447daf8
  resourceVersion: "1986783"
  selfLink: /api/v1/namespaces/default/services/telemetrysample-route
  uid: 14672b0a-fcf1-11e8-8d79-062cfe122831
spec:
  externalName: knative-ingressgateway.istio-system.svc.cluster.local
  sessionAffinity: None
  type: ExternalName
status:
  loadBalancer: {}

helloworld-go-00001-service

apiVersion: v1
kind: Service
metadata:
  annotations:
    serving.knative.dev/configurationGeneration: "1"
  creationTimestamp: 2018-12-06T08:49:22Z
  labels:
    app: helloworld-go-00001
    autoscaling.knative.dev/kpa: helloworld-go-00001
    serving.knative.dev/configuration: helloworld-go
    serving.knative.dev/revision: helloworld-go-00001
    serving.knative.dev/revisionUID: d2501208-f933-11e8-8d79-062cfe122831
    serving.knative.dev/service: helloworld-go
  name: helloworld-go-00001-service
  namespace: default
  ownerReferences:
  - apiVersion: serving.knative.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Revision
    name: helloworld-go-00001
    uid: d2501208-f933-11e8-8d79-062cfe122831
  resourceVersion: "1206386"
  selfLink: /api/v1/namespaces/default/services/helloworld-go-00001-service
  uid: d3be7940-f933-11e8-8d79-062cfe122831
spec:
  clusterIP: 172.21.5.218
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: queue-port
  selector:
    serving.knative.dev/revision: helloworld-go-00001
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

telemetrysample-configuration-00001-service

apiVersion: v1
kind: Service
metadata:
  annotations:
    serving.knative.dev/configurationGeneration: "1"
  creationTimestamp: 2018-12-11T03:01:24Z
  labels:
    app: telemetrysample-configuration-00001
    autoscaling.knative.dev/kpa: telemetrysample-configuration-00001
    knative.dev/type: app
    serving.knative.dev/configuration: telemetrysample-configuration
    serving.knative.dev/revision: telemetrysample-configuration-00001
    serving.knative.dev/revisionUID: bda484b3-fcf0-11e8-8d79-062cfe122831
    serving.knative.dev/service: ""
  name: telemetrysample-configuration-00001-service
  namespace: default
  ownerReferences:
  - apiVersion: serving.knative.dev/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Revision
    name: telemetrysample-configuration-00001
    uid: bda484b3-fcf0-11e8-8d79-062cfe122831
  resourceVersion: "1986692"
  selfLink: /api/v1/namespaces/default/services/telemetrysample-configuration-00001-service
  uid: 0b92b42e-fcf1-11e8-8d79-062cfe122831
spec:
  clusterIP: 172.21.183.183
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: queue-port
  selector:
    serving.knative.dev/revision: telemetrysample-configuration-00001
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}