mirror of https://github.com/knative/docs.git
Remove docs/overview in favor of a link to slides presentation. (#1099)
The slides were the original form of this content, and we don't need to keep it in two places now that we have an easy way to share Google Docs.
This commit is contained in:
parent
6d7c3b6bf6
commit
f976fde906
|
@ -1,13 +0,0 @@
|
|||
# API Objects - Configuration
|
||||
|
||||
* Users and tools mainly interact with this resource
|
||||
* "Deploy new code"
|
||||
* "Update environment"
|
||||
* "Change backend"
|
||||
* On modifications, new Revision is created
|
||||
* Handles build creation and creates linear revision history
|
||||
* Also records "latestCreated" and "latestReady" Revisions, for use by tooling
|
||||
|
||||
## TODO:
|
||||
|
||||
* Expand on the above bullets
|
|
@ -1,21 +0,0 @@
|
|||
# API Objects
|
||||
|
||||
* Configuration
|
||||
* Desired current state of deployment (#HEAD).
|
||||
* Records the history of the code and configuration separately (following the [12-factor app methodology](https://12factor.net/)).
|
||||
* Stamps out revisions as it is updated.
|
||||
* Revision
|
||||
* Snapshot of the code and configuration.
|
||||
* Uses Kubernetes infrastructure, such as [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/), [ReplicaSet](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/), and [Pods](https://kubernetes.io/docs/concepts/workloads/pods/pod/).
|
||||
* Route
|
||||
* Assigns traffic to Revisions (fractional scaling or by name).
|
||||
* Built using [Istio](https://istio.io/docs/).
|
||||
* Service
|
||||
* Acts as a top-level controller to orchestrate Route and Configuration.
|
||||
* Provides a simple entry point for UI and CLI tooling to achieve common behavior.
|
||||
* Build
|
||||
* Executes builds.
|
||||
|
||||
<img src="./images/api-objects.png" width="250">
|
||||
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# API Objects - Revision
|
||||
|
||||
* Runs container images only
|
||||
* Reifies k8s resources
|
||||
* Deployment (probably could just use ReplicaSet)
|
||||
* AutoScaler (currently uses horizontal pod autoscaler, looking at options here)
|
||||
* Service
|
||||
* Injects sidecars into the pods
|
||||
* Scales to zero when not in use (goal, not implemented)
|
||||
|
||||

|
|
@ -1,14 +0,0 @@
|
|||
# API Objects - Route
|
||||
|
||||
* Provides a (automatic) DNS name based on cluster-level prefix
|
||||
* Top level resource traffic assignment and naming
|
||||
* Points to Revision's k8s service
|
||||
* Can specify latest from Configuration, will follow redirect
|
||||
* Allows for various rollout strategies
|
||||
* Auto (point to Configuration), will follow latest Ready revision stamped from it
|
||||
* Manual (point to Revision directly), traffic pinned
|
||||
* Combinations of the above
|
||||
* Creates Istio + k8 resources
|
||||
* Creates a “placeholder” k8s service for when there’s no backing revisions
|
||||
* Creates Istio ingress
|
||||
* Traffic routing done via Istio route_rules
|
|
@ -1,12 +0,0 @@
|
|||
# API Objects - Service
|
||||
|
||||
* Orchestrates Routes and Configurations to support higher-level tooling.
|
||||
* Configuration of code + inbound routing in a single API call.
|
||||
* Definition of specific common rollout policies
|
||||
* Automatic (latest) rollout
|
||||
* Manual rollout
|
||||
* Extensible for other rollout strategies which might be requested
|
||||
* Provides a top-level resource for graphical UI to key off of.
|
||||
* Recommended starting point for Knative Serving use, as it provides "guide rails" to avoid unusual and non-idiomatic usage.
|
||||
* Mirrors labels and annotations to the created objects.
|
||||
* Advanced scenarios may require disconnecting the Service ownership of the created Route and Configuration.
|
|
@ -1,6 +0,0 @@
|
|||
# Code layout - Controller
|
||||
|
||||
* `./pkg/controller/{configuration,revision,route,service}/controller.go`
|
||||
* `sync_handler` is the main method for reconcile
|
||||
* Other resource creation broken into their own files in those directories
|
||||
* Communicates information via `[resource].status` field
|
|
@ -1,6 +0,0 @@
|
|||
# Code layout - Other files
|
||||
|
||||
* ./hack/update-deps.sh
|
||||
* Needed when you add new go dependencies
|
||||
* ./hack/update-codegen.sh
|
||||
* Needed when you change type definitions
|
|
@ -1,9 +0,0 @@
|
|||
# Code layout - Resources
|
||||
|
||||
* ./pkg/apis/serving/v1alpha1/*_types.go
|
||||
* ./hack/update_codegen.sh when updating types fields
|
||||
* codegenerates
|
||||
* ./pkg/apis/serving/v1alpha1/zz_generated*
|
||||
* ./pkg/client/
|
||||
* ./pkg/apis/{istio,cloudbuild}
|
||||
* Imported to help with interacting with these resources
|
|
@ -1,11 +0,0 @@
|
|||
# Code layout - Webhook
|
||||
|
||||
* `./pkg/webhook/webhook.go`
|
||||
* All the generic mutations / validations
|
||||
* Serialization / deserialization
|
||||
* Calls into resource specific validation / mutation
|
||||
* `./pkg/webhook/{configuration,revision,route,service}`
|
||||
* Mutations specified with an array of jsonpatch objects
|
||||
* `./pkg/webhook/certs.go`
|
||||
* CA / Server cert
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
# Knative Serving Components
|
||||
|
||||
* Controller
|
||||
* Watches for changes to resources and reconciles
|
||||
* Webhook
|
||||
* Gets called before resources are put into k8s etcd storage
|
||||
* Validates + mutates
|
||||
* Resource Definitions
|
||||
* knative
|
||||
* build + istio
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
# Design goals
|
||||
|
||||
* Same API to handle applications as well as functions (serverless)
|
||||
* Simple enough to get started but will handle complex rollout and traffic management that we’ve seen in practice
|
||||
* Gradual complexity increase/learn as you use it
|
||||
* Familiar to existing k8s users
|
||||
* Principled abstractions that can be reused by higher levels
|
||||
* Clear separation of concerns
|
||||
* Declarative - grows with users needs (CI/CD, tooling, etc.)
|
||||
* Reuse everything we can
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
Before Width: | Height: | Size: 52 KiB |
|
@ -1,16 +0,0 @@
|
|||
# Knative Serving API/Code Overview
|
||||
|
||||
## What's covered
|
||||
|
||||
* [Design goals](./knative-design-goals.md)
|
||||
* [API objects](./knative-api-objects.md)
|
||||
* [Configuration](./knative-api-configuration.md)
|
||||
* [Revision](./knative-api-revision.md)
|
||||
* [Route](./knative-api-route.md)
|
||||
* [Service](./knative-api-service.md)
|
||||
* [Components](./knative-components.md)
|
||||
* Code layout
|
||||
* [Resources](./knative-code-layout-resources.md)
|
||||
* [Controller](./knative-code-layout-controller.md)
|
||||
* [Webhook](./knative-code-layout-webhook.md)
|
||||
* [Other files](./knative-code-layout-other.md)
|
|
@ -1,3 +1,5 @@
|
|||
For a truly high-level overview, [see these slides](https://docs.google.com/presentation/d/1CbwVC7W2JaSxRyltU8CS1bIsrIXu1RrZqvnlMlDaaJE/edit#slide=id.p)
|
||||
|
||||
# Resources
|
||||
|
||||
This document provides a high-level description of the resources deployed to a Kubernetes cluster in order to run Knative Serving. The exact list of resources is going to change frequently during the current phase of active development. In order to keep this document from becoming out-of-date frequently it doesn't describe the exact individual resources but instead the higher level objects which they form.
|
||||
|
|
Loading…
Reference in New Issue