K8s
Getting Started
K8s Architectural Concepts
Parts of Kubernets - Nodes, Clusters, API Server, and more!
A Brief Review of Dockerfiles and Images
Dockerfiles, layers, instructions, args, etc
An Introduction to Kubernetes in the Cloud
Kubernetes can be deployed using tools like GCP, AWS, and Azure
On Services
Only an Intro
Some Architecture Principles for Kubernetes Applications
Dockerfiles, layers, instructions, args, etc
Balancing Network Traffic across many Pods with the LoadBalancer Service
Not much here
On Controllers
Controllers as "brains" behind monitoring and managing replicated pods
On Deployments
Deploying the Cluster
On Networking
Only an Intro
On Pods
A "wrapper" around Containers
An Overview of K8s Setup
A few different options for setting up K8s
Networking Intro
Allow Communication Within A Cluster with the ClusterIP Service
Allow External network connectivity to a Kubernetes service
Allow Communication between Host and Pod with the NodePort Service
Allow External network connectivity to a Kubernetes service
In-Depth
Mutate And Validate Request Details With Admission Controllers
A properly configured k8s server leverages admissionControllers for automated request processing
Get Info About The K8s Environment Through the K8s Api-Server
A built-in api can allow for api-driven discovery and config
Working with Users, Clusters, and Contexts For Authentication
Users Can Gain Access to Clusters Through Kubeconfig Files and Contexts
Roles Are A Great Way To Manage User Authorization To K8s Objects
Create Roles and RoleBindings to configure customizable authorization across K8s objects
Use Commands and Argunments to Configure Pods and Containers
Pass Commands and Arguments to the Docker Containers that are run inside of pods
Kubernetes Kubectl Commands Through A Working Example
Create objects, alter objects, and more through configuration files and imperative kubectl commands
Container tooling continues to develop
Docker has led to many other container details
Create Custom Resources To Meet Your Own Specific Needs In Kubernetes
Leverage Kubernetes to create new resources types, custom specs on a resource, and custom controllers
One Way To Approach Debugging Kubernetes Object Errors
Starting with "familiar" k8s bits to logs and iptables
Apply Complex Deployment Strategies to A K8s Cluster For More Reliability
Blue-Green and Canary deployments are not built into K8s, but can be used with some strategic object manipulation
Introduce Flexibility into Kubernetes Objects with Environment Variables
Pull dynamic values out of hard-coded object defclaration with Environment Variables
Give DNS Records To Replicated Pods With Headless Services
Headless Services assign DNS entries to pods, which can be useful for use-cases likes statefulSets and Master/Slave Pods
Leverage Helm to Abstract Away Details of Object Management in Kubernetes
Helm can help remove object-by-object management when looking to manage a suite of Kubernetes objects
Build Kubernetes Objects with One-Lineres
Use One-Line Imperative programming syntax to build some k8s objects
Ingress Requires a ServiceAccount, a Deployment, a ConfigMap, a Service, and and Ingress
Kubernetes helps manage traffic, load-balancing, routing, and more through its ingress implementation
Use Kubernetes Jobs to Manage Workloads That End
A Job Object can describe to kubernetes how to manage workloads that only need to run for the duration of the workload
Run Kubernetes on 2 Virtual Machines in Google Cloud
A Follow-Along set of notes ony setting Kubernetes up across 2 VMs in Google Cloud
Labels, Selectors and Annotations for Identifying Kubernetes Objects
Labels And Selectors can allow for grouping objects together with kubectl or replicasites k8s objects
Test In-Container Readyness with Liveness Probes
Create http requests, bash scripts, or tcp requests to assess application readyness status
Logging In K8s Is Similar to Logging in Docker
Syntax to log a pod in kubernetes is nearly identical to logging with docker
More Resources
Links to other folks' collections of K8s notes
Multi-Container Pods Can be Valuable For Tightly-Coupled Applications
A few meaningful approaches to deploying multiple containers in a single pod
Kubernetes Namespaces
Separate groups of Kubernetes objects with Namespaces for maby users across teams
Build Rules for Pod Network Traffic
Ingress policies allow incoming network requests, and Egress policies all outgoing network requests
Make Pods "Like" Nodes that have specific labels
Affinities applied to Nodes push nodes to prefer Specific K8s Nodes to be deployed to
Label Nodes for Simple Pod-to-Node matching deployments
Match node labels with pod NodeSelectors to sync pods with nodes simply
A Brief Review of The Lifecycle of a Persistent Volume in Kubernetes
An Overview of how a persistent volume gets created, bound, used, and options for "end-of-life" handling
Three policies that broadly cover security options for pods in a Kubernetes Cluster
Namespaces can contain one-of-three pod-security labels that give broad summaries of "levels" of pod security
Understanding K8s Pod Readyness May Be Tricky
Surely there is a status of the pod, but the applications inside the pods can require more granular configuring to understand their readyness
An Overview of Kubernetes Resource Allocation and Definition Options
Disk, Memory, and CPU are 3 types of resources that can be configured within Kubernets
Include Docker Container Security Instructions In Kubernetes Pod Definition Files
Service Accounts Provide Identity To Container Processes
Service accounts, intended to be used by machines and not humans, can be used for things like getting cluster data from within the cluster itself
A Brief Overview of Service Meshes
An abstract layer of proxies to help with complex network scenarios
Some Trickery With Stateful Pods Using Stateful Sets
When Pods rely on other pods, like in replicated dbs, stateful sets can be a helpful tool
Remove a Requirement of Pre-Defined Storage Objects with Storage Classes
Describe a type of storage with a storage class definition
Leverage Taints and Tolerations to Instruct Nodes to Allow or Not Allow Pod Deployment
Taints on nodes block pod deployment and tolerations enable pods to work with node taints
Topics to Consider When Configuring Kubernetes
Kubernetes has a bunch of details to consider when getting more in-depth than creating and getting objects
Persist Data Created By Pods By Using Volumes and Claims in Kubernetes
PersistentVolumes, and PersistentVolumeClaims are K8s objects to manage data in the semi-ephemeral state of K8s Pods
Ingress Helps Simplify Some Networking Details
Ingress solves some networking nuianced configuration details