Skip to content

Kubernetes. “Kubernetes is not for application development but for platform development” (Kelsey Hightower)

Introduction

Kubernetes magic is in enterprise standardization, not app portability ๐ŸŒŸ

Kubernetes Jobs Market

  • kube.careers: Kubernetes jobs market (Q2 2021) We analyzed all the 113 Kubernetes jobs posted in the past 3 months (Apr-May-Jun 2021) and extracted metrics for:
    • Kubernetes salary ranges
    • Remote vs office offers
    • Popular cloud providers

Certified Kubernetes Offerings

The State of Cloud-Native Development

Kubernetes Failure Stories

Kubernetes Maturity Model

  • fairwinds.medium.com: Kubernetes Maturity Model
  • fairwinds.medium.com: An Introduction to the Kubernetes Maturity Model โ€” How to Use It
    • The Fairwinds team developed the Kubernetes Maturity Model over a year ago, and they continue to update and refine it to reflect the five stages you go through in your journey to Kubernetes maturity.
    • If the Kubernetes Maturity Model is new to you, this is a helpful introduction and guide on how to use it.
    • Before you do anything, consider what a cloud-native journey means to you and your organization. Kubernetes isnโ€™t right for everyone, so make sure you understand where to start and how to prove value by embracing Kubernetes.
    • Any maturity model is a process, and youโ€™re likely to move back and forth between phases, and some will take longer than others. Even once youโ€™ve reached phase five, youโ€™ll always be working on ongoing optimization, removing human error and effort, and improving reliability and efficiency.

Cloud Native Learn by doing platforms

Kubernetes Installation Methods

Kubernetes Knowledge Hubs

Kubernetes Podcasts

Kubernetes Blogs

Spanish Kubernetes Blogs

Kubernetes Open Source Container Orchestation

kubeconfig

Docker and Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker Swarm

Kubernetes Cloud Controller Manager

Kubernetes Resources

Kubernetes Pods

Kubernetes ConfigMaps

Kubernetes Secrets

Kubernetes Volumes

Kubernetes Namespaces and Multi Tenancy. Self Service Namespaces

Creating Users
  • cloudhero.io Creating Users for your Kubernetes Cluster. Learn how to use x509 certificates to authenticate users in your cluster.

Kubernetes Labels and Selectors

Kubernetes Taints and Tolerations

Kubernetes Deployment, Rollling Updates and Rollbacks

Kubernetes StatefulSet

Kubernetes Jobs and Cron Jobs

Kubernetes Deployment Strategies

Kubernetes API

Multi-Cluster Services API

Kubernetes Health Checks/Probes. Startup, Liveness, Readiness

Kubernetes Limits and Requests

Kube Scheduler

Kubernetes etcd

Kubernetes Sidecars

Kubernetes Annotations

Kubernetes Best Practices and Tips

k8s experts be like

Disruptions

Cost Estimation Strategies

kubecost

Kubernetes Resource and Capacity Management. Capacity Planning

Kubernetes Monitoring

Logging in Kubernetes

ECK Elastic Cloud on Kubernetes

Architecting Kubernetes clusters. Node Size. Multi Clusters and Hybrid Cloud

Client Libraries for Kubernetes

Helm Kubernetes Tool

Templating YAML in Kubernetes with real code. YQ YAML processor

Quality Checks for Kubernetes YAMLs

Extending Kubernetes

Adding Custom Resources. Extending Kubernetes API with Kubernetes Resource Definitions. CRD vs Aggregated API

  • Custom Resources
  • itnext.io: CRD is just a table in Kubernetes
  • Use a custom resource (CRD or Aggregated API) if most of the following apply:
    • You want to use Kubernetes client libraries and CLIs to create and update the new resource.
    • You want top-level support from kubectl; for example, kubectl get my-object object-name.
    • You want to build new automation that watches for updates on the new object, and then CRUD other objects, or vice versa.
    • You want to write automation that handles updates to the object.
    • You want to use Kubernetes API conventions like .spec, .status, and .metadata.
    • You want the object to be an abstraction over a collection of controlled resources, or a summarization of other resources.
  • Kubernetes provides two ways to add custom resources to your cluster:
    • CRDs are simple and can be created without any programming.
    • API Aggregation requires programming, but allows more control over API behaviors like how data is stored and conversion between API versions.
  • Kubernetes provides these two options to meet the needs of different users, so that neither ease of use nor flexibility is compromised.
  • Aggregated APIs are subordinate API servers that sit behind the primary API server, which acts as a proxy. This arrangement is called API Aggregation (AA). To users, it simply appears that the Kubernetes API is extended.
  • CRDs allow users to create new types of resources without adding another API server. You do not need to understand API Aggregation to use CRDs.
  • Regardless of how they are installed, the new resources are referred to as Custom Resources to distinguish them from built-in Kubernetes resources (like pods).

Krew, a plugin manager for kubectl plugins

  • Krew is the plugin manager for kubectl command-line tool.
  • itnext.io: Extending Kubernetes Cluster; Kubectl Plugins and Krew
  • darumatic.com: Improve Kubectl Command with Krew Krew is a tool that aims to ease plugin discovery, installation, upgrade, and removal on multiple operating systems. This article will show you how easy it is to grab and experiment with existing plugins.
  • kubectl trace is now on the krew index!! Go install it now!

    kubectl krew install trace
    
    And then just try to snoop into all the file openings:

    kubectl trace run -a  <yournode>  -e 'kprobe:do_sys_open { printf("%s: %s\n", comm, str(arg1)) }'
    

OpenKruise/Kruise

Crossplane, a Universal Control Plane API for Cloud Computing. Crossplane Workloads Definitions

Kubernetes Community

Community Forums

Kubernetes Special Interest Groups (SIGs)

Kubernetes SIG’s Repos

Kubectl Plugins


Enforcing Policies and governance for kubernetes workloads with Conftest

Kubernetes Troubleshooting

learnk8s debug your pods

Provisioning cloud resources (AWS, GCP, Azure) in Kubernetes

Debugging Techniques and Strategies. Debugging with ephemeral containers

Kubernetes Tutorials

Online Training

K8s Diagrams

Kubernetes Patterns and Antipatterns. Service Discovery

Top 10 Kubernetes patterns

Kubernetes Scheduling and Scheduling Profiles

Assigning Pods to Nodes. Pod Affinity and Anti-Affinity

Pod Topology Spread Constraints and PodTopologySpread Scheduling Plugin

Cloud Development Kit (CDK) for Kubernetes

  • cdk8s.io Define Kubernetes apps and components using familiar languages. cdk8s is an open-source software development framework for defining Kubernetes applications and reusable abstractions using familiar programming languages and rich object-oriented APIs. cdk8s apps synthesize into standard Kubernetes manifests which can be applied to any Kubernetes cluster.
  • github.com/awslabs/cdk8s

AWS Cloud Development Kit (AWS CDK)

  • AWS: Introducing CDK for Kubernetes
  • Traditionally, Kubernetes applications are defined with human-readable, static YAML data files which developers write and maintain. Building new applications requires writing a good amount of boilerplate config, copying code from other projects, and applying manual tweaks and customizations. As applications evolve and teams grow, these YAML files become harder to manage. Sharing best practices or making updates involves manual changes and complex migrations.
  • YAML is an excellent format for describing the desired state of your cluster, but it is does not have primitives for expressing logic and reusable abstractions. There are multiple tools in the Kubernetes ecosystem which attempt to address these gaps in various ways:
  • We realized this was exactly the same problem our customers had faced when defining their applications through CloudFormation templates, a problem solved by the AWS Cloud Development Kit (AWS CDK), and that we could apply the same design concepts from the AWS CDK to help all Kubernetes users.

Serverless with OpenFaas and Knative

Serverless

Multi-Cluster Federation. Hybrid Cloud Setup Tools

KubeFed

KubeCarrier

Red Hat Operator Lifecycle Manager (OLM)

  • Red Hat OLM operator-lifecycle-manager is a management framework for extending Kubernetes with Operators. OLM extends Kubernetes to provide a declarative way to install, manage, and upgrade Operators and their dependencies in a cluster.

Istio Service Mesh

Kubernetes Scripts

Kubernetes and Ansible

Spot instances in Kubernetes

Kubernetes Incident Report Plan IRP

Kubernetes interview questions

Kubernetes Certifications. CKA, CKAD and CKS

Books and eBooks

Kubernetes Patterns eBooks

Famous Kubernetes ebooks of 2019

Kubernetes: Up and Running

Famous Kubernetes resources of 2019

Famous Kubernetes resources of 2020

Kubernetes Slack Channel

Bunch of images

Click to expand!

Kubernetes architecture

10 most common mistakes

5 Open-source projects that make #Kubernetes even better

kubernetes arch multicloud hybrid

Kubernetes components

Container flowchart

dockerswarm vs kubernetes

simple k8s cluster meme

Videos

Click to expand!

Tweets

Click to expand!