Kubernetes Operator
文章目录
概念
“A Kubernetes Operator
is an abstraction for deploying non-trivial applications on Kubernetes. It wraps the logic for deploying and operating an application using Kubernetes constructs. As an example, the etcd operator provides an etcd cluster as a first-class object. Gone are the days of deploying an etcd cluster using a complicated collection of stateful sets, crds, services, and init containers to manage bootstrapping and lifecycle management, et cetera.” –Richard Laub, staff cloud engineer at Nebulaworks
Kubernetes Operators
provide a way to extend Kubernetes functionality with application specific logic using custom resources and custom controllers. With the Operator pattern
, you can encode domain knowledge of specific applications into an Kubernetes API extension. Using this, you can create, access and manage applications with kubectl, just as you do for built-in resources such as Pods.
“Operators
are software written to encapsulate all of those operational considerations for a specific Kubernetes application and ensure that all aspects of its lifecycle, from configuration and deployment to upgrades, monitoring, and failure-handling, are integrated right into the Kubernetes framework and invoked when needed. The Operator Framework provides an SDK to handle calling the Kubernetes API, making it easier to focus on your own business logic. If it makes sense for your app, you can extend the Kubernetes API by adding domain-specific resource types – for example, ‘backup’ – which can then be used via the standard Kubernetes tooling such as kubectl.” –Jeremy Thompson, CTO at Solodev
参考
- How to explain Kubernetes Operators in plain English
- Best practices for building Kubernetes Operators and stateful apps
- Kubernetes Operators in Depth
- OperatorHub.io
- Awesome Operators in the Wild
- Automating stateful applications with Kubernetes Operators
- helm-to-operator
- Tool for creating a Kubernetes Operator from a Helm Chart
上次更新 2019-07-26
原始文档 查看本文 Markdown 版本 »