Kubernetes Introduction Presentation

November 26, 2019    Kubernetes DevOps Presentation

Introduction to Kubernetes

We have a lot of lunch and learns at Omnitech . I enjoy these times where most of the developers can get together, share what we’re learning, and learn from others’ experiences and hard work. We have found the value of helping each other leap frog up the learning ladder.

I was able to go to NDC Minnesota 2019 . I had the privilege of attending Shahid Iqbahl ’s (from the U.K.) 2 day workshop on Docker and Kubernetes (k8s). You can read more about that experience on the Omnitech blog .

This is my outline and information for my presentation/discussion.

I also used the workshop as a basis for a Docker Introduction earlier this year.

NOTE: there is a lot more I will add as I go on. This post will start as an “MVP” and will improve as I learn more.

What is Kubernetes?

"Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications."

"It groups containers that make up an application into logical units for easy management and discovery. Kubernetes builds upon 15 years of experience of running production workloads at Google, combined with best-of-breed ideas and practices from the community."

from Kubernetes.io

“Kubernetes is a container orchestration application developed by Google. It provides a unified API that can be used to manage the deployment and upgrades of containerized applications, batch jobs, and databases. Kubernetes provides a layer of abstraction and isolation to applications from the underlying hardware by deploying them in containers. Kubernetes uses a declarative approach to deploying applications. As a user, you write the application requirements (such as networking, ports, memory, and replication) in a manifest, and hand it over to Kubernetes. Kubernetes then reads this manifest and decides where to place the nodes that run your application in the cluster.” ~[1] page 15

https://landscape.cncf.io

K8s = Kubernetes (8 characters in between the K and the s)

K8s for kids video

A K8s story: Pippy goes to the zoo

Video - How Kubernetes works

K8s Architecture

“The overall architecture of Kubernetes is composed of three parts: the cluster, the master, and the node”

From Kubernetes Succinctly [1] figure 2, pg 17

Features

Development Story

Visual Studio K8s Tools

Planning - When

  • Don’t get sucked into the hype
  • Basic
    • 12 factor apps (logging/readiness/health-checks
    • Clear plan for architecture/microservice
    • Writing/migrate to .Net Core
    • CI/CD pipelines
  • Bad DevOps unless Dev and Ops agree on it and it unifies
  • Containerize “legacy” .net apps into Windows Containers
  • Don’t forget security

Consider GitOps - beware of pet clusters

From Shaid’s NDC workshop [2]

Now we have new challenges

CLI - locally

Deployment

YAML

HELM

Chapter 8 Packaging Applications with Helm [1]

“After deploying applications again and again in the course of this book, you might have realized that writing YAML specs for each component—such as deployments, replica sets, and services that make up the cluster—is difficult. If you are working on more extensive applications, this problem becomes even harder to solve. Enter Helm, a package manager for Kubernetes that makes it easy for developers to package, configure, and deploy applications on Kubernetes clusters.” [1]

Helm is like Nuget or NPM and can perform various activities.

There is a repository of charts available. Here’s an alpine example

What is Helm | why we use helm

Azure

Introduction to K8s video

Azure Kubernetes Services

Deploy eShopOnContainers to Azure DevSpaces with Helm

Architecting Cloud Native .NET Applications for Azure - eBook

K8s up and running - eBook

eBook - Containerized Docker Application Lifecycle with Microsoft Platform and Tools

Putting the “.NET” into “Kubernetes”

Building Cloud Native Apps with .NET Core 3.0 and Kubernetes

DevSpaces

DevSpaces

DevSpaces and Visual Studio

S205 - .NET Core Microservice Development Made Easy with Azure Dev Spaces - Lisa Guthrie

DevSpaces quickstart team

Security

https://dzone.com/storage/assets/12018356-tigera-five-best-practices-kubernetes-networksecur.pdf

Scaling

Azure Container Instances for infinite scale and spiking in traffic . ACI is PaaS, so you only pay for the compute you use.

Monitoring

Stackify’s article says “In short: writing software is hard; running software is often harder. And that’s why we monitor.” There is a lot of great information in this article.

Istio is a tool I’ve heard of multiple times now.

Demo?

Put this pub/sub docker-compose example into K8s with Helm, then publish to AKS. (didn’t have time to try it out)

Using AKS and Azure DevSpaces, from Visual Studio

Resources

References

Referenced using [#] above.

  1. Kubernetes Succinctly
  2. Shaid’s NDC 2019 workshop


Watch the Story for Good News
I gladly accept BTC Lightning Network tips at [email protected]

Please consider using Brave and adding me to your BAT payment ledger. Then you won't have to see ads! (when I get to $100 in Google Ads for a payout, I pledge to turn off ads)

Use Brave

Also check out my Resources Page for referrals that would help me.


Swan logo
Use Swan Bitcoin to onramp with low fees and automatic daily cost averaging and get $10 in BTC when you sign up.