Skip to content

Instantly share code, notes, and snippets.

@danielpsf
Created July 19, 2019 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielpsf/462826fe369ccf3662089e323c6eebea to your computer and use it in GitHub Desktop.
Save danielpsf/462826fe369ccf3662089e323c6eebea to your computer and use it in GitHub Desktop.
Cloud Academy K8s course notes

Kubernetes introduction

After this course I should be able to know how to:

  • Deploy a single or a multiple container application to K8s
  • Configure Service Discovery
  • Expose applications to the public internet (well, if applicable)
  • Deploy probes to monitor containers
  • Bootstrap applications with init containers
  • Manage Secrets
  • Configure persistent storage for a database
  • Prepare K8s for production

Cool K8s features

  • Automated rollout & rollback
  • Secret management
  • Service discovery & load balancing
  • Log collection
  • Statefull application support
  • persistent volume management
  • CPU/Memory quotas
  • Batch job processing
  • RBAC

Thoughts regarding usage of K8s and its siblings

  • K8s if your ecosystem is almost entirely built on top of containarized applications (serverless may or may not compose your ecosystem… see: https://kubeless.io/ and https://winderresearch.com/a-comparison-of-serverless-frameworks-for-kubernetes-openfaas-openwhisk-fission-kubeless-and-more/)
  • DataCenter OS (DCOS) is goo dif you have a mix of containarized and notive applications that you want to manage through a single software, DCOS in this case
  • ECS is awesome if you already have a vendor lock-in with AWS and/or if you want to levarage first party integrations such as AWS Networking, Security, Logging, etc
  • Docker SWARM is nice if you want to have a single development / deployment tool chain. I mean, docker-compose and Dockerfile is the only thing you need to have to get the app up and running locally and in the production environments

Design and terminology

Terminology

Term Description
Cluster a group of nodes configured to run a functioning Kubernetes system. Nodes can be a mix of physical or virtual machines running on public or private clouds, or even in on-premise data centers. This term refers to the aggregate of all nodes and not individual nodes
Pod a group of one or more containers running on a single node
Service a networking abstraction that defines rules on how to access pods determined by a selector. Do not confuse this concept with things like back-end service or application. Kubernetes services are about networking
Selector a set of rules to match resources based on metadata
Label key/value pairs attached to objects such as pods. Labels specify identifying attributes meaningful to users, but do not imply semantics to Kubernetes. Here's an example: your environment may be set to production
Annotations arbitrary, non-identifying metadata for retrieval by API clients such as tools and libraries. Beta API functionality may be activated by setting specific annotations
Deployment a declarative template for creating and scaling pods
Replica Set coordinates pod creation, deletion, and updates during deployments
Volume a stateful block store for use with ephemeral pods. Volumes may have multiple back-ends such as on-disk, GCE, persistence disks, or other third party systems. Do not confuse this with a database. A volume is simply a place to write persisted data to
Secret sensitive information, such as passwords, OAuth tokens, and ssh keys
StatefulSet a pod with guarantees on deployment and scaling order
Request the desired amount of CPU or memory for a container in a pod
Resource any individual Kubernetes item such as deployment, pod, service, or secret etc. Going forward, you'll hear me repeating the term resource to refer to any type of Kubernetes item
Name a unique identifier for a particular resource
Namespace a group of unique names. You may also hear this referred to as a virtual cluster
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment