Kubernetes is een open source platform dat containeroperaties automatiseert. Het vereenvoudigt veel handmatige processen met betrekking tot de implementatie en schaalvergroting van toepassingen in containers. Op deze manier kunt u groepen hosts met Linux-containers combineren en Kubernetes helpt u deze clusters effectief te beheren, die knooppunten in openbare, particuliere of hybride clouds kunnen overspannen. Daarom is Kubernetes een ideaal platform voor het hosten van cloudapplicaties die snel moeten worden geschaald, zoals real-time datastreaming via Apache Kafka.
Kubernetes is oorspronkelijk ontwikkeld door Google engineers. Het bedrijf was een van de eersten die met containers begon te werken en verklaarde publiekelijk dat alles bij Google in containers werkt. Google genereert meer dan 2 miljard implementaties per week – allemaal op het interne Borg-platform. Borg was de voorloper van Kubernetes en de lessen die zijn getrokken uit de ontwikkeling ervan door de jaren heen hebben de Kubernetes-technologie aanzienlijk beïnvloed.
Managed DevOps
Kubernetes Functies
Het belangrijkste voordeel van het gebruik van Kubernetes, vooral als u de werkende versie van de applicatie voor de cloud moet optimaliseren, is om een platform te krijgen voor het plannen en uitvoeren van containers op clusters van fysieke of virtuele machines. Meer in het algemeen helpt het om een robuuste containergebaseerde infrastructuur volledig te implementeren in productieomgevingen.
Met Kubernetes kunt u:
- containers organiseren op meerdere hosts;
- maximaliseer het gebruik van resources die nodig zijn om bedrijfsapplicaties uit te voeren;
- beheer en automatiseer implementatie en updates van applicaties;
- mount en voeg opslag toe voor het uitvoeren van stateful-toepassingen;
- schaal containerapplicaties en hun resources on the fly;
- controleer de prestaties en zelfherstel van applicaties met behulp van autofill, autorun, auto-replicatie en autoscaling.
Kubernetes vertrouwt echter op andere projecten om alle functies volledig te bieden. Met behulp van andere open-source projecten kunt u het volledige potentieel van Kubernetes realiseren:
- register – via Atomic Registry of Docker Registry projecten;
- netwerken – via OpenvSwitch en intelligente randroutering;
- Telemetrie-via Heapster, Kibana, Hawkular en elastic;
- beveiliging-via LDAP, SELinux, RBAC en OAUTH;
- automatisering – met de toevoeging van Ansible playbooks voor installatie en cluster lifecycle management.
Enkele van de meest voorkomende termen die u zullen helpen Kubernetes te begrijpen:
- De master is een machine die Kubernetes-knooppunten beheert.
- Node (node) – machines die toegewezen taken uitvoeren. In Kubernetes worden ze bestuurd door een meester.
- Pod is een groep van één of meer containers die op één knooppunt worden ingezet. Alle containers in de pod delen een IP-adres, IPC, hostnaam en andere bronnen. De pods abstraheren het netwerk en de opslag van de basiscontainer. Dit maakt het gemakkelijker om containers binnen het cluster te verplaatsen.
- Replicatiecontroller-bepaalt hoeveel identieke kopieën van de haard in het cluster moeten worden uitgevoerd.
- Service-scheidt de werkdefinities van de haarden. Kubernetes-proxyservers ontvangen automatisch serviceverzoeken voor de gewenste pod, ongeacht waar deze zich in het cluster bevindt.
- Kubelet – deze service draait op knooppunten en leest containermanifestaties, en zorgt voor de lancering en uitvoering ervan.
- Kubectl is een command line configuratie tool voor Kubernetes.