mirror of
https://github.com/apricote/presentations.git
synced 2026-01-13 21:11:02 +00:00
apricotes notes
This commit is contained in:
parent
b613502956
commit
880038d125
4 changed files with 199 additions and 0 deletions
111
kubebuilder/content.md
Normal file
111
kubebuilder/content.md
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
# Kubebuilder
|
||||
|
||||
---
|
||||
|
||||
### Content
|
||||
|
||||
- CRDs
|
||||
- Controller / Operator
|
||||
- Kubebuilder
|
||||
- Live Coding
|
||||
- Real Life Use Cases
|
||||
|
||||
---
|
||||
|
||||
## CRDs
|
||||
|
||||
---
|
||||
|
||||
## Controller
|
||||
|
||||
> A **control loop** that watches the state [...] and makes changes attempting to move the **current state towards the desired state**.
|
||||
|
||||
- [Kubernetes Glossary](https://kubernetes.io/docs/reference/glossary/?fundamental=true#term-controller)
|
||||
|
||||
--
|
||||
|
||||
## Controller
|
||||
|
||||
- integrated in `kube-apiserver` or `kube-controller-manager`
|
||||
- watch builtin k8s objects (`core`, `apps`, `batch`)
|
||||
- logic ontop of data
|
||||
- create sub-resources
|
||||
|
||||
--
|
||||
|
||||
## Controller
|
||||
|
||||
### deployment controller
|
||||
|
||||
- watches `Deployments`
|
||||
- creates and deletes `ReplicaSets`
|
||||
- scales `ReplicaSets` for rolling deployments
|
||||
|
||||
--
|
||||
|
||||
## Controller
|
||||
|
||||
### kubelet
|
||||
|
||||
- watches `PodSpecs`
|
||||
- starts/stops containers
|
||||
|
||||
--
|
||||
|
||||
## Operator
|
||||
|
||||
- term coined by CoreOS
|
||||
- same as controller but for CRDs
|
||||
- integrate operational knowledge
|
||||
- provide usability features
|
||||
- updates
|
||||
- scaling
|
||||
- backups
|
||||
- integration with k8s
|
||||
|
||||
---
|
||||
|
||||
## Kubebuilder
|
||||
|
||||
---
|
||||
|
||||
## Live Coding
|
||||
|
||||
Check out the source at
|
||||
https://github.com/apricote/kubebuilder-poke-sync
|
||||
|
||||
---
|
||||
|
||||
## Real Life Use Cases
|
||||
|
||||
### Databases
|
||||
|
||||
- scaling
|
||||
- configuration
|
||||
- disaster recovery
|
||||
- e.g. [zalando/postgres-operator](https://github.com/zalando/postgres-operator)
|
||||
- e.g. [mongodb-enterprise-kubernetes](https://github.com/mongodb/mongodb-enterprise-kubernetes)
|
||||
|
||||
--
|
||||
|
||||
## Real Life Use Cases
|
||||
|
||||
### Provisioning external resources
|
||||
|
||||
- call external APIs
|
||||
- expose external state in cluster
|
||||
- e.g. [jetstack/cert-manager](https://github.com/jetstack/cert-manager)
|
||||
- e.g. [awslabs/aws-service-operator](https://github.com/awslabs/aws-service-operator)
|
||||
|
||||
--
|
||||
|
||||
## Real Life Use Cases
|
||||
|
||||
### Application Lifecycle Managment
|
||||
|
||||
- deployment
|
||||
- supervised updates
|
||||
- health checking + alerts
|
||||
- Helm Chart++
|
||||
- e.g. [gitlab-operator](https://gitlab.com/charts/components/gitlab-operator)
|
||||
- e.g. [Tenant Operator](https://blog.kolide.com/using-a-kubernetes-operator-to-manage-tenancy-in-a-b2b-saas-app-250f1c9416ce)
|
||||
Loading…
Add table
Add a link
Reference in a new issue