Skip to content

Commit 83cc8c4

Browse files
Admin overview doc (#6412)
* Admin and Install docs Craft an Amin Overview and finish up high-level remaining tasks for install docs. * Update admin-overview.md Spelling fix! * Update admin-overview.md Wrote up admin tasks and interests by categories * Update admin-overview.md Changed H1 to include "Knative" * Update admin-overview.md Link testing and de-emphasizing tables * Update admin-overview.md Link fixes * Update admin-overview.md indented bullets test * Update admin-overview.md Settling on combo or paras with lins and minimal bulleted lists * Rebuild attempt * Update admin-overview.md Worked on Configurations section * Update admin-overview.md Worked on the Monitoring and Observability section * Update admin-overview.md Finished initial write-up for each section * Update admin-overview.md Added blog links (as a test) * Update admin-overview.md Processed most reviewer edits * Update admin-overview.md Added "YAML and CLI installations compared" section * Update admin-overview.md Updated Installation section * Update admin-overview.md Installation, CRD, and ConfigMap guidance * Update admin-overview.md Updates and restructuring sections into Administrative tasks table. * Update admin-overview.md link fixes * Update admin-overview.md Table fix * Update admin-overview.md Table tweaks * Update admin-overview.md Minor edits to rebuild * Update admin-overview.md Minor edit * Update admin-overview.md Misc edits * Update admin-overview.md Processed reviwer edits * Update admin-overview.md Edits per repurposing * Update .nav.yml Set admin-overview.md as the top topic * Update admin-overview.md Removed section that will be doc'd elsewhere * Update admin-overview.md Single edit "messaging implementation" * Moved install content from overview to install readme Moved install content from administer/admin-overiview.md into the install/README.md * Reviewer edits and misc * Wrapping up installation content Installation content all in README.md - admin-overview.md emptied with placeholder * Update .nav.yml Reset overview to README.md * Update .nav.yml Fixed Nav error * Update README.md Fixed broken links * Update README.md Processed reviewer edits * Update README.md More link fixes * Put admin install info back in overview Wrote about configurations * Update .nav.yml Set admin-overview back in Nav * Update admin-overview.md Formatting work * Link fixes * Update admin-overview.md Formatting fixes * Update admin-overview.md Formatting fixes * Update admin-overview.md Removed unnecessary table * Processed reviewer edits * Formatting fixes * Update admin-overview.md Follow up edits * Update admin-overview.md Processed reviewer edits * minor edit to rebuild * Update README.md Added links and minor edits * Update README.md Minor edit * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/install/README.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Processed reviewer edits Also added KServe to Extensibility section of Installing Knative * Update README.md link fix * Copy edits and helpful links * Delete README.md Removed - content now in admin/admin-overview.md * Update docs/versioned/install/README.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/admin/admin-overview.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/install/README.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update docs/versioned/install/README.md Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com> * Update admin-overview.md Removed unneeded reference and link fix --------- Co-authored-by: Evan Anderson <evan.k.anderson@gmail.com>
1 parent a91b7c1 commit 83cc8c4

File tree

4 files changed

+207
-38
lines changed

4 files changed

+207
-38
lines changed

docs/versioned/.nav.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ nav:
233233
# Administration
234234
###############################################################################
235235
- Administration:
236-
- Overview: administer/README.md
236+
- Overview: admin/admin-overview.md
237237
- Installing Knative:
238238
- Overview: install/README.md
239239
# YAML Installation
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
audience: administrator
3+
components:
4+
- serving
5+
- eventing
6+
function: explanation
7+
---
8+
# Overview
9+
10+
This page provides guidance for administrators on how to manage Knative on an existing Kubernetes cluster.
11+
12+
As a cluster administrator, your responsibilities include managing the Kubernetes environment, installing cluster-wide components, and enabling developers to deploy applications on the cluster. Knative aims to simplify developer tasks, while aligning with existing management tools and processes.
13+
14+
Knative includes a plugin system to integrate with existing infrastructure in the cluster, enabling Knative resources such as Routes and Brokers to be implemented using one of multiple underlying suppliers. For example, a Knative Eventing app can deliver events to a Broker that triggers a function based on the received event. In a testing cluster, the delivery might use an in-memory option, while a staging or production environment might use a cloud-provided Kafka service.
15+
16+
Of particular interest to cluster administrators is that Knative supports customizable _default values_ on the parameters defined in resource YAML files. These configurations reduce the amount of environment configuration tasks developers needs to consider.
17+
18+
## Knative installations
19+
20+
See the [Installation roadmap](../install/README.md#installation-roadmap) for prerequisites and installation steps. Your first installation decision is whether to use a YAML-based installation or use the Knative Operator. The Knative Operator is a custom controller that extends the Kubernetes API to install Knative components. If you just need to get acquainted with Knative at this time, you can install the [quickstart](../getting-started/quickstart-install.md).
21+
22+
## Configuring Knative
23+
24+
Knative uses Kubernetes YAML manifests to define and configure system components. These manifests include core resources, custom resource definitions (CRDs), and extensibility features. As with Kubernetes, these configuration resources are declarative and can be managed using the `kubectl` CLI tool or with continuous delivery tools.
25+
26+
### Resource scoping and namespaces
27+
28+
Knative resources are namespaced. Knative adheres to the Kubernetes model of namespace-based isolation that lets you manage development teams and resources by assigning them to namespaces.
29+
30+
Namespaces can also isolate boundaries for tooling such as logs, metrics, tracing, CI/CD integrations, and dashboards. The extent of this isolation depends on both the enforcement strategy and how consistently teams adhere to namespace boundaries.
31+
32+
You can optimize and enforce isolation involving namespaces using standard Kubernetes mechanisms, including:
33+
34+
- [Role-Based Access Control (RBAC)](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
35+
- [Resource Quotas](https://kubernetes.io/docs/concepts/policy/resource-quotas/)
36+
- [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
37+
- [Pod Security Standards](https://kubernetes.io/docs/concepts/security/pod-security-standards/)
38+
39+
### Configuring Knative components
40+
41+
Knative configurations are performed by the following methods:
42+
43+
- Editing YAML manifests
44+
45+
Modify resource definitions directly, including labels, annotations, and field values. You can use Kubernetes features such as [OPA](https://kubernetes.io/blog/2019/08/06/opa-gatekeeper-policy-and-governance-for-kubernetes/) and [Kyverno](https://kyverno.io) to enforce specific values on a resource type, or use ConfigMaps in plugin installations to set values at the cluster level.
46+
47+
- Using ConfigMaps
48+
49+
Store and manage configuration data as key-value pairs. ConfigMaps are frequently used to tune platform-wide behavior. Most of the Knative ConfigMaps are in the `knative-serving` and `knative-eventing` namespaces. Their settings apply to all the relevant Knative components in all namespaces.
50+
51+
- Using the Knative Operator
52+
53+
Some platform-wide settings can be managed declaratively using the Knative Operator.
54+
55+
### Configuration tasks
56+
57+
Knative documentation provides the following configuration procedures. This list is subject subject to change.
58+
59+
Configurations for default settings:
60+
61+
- [Broker defaults](../eventing/configuration/broker-configuration.md)
62+
- [ConfigMap defaults](../serving/configuration/config-defaults.md)
63+
- [Event source defaults](../eventing/configuration/sources-configuration.md)
64+
- [Channel defaults](../eventing/configuration/channel-configuration.md)
65+
- [Kafka channel defaults](../eventing/configuration/kafka-channel-configuration.md)
66+
- [Domain names](../serving/using-a-custom-domain.md)
67+
- [Ingress gateway replacement](../serving/setting-up-custom-ingress-gateway.md)
68+
69+
Configurations for new development:
70+
71+
- [Deployment resources](../serving/configuration/deployment.md)
72+
- [Istio access to deployed services](../serving/istio-authorization.md)
73+
- [Namespace exclusion from webhooks](../serving/istio-authorization.md)
74+
75+
Configurations for maintenance:
76+
77+
- [Garbage collection](../serving/revisions/revision-admin-config-options.md)
78+
- [High availability](../serving/config-ha.md)
79+
- [Rollout duration for revisions](../serving/configuration/rolling-out-latest-revision-configmap.md)
80+
- [Autoscaling of Kafka features](../eventing/configuration/keda-configuration.md)
81+
82+
Configurations for security encryptions:
83+
84+
- [cert-manager](../serving/encryption/configure-certmanager-integration.md)
85+
- [External domains](../serving/encryption/external-domain-tls.md)
86+
- [Local domains](../serving/encryption/cluster-local-domain-tls.md)
87+
- [system-internal](../serving/encryption/system-internal-tls.md)
88+
89+
Configurations for extensions:
90+
91+
- [Kafka Broker features](../serving/encryption/system-internal-tls.md)
92+
- [Sugar Controller](../eventing/configuration/sugar-configuration.md)
93+
94+
Configurations for flagging features:
95+
96+
- [Serving features](../serving/configuration/feature-flags.md)
97+
- [Eventing features](../eventing/features/README.md)
98+
99+
## Authorizations
100+
101+
You can grant developers access to additional resources related to their namespace in other services, such as observability, logs, metrics, tracing, and dashboards.
102+
103+
## Upgrades
104+
105+
Administrators are generally responsible for performing upgrades cluster infrastructure and apps and services. Knative is designed and tested for continuous operation during upgrades and rollbacks, allowing you to:
106+
107+
- Upgrade or revert the Knative components while it is serving traffic, rather than needing a maintenance window.
108+
- Downgrade one Knative version. Downgrades work provided that no applications have used new features since the last upgrade.

docs/versioned/administer/README.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

docs/versioned/install/README.md

Lines changed: 98 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,58 +8,132 @@ function: reference
88

99
# Installing Knative
1010

11-
There are three installation methods to install Knative:
11+
This page provides guidance for Kubernetes administrators on how to install Knative on an existing Kubernetes cluster. Knative has three components: Eventing, Serving, and Functions. Serving and Eventing are installed into clusters. Functions is not installed into clusters given that the client `func` CLI tool builds and deploys stateless functions as standard containers.
1212

13-
- A quickstart experience on a local computer only by using a preconfigured extension.
14-
- A YAML installation suitable for production use.
15-
- A Knative Operator installation suitable for production use.
13+
A Knative installation assumes you are familiar with the following:
1614

17-
A Knative installation is composed of the Serving and Eventing components. The quickstart implements both. The YAML and Knative Operator installations provide options to install either or both.
15+
- Kubernetes and Kubernetes administration.
16+
- The `kubectl` CLI tool. You can use existing Kubernetes management tools (policy, quota, etc) to manage Knative workloads.
17+
- Using `cluster-admin` permissions or equivalent 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).
18+
- Familiarity is recommended with Cloud Native Computing Foundation (CNCF) projects such as [Prometheus](https://kubernetes.io/docs/concepts/cluster-administration/system-metrics/), [Istio](https://istio.io), and [Strimzi](https://strimzi.io), many of which can be used alongside Knative.
1819

19-
Supported platforms are Linux, MacOS, and Windows.
20+
You can install the Serving and Eventing components independently of one another. You can also add and remove plugins at any time, as well as optional integration tools that span observability, security, and testing. Plugins are described in the [Extensibility](#extensibility) section.
2021

2122
## Installation roadmap
2223

23-
Use the following table to evaluate your installation method.
24+
Use the following table to determine your installation method. If you just want to get an understanding of Knative functionality at this time, install the quickstart.
2425

25-
| | Quickstart | YAML | Knative Operator |
26+
| | Quickstart | YAML-based | Knative Operator |
2627
| --- | --- | --- | --- |
2728
| Purpose | local | production | production |
28-
| Kubernetes | local deployment of kind or Minikube | existing deployment | existing deployment |
29-
| Hardware | 3 CPU, 3 GB RAM | One node: 6 CPUs, 6 GB memory, 30 GB disk storage.<br>Multiple nodes: 2 CPUs each, 4 GB memory, 20 GB disk storage. | same as YAML |
29+
| Kubernetes deployment | local, either `kind` or `Minikube` | existing | existing |
30+
| Hardware | 3 CPU, 3 GB RAM | One node:<br>6 CPUs, 6 GB memory, 30 GB disk storage.<br>Multiple nodes:<br>2 CPUs each, 4 GB memory, 20 GB disk storage. | same as YAML-based |
31+
32+
Supported platforms are Linux, MacOS, and Windows.
3033

31-
Use the following steps to install Knative depending on your installation method.
34+
The Knative Operator is a custom controller that extends the Kubernetes API to install Knative components. For more information about YAML-based and installations with the Knative Operator, see [YAML and Knative Operator installations compared](#yaml-and-knative-operator-installations-compared).
35+
36+
Use the following steps to install Knative depending on your installation method:
3237

3338
**Quickstart**:
3439

3540
1. Install the [CLI Tools](../client/install-kn.md).
3641
1. Install the [Knative Quickstart plugin](../getting-started/quickstart-install.md).
3742

38-
**YAML**:
43+
**YAML-based**:
44+
45+
Install using all YAML files. This option is the most useful if you're using GitOps tools such as [Flux](https://fluxcd.io) or [ArgoCD](https://argo-cd.readthedocs.io/en/stable/) 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.
3946

4047
1. Install the [CLI Tools](../client/install-kn.md).
41-
1. Install either or both:
48+
1. Install either or both components:
4249
- Install [Knative Serving](yaml-install/serving/install-serving-with-yaml.md).
4350
- Install [Knative Eventing](yaml-install/eventing/install-eventing-with-yaml.md).
4451

45-
**Operator**:
52+
**Knative Operator**:
53+
54+
Install using the Knative Operator as using manifests or [Helm](https://helm.sh), or install using the Knative Operator that is installed with the Knative Operator CLI plugin.
4655

4756
1. Install the [CLI Tools](../client/install-kn.md) including the Knative Operator CLI plugin.
48-
1. Install using the Knative Operator, and with it the Serving and Eventing components, by either of the following:
49-
- The [Knative Operator](./operator/knative-with-operators.md) using K8S Manifests or via Helm.
50-
- The [Knative Operator CLI](./operator/knative-with-operator-cli.md).
57+
1. Install the Serving and Eventing components, by either of the following:
58+
- The [Knative Operator](../install/operator/knative-with-operators.md) using Kubernetes manifests or by using Helm.
59+
- The [Knative Operator CLI](../install/operator/knative-with-operator-cli.md).
60+
61+
All installations require a supported Kubernetes version. System requirements provided are recommendations only. The requirements for your installation may vary depending on which plugin components you use.
62+
63+
For a list of commercial Knative products, see [Knative offerings](../install/knative-offerings.md).
64+
65+
## YAML and Knative Operator installations compared
66+
67+
You install Knative using YAML files and other resources either aided or not by the Knative Operator. The Knative Operator allows you to automate applying, patching, and customizing the content.
68+
69+
The Knative Operator alleviates installation complexities and is compatible with a GitOps approach. It also gives you a separation of the core Knative application definition and the ConfigMap and other changes you make. You install the Knative Operator either by using the Knative CLI Operator Plugin or by using Kubernetes Manifests or by Helm.
70+
71+
Here are the considerations for installing using YAML or the Knative Operator:
72+
73+
| YAML-based install | Knative Operator install|
74+
| --- | --- |
75+
| You can see exactly what you get. | You specify choices at a higher level. |
76+
| You can adjust any parameters by editing them directly. | Not every setting is exposed. |
77+
| 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. |
78+
| Version and audit control as YAML files are stored in a GitHub repository.| Manage custom resources using command-line tools or manifests. |
79+
80+
## Extensibility
81+
82+
Knative utilizes the existing infrastructure installed on your cluster and provides a developer-facing interface between similar components. The Serving and Eventing components 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 such as Kafka and RabbitMQ.
83+
84+
For LLM deployments, consider the [KServe](https://kserve.github.io) platform. KServe is a Kubernetes-native model serving platform built on Knative Serving designed for production LLM deployments.
85+
86+
Knative supports installing additional plugins after the initial installation, 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.
87+
88+
### Networking plugins
89+
90+
If you don't have an ingress that meets the requirements, Knative provides [net-kourier](https://github.com/knative-extensions/net-kourier), a default lightweight HTTP routing implementation. Plugins include:
91+
92+
- Istio
93+
94+
Service mesh from [Istio](https://istio.io). See [Installing Istio for Knative](../install/installing-istio.md).
95+
96+
- Contour
97+
98+
General-purpose ingress with a goal of enabling multi-team delegation. See [Contour](https://projectcontour.io/).
99+
100+
- Gateway API
101+
102+
The Kubernetes [Gateway API](https://kubernetes.io/docs/concepts/services-networking/gateway/) (beta).
103+
104+
### Messaging plugins
105+
106+
Knative has default lightweight in-memory messaging implementation if you don't already have a solution.
107+
108+
- Kafka
109+
110+
Distributed event streaming platform from [Apache Kafka](https://kafka.apache.org). In-order, high-thoughput but moderate complexity. See [Install Kafka for Knative](../install/eventing/kafka-install.md).
111+
112+
- RabbitMQ
113+
114+
A messaging and streaming broker from [RabbitMQ](https://www.rabbitmq.com). In-order, moderate throughput and complexity. See [Install RabbitMQ for Knative](../install/eventing/rabbitmq-install.md)
115+
116+
- NATS
117+
118+
An event streaming platform from [NATS](https://nats.io). Low complexity.
119+
120+
### Integration plugins
121+
122+
These plugins facilitate Knative operations.
123+
124+
- cert-manager
51125

52-
All installations require a supported Kubernetes version.
126+
For requesting TLS certificates in secure HTTPS connections. See [Install cert-manager](../install/installing-cert-manager.md).
53127

54-
System requirements provided are recommendations only. The requirements for your installation may vary depending on whether you use optional components, such as a networking layer.
128+
- Backstage
55129

56-
For a list of commercial Knative products, see [Knative offerings](knative-offerings.md).
130+
Plugins for handling Knative backends. See [Installing backstage plugins](../install/installing-backstage-plugins.md).
57131

58132
## Installation resources
59133

60134
Use the following links to maintain your installations.
61135

62-
- [Upgrading Knative](upgrade/README.md)
63-
- [Uninstall Knative](uninstall.md)
64-
- [Check Knative version](upgrade/check-install-version.md)
65-
- [Troubleshoot Knative installations](troubleshooting.md)
136+
- [Upgrading Knative](../install/upgrade/README.md)
137+
- [Uninstall Knative](../install/uninstall.md)
138+
- [Check Knative version](../install/upgrade/check-install-version.md)
139+
- [Troubleshoot Knative installations](../install/troubleshooting.md)

0 commit comments

Comments
 (0)