K8s ClusterAPIManaging Kubernetes Cluster
Sebastian Scheele
CEO & Co-Founder
Twitter: @hrscheele
Company:
Focus:
Product:
Headquarter:
Partner:
Loodse
Currently Supported Providers
Bare Metal
Node Deployment Solution
Current approach
• Need Ops to scale the cluster
• No generic approach
• Each implementation needs
specific knowledge
• Scaling of new nodes requires
external dependencies
• No generic node auto scaling
• Huge effort to deploy k8s on a
different platform
Node Node Node
Master
Node
Similar ideas at the same time
Kubicorn
https://github.com/kubicorn/kubicorn
Kube-node
https://github.com/kube-node
Archon
https://github.com/kubeup/archon
PersistentVolumes
A higher-level storage abstraction
• insulation from the resource provider
Admins provision them, users claim them
Can be dynamically created using a StorageClass
Independent lifetime from their consumers
Dynamically “scheduled” and managed
Pod
Claim
Cluster API
Cluster API Repos
In migration
https://github.com/kubernetes/kube-deploy
New repo
https://github.com/kubernetes-sigs/cluster-api
Native integration
• Dev can scale the cluster
• Pets vs cattle for nodes
• Implementation of generic auto
scaling possible
• Very similar setup for different
provider
kubectl create machines
Node Node Node
Master
Node
Machines/Nodes
• A "Machine" is the declarative spec for a Node,
as represented in Kubernetes core.
• After provisioning a new Node matching the
Machine spec is registered.
MachineController
Watches for new Machine resources
Provision the machine using provider-specific drivers
• Machine joins the cluster
• Kubelet creates the Node resource
Machine
Resources
MachineClass (Optional)
Encapsulate Cloud Provider & OS specific details
Spec
• Cloud Provider credentials
• Machine type (e.g. t2.medium)
• Provisioning Details
• Files (i.e. systemd unit, ssh keys)
• Execute arbitrary commands via ssh
Machine
Resources
Class
MachineSet
Group of similar nodes
Integrates with node autoscaler
Spec:
• Replicas (number of nodes)
• MachineController
• MachineClass Machi
ne
Class
Machi
ne
Machi
ne
MachineSetController
Machi
ne
Class
Machi
ne
Machi
ne
Create and delete node resources
Ensures {Cluster Nodes} ==
machineset.replicas
Reliable mechanism for creating, updating
and managing Machines
Deployment manages replica changes,
including rolling updates and scaling
...
DEMO
TIME
Questions?
Early Bird
until April 30
20% with
CDS2018_COMMUNITY

Kubernetes ClusterAPI