20180503_talk_4
20180503_talk_4
- K8s Multicluster without Fed
- Overview
- Break up the pb
- Bring your own worflows
- Tectonic Multi-clusters
K8s Multicluster without Fed
Overview
Multi-clusters
- MultiCloud
- MultiRegion
- clusters / teams
- clusters / ....
- …
Hard to maintain and manage
Federation
Idea:
* Federation API Server
* Above API servers
* …
Issues ?
* Security
* Operations
- FederationApiServer is a full controlplane
- Need HA, but etcd
accross wan is not recommanded
=> Complicated
Break up the pb
Expectations
App Owner POV
* CI/CD for my App
* Cluster discovery
* Hope failover between clusters
* Credentials mgmt ?
Infra Admin POV
* Connect and track clusters
* Ensure overall security
* Lock down
* Resources Mgmt
/!\ about muti-tenant clusters
-> BEWARE of resources exhaustion
Existing resources
Cluster Registry (Tectonic)
* kubectl get clusters
-> Is CRD
-> BUT Lives on 1 cluster, Need to mesh them …
AccessControl
* Users
- Apps Owners
- Enginner
- SRE
- Bots
* Stages / Environment
-> Hard with policies
Bring your own worflows
Usage expectations
Apps & Config: same concerns:
* CI / CD
* Deployment policy ?
Apps Owner:
* version
* Config & secrets
SRE
* RBACs
Tectonic Multi-clusters
Based on
ClusterRegistry
* Sync to all clusters
* USe registry as selector for polyc
Sync Policy
* Agent running on cluster
* Focus on RBAC
* CRUD namespaces
* Updated immediately across clusters
kind: ClusterPolicy
Example
Cluster registry |
---|
Regions1 |
--------------------------------- |
Prod |
--------------------------------- |
Common Roles and Bindings |
Better Security:
* No cluster need to access all clusters
* ServiceAccounts can be audited and revoked
* ServiceAccounts only ready Clusters and ClusterPolicy
More specialized software
Least complex
* Bash script
* Jenkins
More Complex
* Operatos
++ Specialized controller for an app
++ Model apps using CRDs
++ Use native k8s objetcs and concepts
– Requires k8s native app
Smarter
* Federationv2
– This is a vast problem space
++ Don’t have to use all parts
++ Polices are modeled
-> Implemented as Aggregated API
-> Secured with ServiceAccounts
-> Will be possible to write custom scheduler