在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):operator-framework/operator-lifecycle-manager开源软件地址(OpenSource Url):https://github.com/operator-framework/operator-lifecycle-manager开源编程语言(OpenSource Language):Go 98.7%开源软件介绍(OpenSource Introduction):DocumentationUser documentation can be found on the OLM website. OverviewThis project is a component of the Operator Framework, an open source toolkit to manage Kubernetes native applications, called Operators, in an effective, automated, and scalable way. Read more in the introduction blog post and learn about practical use cases at the OLM website. OLM extends Kubernetes to provide a declarative way to install, manage, and upgrade Operators and their dependencies in a cluster. It provides the following features: Over-the-Air Updates and CatalogsKubernetes clusters are being kept up to date using elaborate update mechanisms today, more often automatically and in the background. Operators, being cluster extensions, should follow that. OLM has a concept of catalogs from which Operators are available to install and being kept up to date. In this model OLM allows maintainers granular authoring of the update path and gives commercial vendors a flexible publishing mechanism using channels. Dependency ModelWith OLMs packaging format Operators can express dependencies on the platform and on other Operators. They can rely on OLM to respect these requirements as long as the cluster is up. In this way, OLMs dependency model ensures Operators stay working during their long lifecycle across multiple updates of the platform or other Operators. DiscoverabilityOLM advertises installed Operators and their services into the namespaces of tenants. They can discover which managed services are available and which Operator provides them. Administrators can rely on catalog content projected into a cluster, enabling discovery of Operators available to install. Cluster StabilityOperators must claim ownership of their APIs. OLM will prevent conflicting Operators owning the same APIs being installed, ensuring cluster stability. Declarative UI controlsOperators can behave like managed service providers. Their user interface on the command line are APIs. For graphical consoles OLM annotates those APIs with descriptors that drive the creation of rich interfaces and forms for users to interact with the Operator in a natural, cloud-like way. Prerequisites
Getting StartedCheck out the Getting Started section in the docs. InstallationInstall OLM on a Kubernetes cluster by following the installation guide. For a complete end-to-end example of how OLM fits into the Operator Framework, see the Operator Framework website and the Getting Started guide on OperatorHub.io. Contributing your OperatorHave an awesome Operator you want to share? Checkout the publishing docs to learn about contributing to OperatorHub.io. Subscribe to a Package and ChannelCloud Services can be installed from the catalog by subscribing to a channel in the corresponding package. Kubernetes-native ApplicationsAn Operator is an application-specific controller that extends the Kubernetes API to create, configure, manage, and operate instances of complex applications on behalf of a user. OLM requires that applications be managed by an operator, but that doesn't mean that each application must write one from scratch. Depending on the level of control required you may:
The primary vehicle for describing operator requirements with OLM is a ClusterServiceVersions can be collected into Learn more about the components used by OLM by reading about the architecture and philosophy. Key ConceptsCustomResourceDefinitionsOLM standardizes interactions with operators by requiring that the interface to an operator be via the Kubernetes API. Because we expect users to define the interfaces to their applications, OLM currently uses CRDs to define the Kubernetes API interactions. Examples: EtcdCluster CRD, EtcdBackup CRD DescriptorsOLM introduces the notion of “descriptors” of both See an example of a ClusterServiceVersion with descriptors Dependency ResolutionTo minimize the effort required to run an application on kubernetes, OLM handles dependency discovery and resolution of applications running on OLM. This is achieved through additional metadata on the application definition. Each operator must define:
Basic dependency resolution is then possible by finding, for each “required” CRD, the corresponding operator that manages it and installing it as well. Dependency resolution can be further constrained by the way a user interacts with catalogs. GranularityDependency resolution is driven through the There is no way to express a dependency on a particular version of an operator (e.g. Discovery, Catalogs, and Automated UpgradesOLM has the concept of catalogs, which are repositories of application definitions and CRDs. Catalogs contain a set of Packages, which map “channels” to a particular application definition. Channels allow package authors to write different upgrade paths for different users (e.g. alpha vs. stable). Example: etcd package Users can subscribe to channels and have their operators automatically updated when new versions are released. Here's an example of a subscription: apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: etcd
namespace: olm
spec:
channel: singlenamespace-alpha
name: etcd
source: operatorhubio-catalog
sourceNamespace: olm This will keep the etcd Catalogs are served internally over a grpc interface to OLM from operator-registry pods. Catalog data such as SamplesTo explore any operator samples using the OLM, see the https://operatorhub.io/ and its resources in Community Operators. Community and how to get involvedContributingCheck out the contributor documentation. Also, see the proposal docs and issues for ongoing or planned work. Reporting bugsSee reporting bugs for details about reporting any issues. Reporting flaky testsSee reporting flaky tests for details about reporting flaky tests. LicenseOperator Lifecycle Manager is under Apache 2.0 license. See the LICENSE file for details. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论