Section 6: Lab: Pods, Labels and kubectl
- Write declarative manifests and use kubectl apply
- Labels, selectors and annotations for grouping resources
- Multi-container Pods, init containers and sidecar containers
- View logs, exec into containers and debug with kubectl debug
- Lab: run the sample app's Pods and fix a failing Pod
Section 7: Lab: ReplicaSets and Deployments
- How a ReplicaSet keeps the desired number of Pods
- Create a Deployment and scale its replicas
- Rolling updates with maxSurge and maxUnavailable
- View rollout history and roll back to a previous version
- Lab: update the app without downtime, then roll back when a problem appears
Section 8: ConfigMaps, Secrets and Resources
- Separate configuration with ConfigMaps as environment variables or files
- Store sensitive data in Secrets, and what to watch for with encryption
- Set CPU and memory requests and limits, and QoS classes
- Change CPU and memory of running Pods with in-place Pod resize
- Lab: move the app's configuration out of the image, Twelve-Factor style
Section 9: Lab: Health Checks and Autoscaling
- How liveness, readiness and startup probes differ
- Install metrics-server and view resource use with kubectl top
- Horizontal Pod Autoscaler on CPU and memory
- PodDisruptionBudgets to keep services up during node maintenance
- Lab: run a load test and watch Pods scale out and back automatically
Section 10: Namespaces, RBAC and Team Separation
- Separate teams or environments with namespaces
- ServiceAccounts, Roles, ClusterRoles and RoleBindings
- Limit resources with ResourceQuotas and LimitRanges
- Pod Security Admission and basic securityContext settings
- Lab: create a namespace for a dev team with permissions and quotas