-
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
Admin overview doc #6412
Changes from 62 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
0f4d62f
31d22c4
82445f0
0683ac0
5abf3b5
f5471d8
7bf0355
58c26ea
9c622bb
6034fe6
0051916
2d969a0
01dcd5e
794f8fa
b28fa41
ec47c75
ebda591
1d9250d
322c66d
eea866f
e3ef406
cbfcce6
af71cd0
596bab7
aa154d0
c608e5a
bbb6829
1e41e00
e129a69
a39a442
d0c2a87
431fcf8
9f251eb
d266c9f
58deddc
3d2afae
0cf79c7
7fce951
52921ba
41227bb
5511678
63dd0ee
20b6e2c
266a627
42c61a7
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,112 @@ | ||||||
| --- | ||||||
| audience: administrator | ||||||
| components: | ||||||
| - serving | ||||||
| - eventing | ||||||
| function: explanation | ||||||
| --- | ||||||
| # Overview | ||||||
|
|
||||||
| This page provides guidance for administrators on how to manage Knative on an existing Kubernetes cluster. | ||||||
|
|
||||||
| 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. | ||||||
|
|
||||||
| Knative includes a plugin system within the existing cluster infrastructure, enabling Knative resources such as routes and brokers to be implemented using multiple underlying suppliers. For example, a Knative Eventing app can deliver events to a broker that triggers a function based on the received event. That function could then have a testing cluster respond using an in-memory option, or a staging or production environment might use a cloud-provided Kafka service. | ||||||
iRaindrop marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
|
||||||
| 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. | ||||||
|
|
||||||
| ## Knative installations | ||||||
|
|
||||||
| 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. | ||||||
iRaindrop marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
|
||||||
| ## Configuring Knative | ||||||
|
|
||||||
| Knative uses Kubernetes-style 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 managed using the `kubectl` CLI tool. | ||||||
iRaindrop marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
|
||||||
| ### Resource scoping and namespaces | ||||||
|
|
||||||
| Knative resources are associated with namespaces. Knative adheres to the Kubernetes model of namespace-based isolation that lets you manage development teams and resources by assigning them to namespaces that you can define. There is also management of functionality by the applications that reference a namespace. | ||||||
iRaindrop marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||||||
|
|
||||||
| 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. | ||||||
|
Member
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 optimize and enforce isolation involving namespaces using standard Kubernetes mechanisms, including: | ||||||
iRaindrop marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| - [Role-Based Access Control (RBAC)](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) | ||||||
| - [Resource Quotas](https://kubernetes.io/docs/concepts/policy/resource-quotas/) | ||||||
| - [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/) | ||||||
| - [Pod Security Standards](https://kubernetes.io/docs/concepts/security/pod-security-standards/) | ||||||
|
|
||||||
| ### Configuring Knative components | ||||||
|
|
||||||
| Knative configurations are performed by the following methods: | ||||||
|
|
||||||
| - Editing YAML manifests | ||||||
|
|
||||||
| 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. | ||||||
|
|
||||||
| - Using ConfigMaps | ||||||
|
|
||||||
| 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. | ||||||
|
|
||||||
| - Applying resources with the `kubectl` CLI | ||||||
|
|
||||||
| Apply updated YAML manifests, as opposed to ConfigMaps, to the cluster using standard Kubernetes workflows. | ||||||
|
||||||
|
|
||||||
| - Using the Knative Operator | ||||||
|
|
||||||
| Some platform-wide settings can be managed declaratively using the Knative Operator. | ||||||
|
Member
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
|
||||||
|
|
||||||
| ### Configuration tasks | ||||||
|
|
||||||
evankanderson marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| Knative documentation provides the following configuration procedures. This list is subject subject to change. | ||||||
|
|
||||||
| Configurations for default settings: | ||||||
|
|
||||||
| - [Broker defaults](../eventing/configuration/broker-configuration.md) | ||||||
| - [ConfigMap defaults](../serving/configuration/config-defaults.md) | ||||||
| - [Event source defaults](../eventing/configuration/sources-configuration.md) | ||||||
| - [Channel defaults](../eventing/configuration/channel-configuration.md) | ||||||
| - [Kafka channel defaults](../eventing/configuration/kafka-channel-configuration.md) | ||||||
| - [Domain names](../serving/using-a-custom-domain.md) | ||||||
| - [Ingress gateway replacement](../serving/setting-up-custom-ingress-gateway.md) | ||||||
|
|
||||||
| Configurations for new development: | ||||||
|
|
||||||
| - [Deployment resources](../serving/configuration/deployment.md) | ||||||
| - [Istio access to deployed services](../serving/istio-authorization.md) | ||||||
| - [Namespace exclusion from webhooks](../serving/istio-authorization.md) | ||||||
|
|
||||||
| Configurations for maintenance: | ||||||
|
|
||||||
| - [Garbage collection](../serving/revisions/revision-admin-config-options.md) | ||||||
| - [High availability](../serving/config-ha.md) | ||||||
| - [Rollout duration for revisions](../serving/configuration/rolling-out-latest-revision-configmap.md) | ||||||
| - [Autoscaling of Kafka features](../eventing/configuration/keda-configuration.md) | ||||||
|
|
||||||
| Configurations for security encryptions: | ||||||
|
|
||||||
| - [cert-manager](../serving/encryption/configure-certmanager-integration.md) | ||||||
| - [External domains](../serving/encryption/external-domain-tls.md) | ||||||
| - [Local domains](../serving/encryption/cluster-local-domain-tls.md) | ||||||
| - [system-internal](../serving/encryption/system-internal-tls.md) | ||||||
|
|
||||||
| Configurations for extensions: | ||||||
|
|
||||||
| - [Kafka Broker features](../serving/encryption/system-internal-tls.md) | ||||||
| - [Sugar Controller](../eventing/configuration/sugar-configuration.md) | ||||||
|
|
||||||
| Configurations for flagging features: | ||||||
|
|
||||||
| - [Serving features](../serving/configuration/feature-flags.md) | ||||||
| - [Eventing features](../eventing/features/README.md) | ||||||
|
Comment on lines
+55
to
+97
Member
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. |
||||||
|
|
||||||
| ## Authorizations | ||||||
|
|
||||||
| You can grant developers access to additional resources related to their namespace in other services, such as observability, logs, metrics, tracing, and dashboards. | ||||||
|
Member
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. Not for this PR, but we should expand this to also talk about how application access can be managed by using ingress and Eventing features to require specific types of tokens (authentication and authorization) to deliver requests or events. |
||||||
|
|
||||||
| ## Upgrades | ||||||
|
|
||||||
| 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: | ||||||
|
|
||||||
| - Upgrade or revert the Knative components while it is serving traffic, rather than needing a maintenance window. | ||||||
| - Downgrade one Knative version. Downgrades work provided that no applications have used new features since the last upgrade. | ||||||

Uh oh!
There was an error while loading. Please reload this page.