Preface
- Who is this book for?
- Typographic conventions
- Please help improve this book!
- Current Published Book Version Information
- About the Author
Introduction
- Examples Repository
- Other resources
Chapter 1 - Hello, Kubernetes!
- Kubernetes Origins
- Is Kubernetes Right for You?
- Kubernetes Environments
- Instructions for Minikube
- Building the example Docker image
Chapter 2 - Containers
- Why does Kubernetes use containers?
- Container History: Vendor Wars
- Docker, containerd, and runC
rktand CoreOS- Kubernetes Container Runtime
- CRI-O
- Modern Container Runtime options
- How do you build a container? Docker vs Buildah
- Instructions for ‘Hello Go’ app
- Build the ‘Hello Go’ Docker container image
- Push the container image to a private Docker registry
Chapter 3 - Deploying apps
- Creating a Linode Cluster for cloud-based testing
- Deploying Hello Go into Kubernetes
- Exposing the Hello Go App
- Scaling the Hello Go App
- Updating the Go App
- Rolling back the Deployment
Chapter 4 - Real-world apps
- Installing Drupal on a Traditional LAMP server
- LAMP Server Setup for drupal
- Automating the Installation
- Installing Drupal on Kubernetes using Bitnami’s Helm Chart
- Install Helm
- Install the Drupal Chart
- Exposing a LoadBalancer in Minikube
- Changing Chart Options
- Cleaning Up
- Drupal Directly in Kubernetes - Let’s Do it [Mostly] Right!
- Deploying the Drupal Kubernetes Manifests
Chapter 5 - Scaling Drupal in k8s
- Fixing the scalability issue with Drupal Pods
- Shared Storage Options
- Rook and Ceph
- NFS
- Set up an NFS server
- Reconfigure the Drupal PersistentVolumeClaim for NFS
- Set up NFS client provisioner in K8s
- Deploy Drupal and MySQL (MariaDB)
- Save a File and observe it
- Scale Drupal up… and down!
- Use Horizontal Pod Autoscaling (HPA)
- Set up
metrics-server - Configuring HPA for Drupal
- Testing HPA for Drupal
- Scaling Databases
Chapter 6 - DNS, TLS, Cron, Logging
- Setting things up from Episode 5
- DNS and Ingress setup for Drupal
- Set up an NGINX Ingress Controller
- Set up Ingress for Drupal
- External DNS Integration
- Set up TLS with cert-manager and Let’s Encrypt
- Keeping Drupal Happy with a CronJob
- Monitoring Drupal’s Logs
- Using an External SaaS Log Aggregator
- Running your own ELK Stack
- Relying on a Service Mesh
- Using your cloud provider’s solution
Chapter 7 - Hello, Operator!
- What are Operators?
- The Concept
- The Execution
- Why not use an Operator?
- Popular Kubernetes Operators
- Build your own Operator
- Building an Operator with Operator SDK
- Any language, including Python or Rust!
- Conclusion
Chapter 8 - Kube, Meet Pi
- Heavy Metal Kubernetes
- Start with Training Wheels
- The Raspberry Pi makes for Compact Clusters
- The Raspberry Pi sips energy, and keeps its cool
- The Raspberry Pi teaches lessons about scalability
- ARM is not all sunshine and roses
- Installing a Kubernetes Distribution
- kubeadm
- Setting up the Raspberry Pi Dramble
- Going Further
- Other Guides
Chapter 9 - Secrets and Configuration
Chapter 10 - Monitoring Kubernetes
- Two Clusters to Monitor
- Cluster Visibility with Lens
- Install Lens
- Inspect your clusters with Lens
- Explore Pod Logs
- Log into Nodes and Pods
- Visit web services in a browser
- Manage resources
- Prometheus and Grafana
- Install Prometheus and Grafana using Helm
- Access Grafana
- Grafana Dashboards
- Maintaining Grafana
- Conclusion
