Skalierbare Container-Infrastrukturen - Oliver Liebel

Skalierbare Container-Infrastrukturen

Das Handbuch für Admins & DevOps-Teams, inkl. Docker und Container-Orchestrierung mit Kubernetes und OpenShift

(Autor)

Buch | Hardcover
1260 Seiten
2020 | 3. Auflage
Rheinwerk (Verlag)
978-3-8362-7772-3 (ISBN)
79,90 inkl. MwSt
  • Titel gebraucht verfügbar
  • Artikel merken
Studibuch Logo

...gebraucht verfügbar!

Die dritte, komplett überarbeitete Auflage der bewährten Container-Referenz liefert Ihnen tiefes, fundiertes Profi-Know-how und praxiserprobte Anleitungen. Nutzen Sie aktuelle Container-Technologien auf Basis von Kubernetes und OpenShift für Skalierbarkeit, Flexibilität, Hochverfügbarkeit und Planungssicherheit!

Virtualisierung hat die nächste Evolutionsstufe längst erreicht – hochskalierbare, automatisierte und ausfallsichere Container-Umgebungen: Leistungsfähige IaaS/IaC-Mechanismen rollen Ihre virtuelle Infrastruktur auf Knopfdruck vollautomatisiert aus und provisionieren Ihre Cluster und Applikationen in jedem gewünschten Versionsstand.

Mit GitOps-basierten, vollautomatisierten CI/CD-Pipelines, automatischer Skalierung von Applikationen und sogar Cluster-Nodes on-demand, flexiblen und leistungsfähigen Service-Meshes und Serverless-Architekturen sowie intelligenten Operatoren machen Sie Ihre Infrastruktur fit für die Zukunft.


Container: Theorie und Praxis
Zahlreiche neue Produkte, Konzepte und Technologien versprechen Ihnen immer effizientere Container-Umgebungen. Wie seine erfolgreichen Vorgänger lichtet auch diese Auflage das Dickicht der zahlreichen Versprechungen, grenzt Hype und Wunschdenken von der Realität ab und zeigt Ihnen, was Sie wirklich brauchen.

Kubernetes, OpenShift und mehr
Mit diesem umfassenden Handbuch verstehen Sie die Technologien und Konzepte hinter modernen CI/CD-Mechanismen und Container-Clustern – On-Premise und in der Cloud. Setzen Sie Kubernetes oder OpenShift mithilfe der praxiserprobten Tipps professionell ein. Automatisieren Sie Ihre Builds mit GitOps-basierten Pipelines und orchestrieren Sie Ihre Container-Infrastrukturen anhand bewährter und durchdachter Best Practices.

Ausfallsicherheit, Skalierbarkeit, maximale Automation
Erfahren Sie, wie Sie mit IaaS/IaC-Mechanismen, Operatoren, GitOps-Pipelines und anderen Komponenten Ihre Infrastrukturen und Cluster auf Knopfdruck ausrollen können. Stellen Sie automatisiert und containerisiert hochverfügbare und skalierbare Storage Backends für Ihre Container-Cluster zur Verfügung, und integrieren Sie Ihre IDM-Backends mit OAuth2 und Keycloak als zentrale Authentifizierungslösungen in Ihre Container-Cluster. Lassen Sie Ihre Cluster mit Autoscalern auf Lastanforderungen und mit intelligenten Operatoren auf Probleme automatisch reagieren.

Monitoring und Sicherheit – auch für Container-Cluster relevant
Die Anzahl der beweglichen Teile in Container-Clustern nimmt kontinuierlich zu, und damit die Zahl der potentiellen Angriffsvektoren und Sicherheitslücken. Sichern Sie sich mit den richtigen und umfassenden Security-Konzepten und -Lösungen rechtzeitig ab und behalten Sie mit den passenden Logging- und Monitoring-Stacks jederzeit den Überblick für einen reibungslosen Betrieb.

Aus dem Inhalt:
Container Engines und Tools: Podman, Buildah, Skopeo, CRI-O, Singularity, Docker
Trusted Registries, Security-Konzepte
IaaS- und IaC-Mechanismen für maximale Infrastruktur-Automation
Planung, Installation und fortgeschrittene Orchestrierung hochverfügbarer Kubernetes- und OpenShift-Cluster, On-Premise und in der Cloud
(Custom-)Metrics, Monitoring und Autoscaling mit Prometheus, HPAs, VPAs und Cluster-Autoscalern, zentrales Logging mit EFK-Stacks
Integration von IDM-Backends per Keycloak und OAuth2
Services, Ingress und Advanced Routing mit Service Meshes, Serverless mit Knative
Maximale Automation im Cluster: Operatoren indeep, Build eigener Operatoren mit dem Operator-SDK und Helm, Ansible und Go
Security-Suiten für komplexe Container-Cluster: Image und Registry Scanning, Cluster Behavior Analysis und Responses
SDS-Cluster automatisiert und containerisiert ausrollen
Clusterfähige Storage Backends in Multi-Tier-Architekturen mit Auto-Provisionern on-demand in der Cloud und On-Premise

Dipl.-Ing. Oliver Liebel ist LPI-zertifizierter Linux-Enterprise-Experte und offizieller Business Partner von SUSE und Red Hat. Als Dozent, Autor, Berater und Projektleiter ist er seit vielen Jahren für namhafte Unternehmen, internationale Konzerne und Institutionen auf Landes- und Bundesebene tätig. Dabei blickt er auf 25 Jahre Berufserfahrung zurück.




TEIL I. Brave New World? ... 41




1. Container -- die Lösung für alles ... oder etwa doch nicht? ... 43



1.1 ... Vorwort zur 3. Auflage ... 44


1.2 ... Vorbemerkungen ... 52


1.3 ... Was dieses Buch sein bzw. nicht sein soll ... 56


1.4 ... Wie dieses Buch zu lesen ist ... 56


1.5 ... Welche Teile des Buchs sind neu, welche wurden stark überabeitet? ... 57


1.6 ... Verwendete Plattformen und Versionsspezifikationen ... 59





2. Warum Container? ... 61



2.1 ... Wer braucht's? ... 61


2.2 ... Überblick: IaaS, CI/CD, GitOps -- und maximale Automation ... 62





TEIL II. Container-Konzepte, -Engines und -Tools ... 65




3. Container- und Infrastruktur-Konzepte ... 67



3.1 ... World of Tiers -- Teil 1 ... 67





4. Container-Engines und -Tools ... 71



4.1 ... Die Container-Engines CRI-O, Singularity und containerd ... 71


4.2 ... Docker als Container-Engine ... 72


4.3 ... Storage-Driver und Local Volumes ... 115


4.4 ... SSSD -- konsistente ID-Mappings für persistente Datenspeicherung in Container-Clustern ... 128


4.5 ... »Docker-less«: Buildah, Podman und Co. -- Container und Images ohne Docker erstellen und verwalten ... 141


4.6 ... Image-Build mit Buildah ... 142


4.7 ... Image-Build mit Kaniko ... 155


4.8 ... Podman ... 157


4.9 ... Podman vs. crictl ... 169





5. Container Security (1) -- Konzepte und Tasks ... 173



5.1 ... Trusted Images ... 174


5.2 ... Trusted Registries und Images ... 176


5.3 ... Container-Capabilities und Privilegien ... 182


5.4 ... Skopeo -- der sichere Transportdienstleister ... 186


5.5 ... »Manuelle« Security und CVE-Scans? ... 200


5.6 ... TLS/SSL ... 202





6. Die private Trusted Registry ... 203



6.1 ... Die Registry im Detail ... 203


6.2 ... Registries: Vorbereitungen und Betrieb ... 206


6.3 ... Registry-Beispiel: Sonatype Nexus ... 210


6.4 ... Quay und weitere Registry-Alternativen ... 222





7. Slim Container-OS und Infrastruktur-Automation mit IaaS/IaC ... 225



7.1 ... Slim Container-OS ... 225


7.2 ... IaaS, IaC und Infrastruktur-Automation ... 228


7.3 ... IaaS/IaC-Tools am Beispiel von Terraform ... 230


7.4 ... Hands On: Terraform-basierter VM-Rollout auf vSphere ... 233





TEIL III. Skalierbare Container-Cluster und Container-Orchestrierung ... 243




8. Container-Cluster -- von Planern und Orchestern ... 245



8.1 ... The Big Picture ... 245


8.2 ... World of Tiers -- Teil 2 ... 246


8.3 ... Vorbereitungen (On-Premises-Cluster) ... 247


8.4 ... Pre-Flight Requirements: Zeitsynchronisation ... 248


8.5 ... Pre-Flight Requirements: pssh ... 253





9. Schlüsselmeister im Container-Cluster: Key/Value-Stores und Service-Registry/Discovery ... 257



9.1 ... Key/Value-Stores ... 258


9.2 ... Key/Value-Stores im Detail ... 259


9.3 ... etcd als Key/Value-Store für Kubernetes/OpenShift ... 264





10. Kubernetes (K8s) ... 269



10.1 ... Kubernetes im Überblick ... 269


10.2 ... Kubernetes-Komponenten ... 273


10.3 ... Dienste auf den Kubernetes-Master-Nodes ... 275


10.4 ... Dienste auf den Kubernetes-Workern aus technischer Sicht ... 284


10.5 ... Networking in Kubernetes ... 288


10.6 ... Kubernetes-Setup-Varianten ... 294





11. Die Kubernetes-Control-Plane als Microservice-Architektur ... 297



11.1 ... Vorbetrachtungen zum Setup einer Pod-basierten Kubernetes-Control-Plane ... 298


11.2 ... CRI-O als Container-Engine für Multimaster-Kubernetes-Cluster ... 299


11.3 ... Kubernetes-Multimaster-Setup ... 308


11.4 ... Pod-basiertes Overlay-Netz ... 326


11.5 ... Arbeiten mit Pod-basiertem etcd ... 330


11.6 ... Erweiterte Hochverfügbarkeitsbetrachtungen (Pacemaker) ... 333





12. Kubernetes-Cluster mit Singularity als Container-Engine ... 343



12.1 ... Singularity als HPC-Container-Runtime für Kubernetes ... 343





13. Kubernetes-Cluster: Ressourcen verstehen und verwalten ... 351



13.1 ... Überblick: Tools zum Deployment von Kubernetes-Ressourcen ... 351


13.2 ... kubectl ... 353


13.3 ... Kleine Kubernetes-Cluster und »Taint Nodes« ... 373


13.4 ... (Worker-)Node-Kapazitäten ... 375


13.5 ... Ressourcen im Kubernetes-Cluster ausrollen ... 381


13.6 ... Pods ... 389


13.7 ... Pod-Sidecar-Patterns und das Applikations-Design ... 395


13.8 ... Pods per Manifest erstellen und modifizieren ... 399


13.9 ... Pod/Container-Phasen und -Zustände, Debugging ... 412


13.10 ... Pod- und Container-Ressourcen, -Requests und -Limitierungen sowie QoS und Capabilities ... 420


13.11 ... Attribute von Pods und Containern auslesen, setzen und nutzen ... 436


13.12 ... Pods und ConfigMaps ... 441


13.13 ... Pods und Init-Container ... 455


13.14 ... Health-Checks: Live- und Readiness Probes ... 460


13.15 ... Jobs ... 479


13.16 ... Deployments (und inkludierte ReplicaSets) ... 484


13.17 ... DaemonSets ... 507


13.18 ... StatefulSets ... 512


13.19 ... Entscheidungshilfe: Wann Deployment, wann DaemonSet, wann StatefulSet? ... 514


13.20 ... Label und Constraints ... 516


13.21 ... Namespaces: Limits und Quotas ... 521


13.22 ... Namespaces: Multi-Tenancy und Security-Aspekte ... 534


13.23 ... CustomResourceDefinitions ... 539


13.24 ... Services ... 542


13.25 ... Alternative Rollout-Verfahren: Helm (V3) ... 592


13.26 ... Alternative Rollout-Verfahren: Kustomize ... 600


13.27 ... Kubernetes-Volumes und Datenpersistenzen ... 613


13.28 ... Dynamic Storage Classes / Auto-Provisioner ... 632


13.29 ... Kubernetes CSI -- Custom Storage Interface ... 643


13.30 ... EFK: Zentrales Logging mit ElasticSearch, Fluentd und Kibana ... 645


13.31 ... Cluster-Monitoring mit Prometheus ... 657


13.32 ... Full-Stack Monitoring: APM mit Dynatrace ... 668


13.33 ... HPA -- Horizontaler Pod-Autoscaler ... 677


13.34 ... Vertical Pod Autoscaler (der »Optimierer«) ... 704


13.35 ... Cluster Autoscaler ... 715


13.36 ... Ingress (Konzept) ... 716


13.37 ... Service-Meshes ... 721


13.38 ... Service-Meshes in der Praxis mit Istio ... 728


13.39 ... Beispiel für das Mesh-Routing zu einer Applikation mit verschiedenen Release-Tracks ... 739


13.40 ... Serverless und Knative ... 770


13.41 ... K8s-NetworkPolicies ... 784


13.42 ... Kubernetes: Authentifizierung und Autorisierung (Basics) ... 795


13.43 ... Kubernetes: Authentifizierung und Autorisierung (IDM-basiert) ... 824





14. Operatoren: Der Mini-Admin im Container ... 833



14.1 ... Vorbetrachtungen zum Thema Operatoren ... 833


14.2 ... Hands-on: etcd-Operator ... 838


14.3 ... Operator-Typen und Maturitäts-Level: Helm vs. Ansible vs. Go ... 848


14.4 ... Operator-Typen im funktionalen Vergleich: Helm vs. Ansible vs. Go ... 849


14.5 ... Red Hats Operator-SDK ... 854


14.6 ... Helm-basierter Operator: CockroachDB ... 856


14.7 ... Ansible-basierter Operator: Memcached ... 861


14.8 ... Go-basierter Operator: PodSet ... 869


14.9 ... Fazit ... 882





15. Federated Cluster ... 883



15.1 ... Das Federated-Konzept ... 883


15.2 ... Federated Services ... 884


15.3 ... Federated Controller Manager und Scheduling ... 885


15.4 ... RZ-Failures und andere Punkte, die Sie beachten sollten ... 886


15.5 ... Kosten und Latenzen ... 886


15.6 ... Setup und andere Kopfschmerzen -- Fazit ... 887





16. K8s: Debugging, Rolling Upgrades, the Road ahead ... 889



16.1 ... Debugging und Troubleshooting ... 889


16.2 ... kubeadm-basierte Setups upgraden ... 891


16.3 ... Kubernetes 1.19 and beyond ... 894





TEIL IV. High-Level-Setup- und Orchestrierungs-Tools für Kubernetes-basierte Container-Infrastrukturen (On-Premises und in der Cloud) ... 897




17. OpenShift ... 899



17.1 ... Vorbetrachtungen und Historisches ... 899


17.2 ... OpenShift-Flavours ... 901


17.3 ... Unterschiede und Ergänzungen zu Kubernetes (Auszüge) ... 905


17.4 ... OpenShift-Networking im Überblick ... 907


17.5 ... Konzept: OpenShift Router -- »Ingress deluxe« ... 912





18. OpenShift 4.x and beyond ... 917



18.1 ... Behind the scenes ... 918


18.2 ... Unterstützte Plattformen ... 919


18.3 ... What's new -- and what's not ... 920





19. OpenShift-Setup ... 923



19.1 ... Setup von OpenShift 4.5 (AWS-Cloud) ... 923


19.2 ... Setup von OpenShift 4.5 auf Bare Metal oder VM ... 942


19.3 ... Post-Install-Tasks bei On-Prem-Installationen ... 969


19.4 ... Exkurs: Full Disconnected Bare-Metal/VM-Install ... 971


19.5 ... OpenShift 4.5 Installer Provisioned Infrastructure (IPI) mit vSphere ... 979





20. OpenShift-Administration ... 989



20.1 ... CLI-Tools ... 989


20.2 ... Administration per GUI ... 994


20.3 ... Applikation ausrollen (oc new-app) und externer Zugriff darauf ... 995


20.4 ... OpenShift-Build-Prozesse (oc new-build) ... 1003


20.5 ... User-, Token- und Role-Management in OpenShift ... 1012


20.6 ... Accounts, Berechtigungskonzepte und Constraints ... 1019


20.7 ... Imagestreams ... 1028


20.8 ... DeploymentConfigs (dc) ... 1037


20.9 ... OpenShift-Router und der Ingress-Operator ... 1040


20.10 ... DNS-Customizing ... 1053


20.11 ... Knative unter OpenShift via Operator ... 1054


20.12 ... Istio-Mesh per Operator ... 1056


20.13 ... MachineSets, MachineConfigs und Cluster-Autoscaler unter OpenShift ... 1059


20.14 ... OpenShift Infrastructure-Nodes ... 1064


20.15 ... AWS Dynamic Storage Provisioning (EBS/EFS) unter OpenShift ... 1067





21. Container-Security (2) -- Full-Featured Security Stack ... 1079



21.1 ... Vorbetrachtungen ... 1079


21.2 ... NeuVector ... 1081


21.3 ... Bereitstellung der benötigten Images ... 1084


21.4 ... Setup ... 1087





22. Cloud-Hosted Kubernetes am Beispiel von GKE ... 1097



22.1 ... Kubernetes, Google und der Rest der Welt ... 1097


22.2 ... gcloud -- CLI-basierte Cluster-Installation ... 1102


22.3 ... GKE-Storage ... 1110


22.4 ... Direkter Zugriff auf GKE-(CoS-)Nodes ... 1115





23. CI/CD-Pipelines und GitOps ... 1117



23.1 ... Vorbetrachtungen zu CI/CD in der Praxis ... 1118


23.2 ... GitOps? ... 1119


23.3 ... GitOps-Pipeline-Modelle ... 1121


23.4 ... GitOps-Demo (CI/CD) unter GKE mit Cloud Build ... 1125


23.5 ... GitOps mit Tekton (CI-Fokus) -- Vorbetrachtungen ... 1139


23.6 ... Tekton Setup ... 1143


23.7 ... Beispiel: Tekton Pipeline (Build, Push & Deploy) ... 1153


23.8 ... Pipeline-Trigger mit Tekton ... 1160


23.9 ... GitOps mit ArgoCD (CD-Fokus) ... 1167


23.10 ... GitOps (CD) mit FluxCD ... 1173


23.11 ... Fazit ... 1180





TEIL V. Software-Defined Storage für verteilte Container-Infrastrukturen ... 1181




24. Software-Defined Storage für Container-Cluster ... 1183



24.1 ... SDS-Funktionsprinzipien ... 1184


24.2 ... Ceph ... 1185


24.3 ... Ceph-Bereitstellungsverfahren für Container-Cluster ... 1189


24.4 ... Containerisiertes Setup des Ceph-Clusters (cephadm/Podman) ... 1190


24.5 ... Rollout des Ceph-Clusters ... 1191


24.6 ... Ceph-RBD-Provisioner via ceph-csi ... 1200


24.7 ... CephFS-Provisioner via ceph-csi ... 1206


24.8 ... Containerized Ceph mit Rook ... 1211


24.9 ... Quay-Registry mit NooBaa-Object-Store ... 1228


24.10 ... OCS -- OpenShift Container Storage ... 1238


24.11 ... Weitere Storage-Anbieter für Kubernetes-basierte Cluster ... 1243





25. Was war, was ist, was sein wird ... 1245



25.1 ... Container-Cluster und Microservices als Allheilmittel? ... 1245


25.2 ... The Road Ahead ... 1245





Index ... 1247

»Wer Container, Kubernetes und OpenShift verstehen möchte, hält mit diesem dicken Wälzer das richtige Buch in den Händen. Humorvoll und unterhaltsam geschrieben und dennoch bis ins Detail durchleuchtet.« Hermann Woock, oose Innovative Informatik 202111

»Wer Container, Kubernetes und OpenShift verstehen möchte, hält mit diesem dicken Wälzer das richtige Buch in den Händen. Humorvoll und unterhaltsam geschrieben und dennoch bis ins Detail durchleuchtet.«

Erscheinungsdatum
Verlagsort Bonn
Sprache deutsch
Maße 190 x 240 mm
Einbandart gebunden
Themenwelt Informatik Betriebssysteme / Server Virtualisierung
Mathematik / Informatik Informatik Netzwerke
Schlagworte Ansible • Atomic • Buildah • Container-Cluster • Continous Delivery • CoreOS • Deployment • GitOps • Hand-Buch Bücher lernen Grundlagen Kurse Tipps Workshops Tutorials Wissen Ausbildung Schulung • Hochverfügbarkeit • istio • Mesos • Microservices • Nomad • OpenShift • Orchestrierung • Podman • RHEL • Scale out • Skopeo • SUSE • systemd
ISBN-10 3-8362-7772-7 / 3836277727
ISBN-13 978-3-8362-7772-3 / 9783836277723
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich