-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Admin overview doc #6412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Admin overview doc #6412
Changes from all commits
616d748
0dd8ca6
07f0603
d4520ee
7a6e659
9ae7119
98305ae
27f6603
7ea43dd
e5f2397
24a8160
ff0aee6
f10feed
4eb34b8
bd968dd
718c280
94ca152
36d81c2
01bcffb
d925a17
b8a76ea
8dc7ca6
cbce6fb
6fea983
6ce725f
221b573
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,84 @@ | ||||||
--- | ||||||
audience: administrator | ||||||
components: | ||||||
- serving | ||||||
- eventing | ||||||
function: reference | ||||||
--- | ||||||
# Overview | ||||||
|
||||||
This page provides guidance for administrators on how to install and manage Knative on an existing Kubernetes cluster. It assumes you are familiar with the following: | ||||||
|
||||||
- Kubernetes and Kubernetes administration. | ||||||
- The `kubectl` CLI tool. You can use existing Kubernetes management tools (policy, quota, etc) to manage Knative workloads. | ||||||
- Cloud Native Computing Foundation (CNCF) projects such as Prometheus, Istio, and Strimzi, many of which can be used alongside Knative. | ||||||
- You should have cluster-admin permissions or equivalent to to install software and manage resources in all clusters in the namespace. For information about permissions, see [Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/AC) | ||||||
|
||||||
To simplify Knative installation and administration, you can use the Knative operator and the Knative CLI tool, but they are not required. Essentially, Knative aims to extend Kubernetes, and build on existing capabilities where feasible. | ||||||
|
||||||
Knative has three components, Eventing, Serving, and Functions. Severing and Eventing are installed into clusters, but not Functions. Functions does not require installation. | ||||||
|
||||||
Serving and Eventing support multiple underlying transports plugins within the same cluster. Serving supports pods with pluggable network ingress routes, and Eventing supports pods with pluggable message transports (e.g. Kafka, RabbitMQ). | ||||||
|
||||||
Knative has default lightweight implementations if you don't already have a solution. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like we need a transition sentence that explains something about managing the lifecycle of Knative, or maybe:
|
||||||
|
||||||
## Installing Knative | ||||||
|
||||||
You install Knative using YAML files and other resources either aided or not by the Knative Operator. The Knative Operator is a custom controller that extends the Kubernetes API to install Knative components. It allows you to automate applying the content, along with patching the contents to customize them. You install the Knative Operator either by using the Knative CLI Operator Plugin or by using KS8 Manifests or by Yelm. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
For hardware prerequisites and information about installing the quickstart, see the [Installation Roadmap](/install/README.md). | ||||||
|
||||||
Here are the considerations for installing using YAML or the Knative Operator: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Move this down to line 62, after the discussion of installation options. It makes more sense to the user in the context of the install options. |
||||||
|
||||||
| YAML-based install | Knative Operator install| | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| --- | --- | | ||||||
| You can see exactly what you get. | You specify choices at a higher level. | | ||||||
| You can adjust any parameters by editing them directly. | Not every setting is exposed. | | ||||||
| If you make changes, you have to keep track of what you changed when you want to upgrade. | It's easy to separate your customizations from the base installation. | | ||||||
| Version and audit control as YAML files are stored in a GitHub repository.| No version or audit control. | | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This last one isn't quite right -- the KnativeServing and KnativeEventing resources could be stored under version control, and a YAML installation doesn't have to be stored in GitHub. (In fact, I'd probably suggest storing things in a git repository either way.) What about the following:
Suggested change
|
||||||
|
||||||
You can install Knative in the following ways: | ||||||
|
||||||
- Use a [YAML-based installation](/install/yaml-install/README.md) with `kubectl`. | ||||||
|
||||||
This option is the most useful if you're using delivery solutions such as Flux or ArgoCD to apply manifests checked into a Git repository. This is the lowest common denominator approach, giving you granular control of the process and resource definitions. | ||||||
|
||||||
- Install the [Knative Operator](/install/operator/knative-with-operators.md) using Manifests or Yelm, and then use `kubectl` to install Knative components. | ||||||
|
||||||
This option alleviates complexity by using the Knative Operator, while still enabling purpose-built manageability using popular tools. It also gives you a separation of the core Knative application definition and the ConfigMap and other changes you make. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
- Install the [Knative Operator CLI plugin](/install/operator/knative-with-operator-cli.md) and install the Knative Operator and the Knative CLI `kn` to Knative components. | ||||||
|
||||||
This is the easiest install option and suitable for using if customization is not a concern. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
The following table summarizes the options. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The "kubectlCLI" and "kn CLI" can be combined, since you're apparently using one or the other. Label the column "CLI to install components" and list one or the other in the table entry. |
||||||
|
||||||
| Install option | Resources | kubectl CLI | kn CLI | | ||||||
| --- | --- | --- | --- | | ||||||
| YAML-based | All YAML prepared | Install components | not used | | ||||||
| Knative Operator | Install Knative Operator using Manifests or Yelm |Install components | not used | | ||||||
| Knative Operator | Install Knative Operator CLI plugin | not used | Install components | | ||||||
Comment on lines
+56
to
+60
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This table is kind of weird, particularly since the previous table was column-major, but this one is row-major. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'd probably drop this table, though the other table seemed informative. |
||||||
|
||||||
Knative supports subsequent installs after the initial installation, you so your initial choices don't lock you in. For example, you can migrate from one message transport or network ingress to another without losing messages. | ||||||
|
||||||
## Defining and modifying custom resources | ||||||
iRaindrop marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
Either before or after the installing Knative Eventing and Serving components, you can create and modify custom resources and reinstall components as needed. You do so by creating or modifying a ConfigMap using a custom resource definition (CRD). For more information, see [Knative Serving CRDs](/install/operator/configuring-serving-cr.md) and [Knative Eventing CRDs](/install/operator/configuring-eventing-cr.md). | ||||||
|
||||||
## Plugins | ||||||
|
||||||
A Knative installation includes the following plugins: | ||||||
|
||||||
Networking plugins | ||||||
|
||||||
- Kourier (internal no-dependency option) | ||||||
- Istio (service mesh) | ||||||
- Courier (general-purpose ingress) | ||||||
- Gateway API (beta) | ||||||
|
||||||
Messaging plugins | ||||||
|
||||||
- In-memory (internal no-dependency option) | ||||||
- Kafka (in-order, high-thoughput but moderate complexity) | ||||||
- RabbitMQ (configurable order, moderate throughput and complexity) | ||||||
- NATS (low complexity) |
Uh oh!
There was an error while loading. Please reload this page.