Home

K8s

Getting Started

K8s Architectural Concepts

Parts of Kubernets - Nodes, Clusters, API Server, and more!

An Overview of K8s Setup

A few different options for setting up K8s

On Pods

A "wrapper" around Containers

On Controllers

Controllers as "brains" behind monitoring and managing replicated pods

On Deployments

Deploying the Cluster

On Services

Only an Intro

Allow Communication between Host and Pod with the NodePort Service

Allow External network connectivity to a Kubernetes service

Allow Communication Within A Cluster with the ClusterIP Service

Allow External network connectivity to a Kubernetes service

A Microservice Case-Study from App to Docker to Kubernetes

Microservices are great candidates for adopting containerization and kubernetes

A Microservice K8s Demo

Deploying a Microservice set of Applications with K8s

Deploy a Microservice Set of Applications with K8s and Deployments

Use Kubernetes Deployment Objects to deploy replica sets of each service in a microservice-style application

An Introduction to Kubernetes in the Cloud

Kubernetes can be deployed using tools like GCP, AWS, and Azure

A Brief Review of Dockerfiles and Images

Dockerfiles, layers, instructions, args, etc

Some Architecture Principles for Kubernetes Applications

Dockerfiles, layers, instructions, args, etc




More In-Depth

Topics to Consider When Configuring Kubernetes

Kubernetes has a bunch of details to consider when getting more in-depth than creating and getting objects

Kubernetes Namespaces

Separate groups of Kubernetes objects with Namespaces for maby users across teams

Build Kubernetes Objects with One-Lineres

Use One-Line Imperative programming syntax to build some 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

Introduce Flexibility into Kubernetes Objects with Environment Variables

Pull dynamic values out of hard-coded object defclaration with Environment Variables

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

An Overview of Kubernetes Resource Allocation and Definition Options

Disk, Memory, and CPU are 3 types of resources that can be configured within Kubernets

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

Label Nodes for Simple Pod-to-Node matching deployments

Match node labels with pod NodeSelectors to sync pods with nodes simply

Make Pods "Like" Nodes that have specific labels

Affinities applied to Nodes push nodes to prefer Specific K8s Nodes to be deployed to

Multi-Container Pods Can be Valuable For Tightly-Coupled Applications

A few meaningful approaches to deploying multiple containers in a single pod

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

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

Labels, Selectors and Annotations for Identifying Kubernetes Objects

Labels And Selectors can allow for grouping objects together with kubectl or replicasites k8s objects

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

Ingress Helps Simplify Some Networking Details

Ingress solves some networking nuianced configuration details

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

Build Rules for Pod Network Traffic

Ingress policies allow incoming network requests, and Egress policies all outgoing network requests

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

Remove a Requirement of Pre-Defined Storage Objects with Storage Classes

Describe a type of storage with a storage class definition

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

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

Working with Users, Clusters, and Contexts For Authentication

Users Can Gain Access to Clusters Through Kubeconfig Files and Contexts

Get Info About The K8s Environment Through the K8s Api-Server

A built-in api can allow for api-driven discovery and config

Roles Are A Great Way To Manage User Authorization To K8s Objects

Create Roles and RoleBindings to configure customizable authorization across K8s objects

Mutate And Validate Request Details With Admission Controllers

A properly configured k8s server leverages admissionControllers for automated request processing

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

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

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

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

Container tooling continues to develop

Docker has led to many other container details

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

A Brief Overview of Service Meshes

An abstract layer of proxies to help with complex network scenarios

One Way To Approach Debugging Kubernetes Object Errors

Starting with "familiar" k8s bits to logs and iptables

Kubernetes Kubectl Commands Through A Working Example

Create objects, alter objects, and more through configuration files and imperative kubectl commands

More Resources

Links to other folks' collections of K8s notes