K8s ClusterAPIManaging the infrastructure of
Kubernetes Cluster
Who am I? Guus van Weelden
Who I’m working for? Loodse GmbH
Kubernetes?! Short recap
Kubermatic?! What’s that?
Node Deployment Solutions The old way
Machine API! Make K8s even greater
Demo time! Praise the demo gods!
Agenda
Guus van Weelden
Consultant & Developer
E-Mail: guus@loodse.com
Twitter: @guusvw91
Loodse
Company: Loodse GmbH
Focus: Container and Cloud Native technologies
Product: Kubermatic
Headquarter: Hamburg, Germany
Partner: Google Cloud Platform Partner
Member of CNCF and Linux Foundation
Kubernetes
Kubernetes is an open-source system for automating
deployment, scaling, and management of containerized
applications.
Kubernetes - a short recap
Kubernetes - a short recap
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
“Praise the demo gods” - Kelsey Hightower
Questions?
We are hiring!
Hamburg, Berlin, Munich, San Francisco,
Gdańsk, …
Homepage: www.loodse.com
Twitter: @Loodse
20% with
CDS2018_DEVOPS

Cluster api devopscon berlin

  • 1.
    K8s ClusterAPIManaging theinfrastructure of Kubernetes Cluster
  • 2.
    Who am I?Guus van Weelden Who I’m working for? Loodse GmbH Kubernetes?! Short recap Kubermatic?! What’s that? Node Deployment Solutions The old way Machine API! Make K8s even greater Demo time! Praise the demo gods! Agenda
  • 3.
    Guus van Weelden Consultant& Developer E-Mail: guus@loodse.com Twitter: @guusvw91
  • 4.
    Loodse Company: Loodse GmbH Focus:Container and Cloud Native technologies Product: Kubermatic Headquarter: Hamburg, Germany Partner: Google Cloud Platform Partner Member of CNCF and Linux Foundation
  • 5.
  • 6.
    Kubernetes is anopen-source system for automating deployment, scaling, and management of containerized applications. Kubernetes - a short recap
  • 7.
    Kubernetes - ashort recap
  • 9.
  • 10.
  • 11.
    Current approach • NeedOps 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
  • 12.
    Similar ideas atthe same time Kubicorn https://github.com/kubicorn/kubicorn Kube-node https://github.com/kube-node Archon https://github.com/kubeup/archon
  • 13.
    PersistentVolumes A higher-level storageabstraction • 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
  • 14.
  • 15.
    Cluster API Repos Inmigration https://github.com/kubernetes/kube-deploy New repo https://github.com/kubernetes-sigs/cluster-api
  • 16.
    Native integration • Devcan 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
  • 17.
    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.
  • 18.
    MachineController Watches for newMachine resources Provision the machine using provider-specific drivers • Machine joins the cluster • Kubelet creates the Node resource Machine Resources
  • 19.
    MachineClass (Optional) Encapsulate CloudProvider & 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
  • 20.
    MachineSet Group of similarnodes Integrates with node autoscaler Spec: • Replicas (number of nodes) • MachineController • MachineClass Machi ne Class Machi ne Machi ne
  • 21.
    MachineSetController Machi ne Class Machi ne Machi ne Create and deletenode resources Ensures {Cluster Nodes} == machineset.replicas
  • 22.
    Reliable mechanism forcreating, updating and managing Machines Deployment manages replica changes, including rolling updates and scaling ...
  • 23.
    DEMO TIME “Praise the demogods” - Kelsey Hightower
  • 24.
  • 25.
    We are hiring! Hamburg,Berlin, Munich, San Francisco, Gdańsk, … Homepage: www.loodse.com Twitter: @Loodse
  • 26.