168 KiB
Kubernetes
- Certified Kubernetes Offerings
- The State of Cloud-Native Development. Details data on the use of Kubernetes, serverless computing and more
- Kubernetes open-source container-orchestation
- Kubernetes Releases
- Namespaces
- Kubernetes Best Practices and Tips
- Disruptions
- Cost Estimation Strategies
- Kubernetes Resource and Capacity Management
- Kubernetes Monitoring
- Health Checks
- Architecting Kubernetes clusters
- Templating YAML in Kubernetes with real code. YQ YAML processor
- Kubernetes Limits
- Kube Scheduler
- Kubernetes Knowledge Hubs
- Kubectl commands
- Self Service Kubernetes Namespaces
- Client Libraries for Kubernetes
- Helm Kubernetes Tool
- Kubernetes Development Tools. Kubernetes clients and dashboards
- Autoscaling
- Extending Kubernetes
- Kubernetes Community
- Enforcing Policies and governance for kubernetes workloads with Conftest
- Kubernetes Backup and Migrations
- Kubernetes Troubleshooting
- Kubernetes Tutorials
- Kubernetes Patterns
- e-Books
- Kubernetes Operators
- Kubernetes Networking
- Kubernetes Sidecars
- Kubernetes Security
- Kubernetes Scheduling and Scheduling Profiles
- Kubernetes etcd
- Kubernetes Storage
- Non-production Kubernetes Local Installers
- Kubernetes in Public Cloud
- On-Premise Production Kubernetes Cluster Installers
- Comparative Analysis of Kubernetes Deployment Tools
- Deploying Kubernetes Cluster with Kops
- Deploying Kubernetes Cluster with Kubeadm
- Deploying Kubernetes Cluster with Ansible
- kube-aws Kubernetes on AWS
- Kubespray
- Conjure up
- WKSctl
- Terraform (kubernetes the hard way)
- Caravan
- ClusterAPI
- Microk8s
- k8s-tew
- Kubernetes Distributions
- Cloud Development Kit (CDK) for Kubernetes
- SpringBoot with Docker
- Docker in Docker
- Serverless with OpenFaas and Knative
- Multi-Cluster Federation. Hybrid Cloud Setup Tools
- Kubernetes interview questions
- Spanish Kubernetes Blogs
- Container Ecosystem
- Container Flowchart
- Kubernetes Scripts
- Spot instances in Kubernetes
- Pixie. Instantly troubleshoot applications on Kubernetes
- Videos
Certified Kubernetes Offerings
The State of Cloud-Native Development. Details data on the use of Kubernetes, serverless computing and more
Kubernetes open-source container-orchestation
- Wikipedia.org: Kubernetes
- kubernetes.io
- unofficial-kubernetes.readthedocs.io
- Awesome kubernetes 🌟
- https://www.reddit.com/r/kubernetes 🌟
- stackify.com: The Advantages of Using Kubernetes and Docker Together 🌟
- Ansible for devops: Kubernetes
- kubedex.com 🌟 Discover, Compare and Share Kubernetes Applications
- medium.com: The Kubernetes Scheduler: this series aims to advance the understanding of Kubernetes and its underlying concepts
- opensource.com: How the Kubernetes scheduler works 🌟 Understand how the Kubernetes scheduler discovers new pods and assigns them to nodes.
- medium.com: A Year Of Running Kubernetes at MYOB, And The Importance Of Empathy
- blogs.mulesoft.com - K8s: 8 questions about Kubernetes
- labs.mwrinfosecurity.com: Attacking Kubernetes through Kubelet
- blog.doit-intl.com: Kubernetes and Secrets Management in the Cloud
- medium.com: Kubernetes Canary Deployment #1 Gitlab CI
- kubernetes-on-aws.readthedocs.io
- techbeacon.com: Why teams fail with Kubernetes—and what to do about it 🌟
- itnext.io: Kubernetes rolling updates, rollbacks and multi-environments 🌟
- learnk8s.io: Load balancing and scaling long-lived connections in Kubernetes 🌟
- itnext.io: Successful & Short Kubernetes Stories For DevOps Architects
- itnext.io: K8s Vertical Pod Autoscaling 🌟
- medium.com: kubernetes Pod Priority and Preemption
- returngis.net: Pruebas de vida de nuestros contenedores en Kubernetes
- itnext.io: K8s prevent queue worker Pod from being killed during deployment How to prevent a Kubernetes (like RabbitMQ) queue worker Pod from being killed during deployment while handling a message?
- youtube: deployment strategies in kubernetes | recreate | rolling update | blue/green | canary
- kodekloud.com: Kubernetes Features Every Beginner Must Know
- platform9.com: Kubernetes CI/CD Pipelines at Scale
- magalix.com: Capacity Planning 🌟 When we have multiple Pods with different Priority Class values, the admission controller starts by sorting Pods according to their priority. What happens when there are no nodes with available resources to schedule a high-priority pods?
- 4 trends for Kubernetes cloud-native teams to watch in 2020
- enterprisersproject.com: Kubernetes: Everything you need to know (2020) 🌟
- learnk8s.io: Provisioning cloud resources (AWS, GCP, Azure) in Kubernetes 🌟
- padok.fr: Kubernetes’ Architecture: Understanding the components and structure of clusters 🌟
- Allocatable memory and CPU in Kubernetes Nodes 🌟 Not all CPU and memory in your Kubernetes nodes can be used to run Pods. In this article, you will learn how managed Kubernetes Services such AKS, EKS and GKE reserve resources for workloads, operating systems, daemons and Kubernetes agent.
- 5 open source projects that make Kubernetes even better: Prometheus, Operator framework, Knative, Tekton, Kubeflow 🌟 Open source projects bring many additional capabilities to Kubernetes, such as performance monitoring, developer tools, serverless capabilities, and CI/CD workflows. Check out these five widely used options
- medium: How to Deploy a Web Application with Kubernetes 🌟 Learn how to create a Kubernetes cluster from scratch and deploy a web application (SPA+API) in two hours.
- blog.pipetail.io: 10 most common mistakes using kubernetes 🌟
- 4 trends for Kubernetes cloud-native teams to watch in 2020 🌟 Today's software architectural landscape seems to change like the weather. Stay ahead of the curve with these cloud-related trends, including GitOps and service meshes.
- opensource.com: A beginner's guide to Kubernetes container orchestration Understanding the building blocks of container orchestration makes it easier to get started with Kubernetes.
- thenewstack.io: 5 Best Practices for Configuring Kubernetes Pods Running in Production
- Creating a Kubernetes cloud provider, doesn't required boiling the ocean 🌟
- medium: How to configure and manage Pod in Kubernetes Cluster (K8s) There are two types of Pods: Single container pod & Multi container pod.
- opensource.com: 5 ways to boost your Kubernetes knowledge
- kinvolk.io: Investigating Kubernetes performance issues with BPF 🌟
- blog.container-solutions.com: 7 Cloud Native Trends to Watch in 2020 🌟
- snyk.io: Shipping Kubernetes-native applications with confidence
- medium: Delivering value on Kubernetes
- medium: 10 Most Common Mistakes When Using Kubernetes 🌟 Avoid your cluster from falling over in production by implementing these best practices
- dev.to: Open a command prompt in a Kubernetes cluster This starts up a pod (in the default namespace by default) and opens a command line in the given container. As I'm running as root, I can install anything I need for debugging and testing right in my cluster.
- medium: 5 Things We Overlooked When Deploying Our First App on Kubernetes 🌟
- opensource.com: Explaining Kubernetes in 10 minutes using an analogy
- itnext.io: Kubernetes is Hard!
- medium: The Kubernetes Cloud Controller Manager
- howtoforge.com: How to create Multi-Container Pods in Kubernetes
- blocksandfiles.com: Kubernetes is in a bit of state about state Kubernetes is “four to five years away” from being a stable distribution capable of running stateful apps, according to Redis Labs chief product officer Alvin Richards.
- 10 most common mistakes when using Kubernetes 🌟🌟
- resources - requests and limits
- liveness and readiness probes
- LoadBalancer for every http service
- non-kubernetes-aware cluster autoscaling
- Not using the power of IAM/RBAC
- Architecting Kubernetes clusters — choosing a cluster size 🌟
- medium: Deploying Kubernetes — Deciding the size of your nodes 🌟
- medium: A Practical Step-by-Step Guide to Understanding Kubernetes Deploy a distributed application and understand key underlying concepts.
- medium: Kubernetes, a practical introduction
- medium: Kubernetes Deployment: Connect Your Front End to Your Back End With Nginx
- learnk8s.iod: Kubernetes production best practices 🌟🌟 A curated checklist of best practices designed to help you release to production.
- itnext.io: Automating System Updates for Kubernetes Clusters using Ansible
- Hands on your first Kubernetes secrets 🌟
- medium: Starting with kubernetes
- Discovering Running Pods By Using DNS and Headless Services in Kubernetes When retrieving all service’s connected pods is desired
- itnext.io: Kubernetes is Hard! 🌟 But, where there’s Kubernetes, there’s a way!
- How we learned to improve Kubernetes CronJobs at Scale (Part 1 of 2)
- thenewstack.io: Kubernetes Is the New Standard for Computing, Including the Edge
- enterprisersproject.com: Managing Kubernetes resources: 5 things to remember Kubernetes automates much of the work of managing containers at scale. But containerized applications commonly share pooled resources, so you need to allocate and manage them properly
- Kubernetes Tip: What Happens To Pods Running On Node That Become Unreachable?
- hackernoon.com: How To Deploy Code Faster Using Kubernetes
- How to handle environment variables with Kubernetes? 🌟
- Liveness and Readiness Probes for Kubernetes in Phoenix application
- Kubernetes Liveness and Readiness Probes
- learnk8s.io: Graceful shutdown and zero downtime deployments in Kubernetes 🌟🌟
- kubernetes.io: Introducing Hierarchical Namespaces
- medium: Kubernetes Pod Redundancy Strategies
- sbg.technology: Zero-Downtime Kubernetes Deployments
- medium: Then he asked me “Is Kubernetes right for us?”
- thenewstack.io: How does kubernetes work?
- elmanytas.es: Kubernetes para impostores III
- loft.sh: Kubernetes: Virtual Clusters For CI/CD & Testing
- medium: Mastering the KUBECONFIG file
- luminousmen.com: Kubernetes 101
- thenewstack.io: How do applications run on kubernetes? 🌟
- deepsource.io: Breaking down zero downtime deployments in Kubernetes 🌟 An in-depth analysis of deployments in Kubernete
- ronaknathani.com: How a Kubernetes Pod Gets an IP Address 🌟
- eevans.co: Deconstructing Kubernetes Networking
- externalTrafficPolicy=local on kubernetes. How to preserve the source IP in kubernetes externalTrafficPolicy=local is an annotation on the Kubernetes service resource that can be set to preserve the client source IP. When it is set, the actual IP address of a client is propagated to the K8s service instead of the IP address of the node.
- medium: Single Sign-On in Kubernetes 🌟
- jfrog.com: Kubernetes in Production with Jessica Deen at swampUP 2020
- itnext.io: Writing a Kubernetes CLI in Go
- medium: Discovering Running Pods By Using DNS and Headless Services in Kubernetes 🌟 When retrieving all service’s connected pods is desired.
- semaphoreci.com: Continuous Blue-Green Deployments With Kubernetes 🌟
- iximiuz.com: Service proxy, pod, sidecar, oh my!
- medium: 3 Years of Kubernetes in Production–Here’s What We Learned 🌟
- linuxadvise.com: Kubernetes Node Selectors
- linuxadvise.com: Kubernetes Node Affinity
- linuxadvise.com: Kubernetes Daemon Sets
- linuxadvise.com: Kubernetes Static Pods
- linuxadvise.com: Kubernetes Config Maps
- linuxadvise.com: Kubernetes Rolling Updates and Rollbacks
- linuxadvise.com: Kubernetes Secrets
- linuxadvise.com: Kubernetes Pod Security Policy
- thenewstack.io: How do applications run on kubernetes?
- medium: Kubernetes — Learn Init Container Pattern Understanding Init Container Pattern With an Example Project.
- Get kubectl access to your private cluster from anywhere This tutorial shows you how to expose your private Kubernetes API server to the Internet, so that you can manage your cluster from anywhere, just like you would with a cloud offering.
- Zero-Downtime Kubernetes Deployments
- enterprisersproject.com: How to explain Kubernetes in plain English How do you explain Kubernetes and orchestration to non-technical people? Listen to the experts
- medium: How to setup Hetzner load balancer on a Kubernetes cluster
- revistacloudcomputing.com: Los mejores proveedores de Kubernetes
- Virtual Clusters for Kubernetes — Benefits and Use Cases Virtual Kubernetes clusters could be the next driver for Kubernetes adoption.
- medium: Kubernetes Tip: How Statefulsets Behave Differently Than Deployments When Node Fails? 🌟 What happens to the Pods when a node fails in Kubernetes?
- thenewstack.io: 4 ways to run kubernetes in production 🌟
- linuxtechi.com: How to Setup Private Docker Registry in Kubernetes (k8s)
- Hierarchical namespaces make it easier to share your Kubernetes cluster. For example, you can create additional namespaces under your team's namespace, even if you don't have cluster-level permission to create namespaces
- Our Journey to Zero Downtime Rolling Updates with Ambassador In this article you will cover: How Kubernetes lifecycle hooks can be used to shutdown applications gracefully. How pods are removed from the system and why it is necessary to understand and carefully handle the shutdown sequence appropriately.
- k21academy.com: Kubernetes Architecture. An Introduction to Kubernetes Components
- thenewstack.io: How do applications run on kubernetes
- blog.mayadata.io: Kubernetes storage basics: PV, PVC and StorageClass 🌟
- itnexst.io: Docker and Kubernetes — root vs. privileged
- medium: ConfigMaps in Kubernetes: how they work and what you should remember 🌟
- medium: Individual Kubernetes Clusters vs. Shared Kubernetes Clusters for Development
- medium: Kubernetes Multi-Tenancy — A Best Practices Guide 🌟
- medium: Better Debugging Environment for your Micro-Services
- Getting a shell on each node Learn how you can use a DaemonSet to expose an SSH shell on each node of your cluster (even if you don't have SSH installed)
- medium: Virtual Clusters for Kubernetes — Benefits and Use Cases Virtual Kubernetes clusters could be the next driver for Kubernetes adoption
- devcentral.f5.com: What is Kubernetes?
- docs.google.com: Kubernetes For Everyone 🌟🌟 A consolidated document on Kubernetes by: Pavan Belagatti
- blog.sighup.io: Hierarchical Namespace Controller (HNC): a look into the future of Kubernetes Multitenancy Hierarchical Namespace Controller (HNC) is bringing a better multi-tenancy model to Kubernetes. In this article we are exploring the current state of the project and useful use-cases.
- thenewstack.io: Who Needs a Dashboard? Why the Kubernetes Command Line Is Not Enough
- medium: Discovering Running Pods By Using DNS and Headless Services in Kubernetes
- itnext.io: Writing a Kubernetes CLI in Go
- medium: Create a Custom Annotation for the Kubernetes ingress-nginx Controller
- containerjournal.com: Overcoming Kubernetes Infrastructure Challenges
- medium: Working with Service Account In Kubernetes 🌟 How to configure a service account in Kubernetes and manage it?
- gravitational.com: How to Set Up Kubernetes SSO with SAML
- redhat.com: Kubernetes basics for sysadmins Learn when Kubernetes can be effectively used and how the containers it manages might be better than virtual machines.
- blog.newrelic.com: Kubernetes Fundamentals 🌟
- https://blog.newrelic.com/engineering/kubernetes-request-and-limits/
- https://blog.newrelic.com/engineering/kubernetes-health-checks/
- https://blog.newrelic.com/engineering/how-to-use-kubernetes-secrets/
- https://blog.newrelic.com/engineering/how-to-organize-kubernetes-clusters/
- https://blog.newrelic.com/engineering/how-to-use-kubernetes-volumes/
- erkanerol.github.io: I wish pods were fully restartable Why are Pod not fully restartable in Kubernetes? Why is Kubernetes not restarting the Pod in CrashLoopBackOff?
- loginradius.com: Understanding Basics of Kubernetes
- Kubernetes Horror Stories
- lambda.grofers.com: Learnings From Two Years of Kubernetes in Production 🌟
- devopsunlocked.com: Kubernetes: Learning Material 🌟
- magalix.com: Team Productivity: Resource Management 🌟 Resource Requests, Limits and Quota
- opensource.com: A beginner's guide to Kubernetes Jobs and CronJobs Use Jobs and CronJobs to control and manage Kubernetes pods and containers.
- learnsteps.com: How Kubernetes works on reconciler pattern 🌟
- redhat.com: Kubernetes Components - A sysadmin's guide to basic Kubernetes components 🌟 Kubernetes control plane nodes and worker nodes, their features, and how they interact.
- medium: How Rolling and Rollback Deployments work in Kubernetes
- medium: Installing cf-for-k8s on a Kubernetes Cluster Running on Digital Ocean If you want to install Cloud Foundry on Kubernetes on Digital Ocean, you might find this article relevant.
- itnext.io: Lessons learned from managing a Kubernetes cluster for side projects (GKE) 🌟
- projectcalico.org: Using Kubernetes to orchestrate VMs 🌟
- cncf.io: Kubernetes 101: An Introduction 🌟
- millionvisit.blogspot.com: Kubernetes for Developers #1: Kubernetes Architecture and Features 🌟
- lastweekinaws.com: Is ECS deprecated? Has Kubernetes won?
- redhat.com: Start learning Kubernetes from your local machine
- medium: Pratyush Mathur - Kubernetes Architecture
- medium: Deployment types in Kubernetes 🌟
Kubernetes Releases
- sysdig.com: What’s new in Kubernetes 1.20?
- magalix: What You Should Know about Kubernetes 1.20
- towardsdatascience.com: Kubernetes is deprecating Docker in the upcoming release Kubernetes and Docker will part ways; what does that mean to you?
- zdnet.com: Kubernetes dropping Docker is not that big of a deal Chill, people. Your Docker skills haven't suddenly become useless. Here's what's really going on.
- thenewstack.io: Kubernetes 1.20 Lands with 44 Enhancements
- openshift.com: Kubernetes is Removing Docker Support, Kubernetes is Not Removing Docker Support
Namespaces
- qvault.io: How to Restart All Pods in a Kubernetes Namespace 🌟
- medium: How to create Namespaces in Kubernetes? 🌟
- starwindsoftware.com: Remove a Kubernetes namespace blocked with Terminating status
Kubernetes Best Practices and Tips
- Optimize Kubernetes cluster management with these 5 tips 🌟 Effective Kubernetes cluster management requires operations teams to balance pod and node deployments with performance and availability needs.
- techradar.com: Three tips to implement Kubernetes with open standards
- geekflare.com: 10 Kubernetes Best Practices for Better Container Orchestration 🌟
- wideops.com: Kubernetes best practices: Setting up health checks with readiness and liveness probes
- containerjournal.com: 10 Best Practices Worth Implementing to Adopt Kubernetes
Disruptions
Cost Estimation Strategies
- cncf.io: 5 Problems with Kubernetes Cost Estimation Strategies
- loft.sh: How To Reduce Your Kubernetes Cost
- harness.io: Getting Started with Cloud Cost Optimization
- rancher.com: Gain Better Visibility into Kubernetes Cost Allocation
- loft.sh: Kubernetes Cost Savings By Reducing The Number Of Clusters
- thenewstack.io: 5 Essential Tips to Manage Kubernetes Costs 🌟
- opensource.com: 3 ways Kubernetes optimizes your IT budget 🌟 Automation is not only good for IT, it's also beneficial to your company's bottom line.
Kubernetes Resource and Capacity Management
- itnext.io: Kubernetes Resource Management in Production 🌟 Requests, Limits, Overcommitment, Slack/Waste, Throttling
- medium: Ultimate Kubernetes Resource Planning Guide 🌟
- learnk8s.io: Setting the right requests and limits in Kubernetes 🌟
Kubernetes Monitoring
- medium: Kubernetes Monitoring: Kube-State-Metrics
- Kubernetes Monitoring 101 — Core pipeline & Services Pipeline 🌟
- medium: Utilizing and monitoring kubernetes cluster resources more effectively
- sysdig.com: Seven Kubernetes monitoring best practices every monitoring solution should enable
- magalix.com: Best Practices And Tools For Monitoring Your Kubernetes Cluster
- sysdig.com: Monitoring Kubernetes in Production
- sysdig.com: How to monitor Kubernetes control plane 🌟
- thenewstack.io: 12 Critical Kubernetes Health Conditions You Need to Monitor 🌟
Logging in Kubernetes
- cncf.io: Logging in Kubernetes: EFK vs PLG Stack 🌟
- medium: How to Deploy an EFK stack to Kubernetes
- digitalocean.com: How To Set Up an Elasticsearch, Fluentd and Kibana (EFK) Logging Stack on Kubernetes
- portworx.com: How to backup and restore Elasticsearch on Kubernetes
- elastic.co: Elastic Stack Monitoring with Elastic Cloud on Kubernetes (ECK - official operator) 🌟 In this blog post, we'll explore how the official ElasticCloud on Kubernetes operator can be used to easily deploy and manage ElasticStack Monitoring using the new Beat CRD.
- papertrail.com: Quick and Easy Way to Implement Kubernetes Logging The SolarWinds® Papertrail™ team is excited to announce SolarWinds rKubeLog, an open-source project designed to streamline Kubernetes logging. rKubeLog allows you to forward logs to Papertrail from within a Kubernetes cluster without using a daemon or setting up application-level logging or a logging sidecar.
Health Checks
- medium: How to Perform Health checks in Kubernetes (K8s)
- youtube: Kubernetes 101: Get Better Uptime with K8s Health Checks
Architecting Kubernetes clusters
- learnk8s.io: Architecting Kubernetes clusters — how many should you have?
- learnk8s.io: Architecting Kubernetes clusters — choosing a worker node size
- itnext.io: Architecting Kubernetes clusters — choosing a worker node size
Templating YAML in Kubernetes with real code. YQ YAML processor
- Templating YAML in Kubernetes with real code
- TL;DR: You should use tools such as yq and kustomize to template YAML resources instead of relying on tools that interpolate strings such as Helm.
- If you're working on large scale projects, you should consider using real code — you can find hands-on examples on how to programmatically generate Kubernetes resources in Java, Go, Javascript, C# and Python in this repository.
Kubernetes Limits
- kubernetes.io Policy Limit Ranges
- sysdig.com: Understanding Kubernetes limits and requests by example 🌟
- dev.to/aurelievache: Understanding Kubernetes: part 22 – LimitRange
Kube Scheduler
Kubernetes Knowledge Hubs
- k8sref.io 🌟 Kubernetes Reference
- Kubernetes Research. Research documents on node instance types, managed services, ingress controllers, CNIs, etc. 🌟 A research hub to collect all knowledge around Kubernetes. Those are in-depth reports and comparisons designed to drive your decisions. Should you use GKE, AKS, EKS? How many nodes? What instance type?
Kubectl commands
- itnext.io: Boosting your kubectl productivity
- medium: 4 Simple Kubernetes Terminal Customizations to Boost Your Productivity
- medium: Ready-to-use commands and tips for kubectl
- medium: Be fast with Kubectl 1.19 CKAD/CKA 🌟 Collection of the fastest ways to create k8s resources using kubectl ≥ 1.18
- developers.redhat.com: Kubectl: Developer tips for the Kubernetes command line 🌟
Kubectl Cheat Sheets
Kubectl explain
- kubectl explain
- itnext.io: Using ‘kubectl explain’ for Custom Resources Goal: Explore if ‘kubectl explain’ can be used to discover static information about Custom Resources
for r in $(kubectl api-resources|grep -v ^N|awk '{print $1}');do kubectl explain $r --recursive;done
Kubectl Autocomplete
- Kubectl Autocomplete
- kubectl Shell Autocomplete
- Kubernetes productivity tips and tricks 🌟
- complete-alias Automagical shell alias completion.
source <(kubectl completion bash) # setup autocomplete in bash into the current shell, bash-completion package should be installed first.
echo "source <(kubectl completion bash)" >> ~/.bashrc # add autocomplete permanently to your bash shell.
You can also use a shorthand alias for kubectl that also works with completion:
alias k=kubectl
complete -F __start_kubectl k
List all resources and sub resources that you can constrain with RBAC
- kind of a handy way to see all thing things you can affect with Kubernetes RBAC. This will list all resources and sub resources that you can constrain with RBAC. If you want to see just subresources append "| grep {name}/":
kubectl get --raw /openapi/v2 | jq '.paths | keys[]'
Copy a configMap in kubernetes between namespaces
- Copy a configMap in kubernetes between namespaces with deprecated "--export" flag:
kubectl get configmap --namespace=<source> <configmap> --export -o yaml | sed "s/<source>/<dest>/" | kubectl apply --namespace=<dest> -f -
- Flag export deprecated in kubernetes 1.14. Instead following command can be used:
kubectl get configmap <configmap-name> --namespace=<source-namespace> -o yaml | sed ‘s/namespace: <from-namespace>/namespace: <to-namespace>/’ | kubectl create -f
Copy secrets in kubernetes between namespaces
kubectl get secret <secret-name> --namespace=<source> -o yaml | sed ‘s/namespace: <from-namespace>/namespace: <to-namespace>/’ | kubectl create -f
Export resources with kubectl and python
- Export resources with zoidbergwill/export.sh, by zoidbergwill
Kubectl Alternatives
Manage Kubernetes (K8s) objects with Ansible Kubernetes Module
Jenkins Kubernetes Plugins
Self Service Kubernetes Namespaces
Client Libraries for Kubernetes
Helm Kubernetes Tool
Kubernetes Development Tools. Kubernetes clients and dashboards
- ordina-jworks.github.io: A comparison of Kubernetes clients and dashboards
- loft.sh: Kubernetes Development Environments – A Comparison
Okteto local kubernetes development
- okteto.com: How to Develop and Debug Java Applications on Kubernetes
- codefresh.io: Tutorial - Local Kubernetes Development with Okteto 🌟
Lens Kubernetes IDE
- Lens Kubernetes IDE 🌟 Lens is the only IDE you’ll ever need to take control of your Kubernetes clusters. It's open source and free. Download it today!
Kubenav
- kubenav is the navigator for your Kubernetes clusters right in your pocket. kubenav is a mobile, desktop and web app to manage Kubernetes clusters and to get an overview of the status of your resources.
Skaffold. Local Kubernetes Development
Kind
- Kind is a tool for running local Kubernetes clusters using Docker container “nodes”. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.
Autoscaling
- levelup.gitconnected.com: Effects of Docker Image Size on AutoScaling w.r.t Single and Multi-Node Kube Cluster
- infracloud.io: 3 Autoscaling Projects to Optimise Kubernetes Costs Three autoscaling use cases:
- Autoscaling Event-driven workloads
- Autoscaling real-time workloads
- Autoscaling Nodes/Infrastructure
Cluster Autoscaler Kubernetes Tool
- kubernetes.io: Cluster Management - Resizing a cluster
- github.com/kubernetes: Kubernetes Cluster Autoscaler
- Kubernetes Autoscaling in Production: Best Practices for Cluster Autoscaler, HPA and VPA In this article we will take a deep dive into Kubernetes autoscaling tools including the cluster autoscaler, the horizontal pod autoscaler and the vertical pod autoscaler. We will also identify best practices that developers, DevOps and Kubernetes administrators should follow when configuring these tools.
- gitconnected.com: Kubernetes Autoscaling 101: Cluster Autoscaler, Horizontal Pod Autoscaler, and Vertical Pod Autoscaler
- packet.com: Kubernetes Cluster Autoscaler
- itnext.io: Kubernetes Cluster Autoscaler: More than scaling out
- cloud.ibm.com: Containers Troubleshoot Cluster Autoscaler
- platform9.com: Kubernetes Autoscaling Options: Horizontal Pod Autoscaler, Vertical Pod Autoscaler and Cluster Autoscaler
- banzaicloud.com: Autoscaling Kubernetes clusters
- tech.deliveryhero.com: Dynamically overscaling a Kubernetes cluster with cluster-autoscaler and Pod Priority
- medium: Build Kubernetes Autoscaling for Cluster Nodes and Application Pods 🌟
- Auto-Scaling Your Kubernetes Workloads (K8s) 🌟
- medium: Cluster Autoscaler in Kubernetes
- itnext.io: Kubernetes Resources and Autoscaling — From Basics to Greatness 🌟
HPA and VPA
- HPA: Horizontal Pod Autoscaler
- VPA: Vertical Pod Autoscaler
- returngis.net: Escalado vertical de tus pods en Kubernetes con VerticalPodAutoscaler
- partlycloudy.blog: Horizontal Autoscaling in Kubernetes #3 – KEDA
- medium: Build Kubernetes Autoscaling for Cluster Nodes and Application Pods Via the Cluster Autoscaler, Horizontal Pod Autoscaler, and Vertical Pod Autoscaler
- itnext.io: Horizontal Pod Autoscaling with Custom Metric from Different Namespace
- Kubernetes autoscaling with Istio metrics 🌟 Scaling based on traffic is not something new to Kubernetes, an ingress controllers such as NGINX can expose Prometheus metrics for HPA. The difference in using Istio is that you can autoscale backend services as well, apps that are accessible only from inside the mesh.
- medium: 1/3 Autoscaling in Kubernetes: A Primer on Autoscaling
Cluster Autoscaler and Helm
- hub.helm.sh: cluster-autoscaler The cluster autoscaler scales worker nodes within an AWS autoscaling group (ASG) or Spotinst Elastigroup.
Cluster Autoscaler and DockerHub
Cluster Autoscaler in GKE, EKS, AKS and DOKS
- Amazon Web Services: EKS Cluster Autoscaler
- Azure: AKS Cluster Autoscaler
- Google Cloud Platform: GKE Cluster Autoscaler
- DigitalOcean Kubernetes: DOKS Cluster Autoscaler
Cluster Autoscaler in OpenShift
- OpenShift 3.11: Configuring the cluster auto-scaler in AWS
- OpenShift 4.4: Applying autoscaling to an OpenShift Container Platform cluster
Kubernetes Load Testing and High Load Tuning
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
-
kubectl trace is now on the krew index!! Go install it now!
kubectl krew install traceAnd 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
- openkruise.io
- OpenKruise/Kruise
- thenewstack.io: Introducing CloneSet: A Production-Grade Kubernetes Deployment CRD
Crossplane, a Universal Control Plane API for Cloud Computing. Crossplane Workloads Definitions
- crossplane.io 🌟 Crossplane is an open source Kubernetes add-on that supercharges your Kubernetes clusters enabling you to provision and manage infrastructure, services, and applications from kubectl.
- Crossplane, a Universal Control Plane API for Cloud Computing
- Crossplane as an OpenShift Operator to manage and provision cloud-native services
- Crossplane: A Kubernetes Control Plane to Roll Your Own PaaS
Kubernetes Community
Community Forums
Kubernetes Special Interest Groups (SIGs)
- Kubernetes Special Interest Groups (SIGs) have been around to support the community of developers and operators since around the 1.0 release. People organized around networking, storage, scaling and other operational areas.
- SIG Apps: build apps for and operate them in Kubernetes
Kubernetes SIG's Repos
- Kubernetes SIGs 🌟 Org for Kubernetes SIG-related work.
- ExternalDNS: Configure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and Services
- Kubernetes-Secrets-Store-CSI-Driver: Secrets Store CSI driver for Kubernetes secrets Integrates secrets stores with Kubernetes via a CSI volume.
- kustomize Customization of kubernetes YAML configurations.
Kubectl Plugins
- Available kubectl plugins 🌟
- Awesome Kubectl plugins 🌟
- Extend kubectl with plugins
- youtube: Welcome to the world of kubectl plugins
- padok.fr: Getting started with kubectl plugins 🌟 5 useful kubectl plugins:
- whoami
- access-matrix
- neat
- tree
- node-shell
Kubectl Plugins and Tools. Kubernetes Extensions and Projects
- ramitsurana/awesome-kubernetes: Tools 🌟
- VMware octant A web-based, highly extensible platform for developers to better understand the complexity of Kubernetes clusters.
- octant.dev Visualize your Kubernetes workloads. Octant is an open source developer-centric web interface for Kubernetes that lets you inspect a Kubernetes cluster and its applications.
- KSS - Kubernetes pod status on steroid
- kubectl-tree kubectl plugin to browse Kubernetes object hierarchies as a tree
- The Golden Kubernetes Tooling and Helpers list
- kubech (kubectl change) Set kubectl contexts/namespaces per shell/terminal to manage multi Kubernetes cluster at the same time.
- Kubecle is a web ui running locally that provides useful information about your kubernetes clusters. It is an alternative to Kubernetes Dashboard. Because it runs locally, you can access any kubernetes clusters you have access to
- Permission Manager is a project that brings sanity to Kubernetes RBAC and Users management, Web UI FTW
- developer.sh: Kubernetes client tools overview
- kubectx Faster way to switch between clusters and namespaces in kubectl
- go-kubectx 5x-10x faster alternative to kubectx. Uses client-go.
- kubevious: application centric Kubernetes UI 🌟 is open-source software that provides a usable and highly graphical interface for Kubernetes. Kubevious renders all configurations relevant to the application in one place.
- Guard is a Kubernetes Webhook Authentication server. Using guard, you can log into your Kubernetes cluster using various auth providers. Guard also configures groups of authenticated user appropriately.
- itnext.io: arkade by example — Kubernetes apps, the easy way 🌟
- Kubei is a flexible Kubernetes runtime scanner, scanning images of worker and Kubernetes nodes providing accurate vulnerabilities assessment.
- Tubectl: a kubectl alternative which adds a bit of magic to your everyday kubectl routines by reducing the complexity of working with contexts, namespaces and intelligent matching resources.
- Kpt: Packaging up your Kubernetes configuration with git and YAML since 2014 (Google)
- kubernetes-common-services These services help make it easier to manage your applications environment in Kubernetes
- k8s-job-notify Kubernetes Job/CronJob Notifier. This tool sends an alert to slack whenever there is a Kubernetes cronJob/Job failure/success.
- kube-opex-analytics 🌟 Kubernetes Cost Allocation and Capacity Planning Analytics Tool. Built-in hourly, daily, monthly reports - Prometheus exporter - Grafana dashboard.
- kubeletctl is a command line tool that implement kubelet's API. Part of kubelet's API is documented but most of it is not. This tool covers all the documented and undocumented APIs. The full list of all kubelet's API can be view through the tool or this API table. What can it do ?:
- Run any kubelet API call
- Scan for nodes with opened kubelet API
- Scan for containers with RCE
- Run a command on all the available containers by kubelet at the same time
- Get service account tokens from all available containers by kubelet
- Nice printing :)
- K8bit — the tiny Kubernetes dashboard 🌟 K8bit is a tiny dashboard that is meant to demonstrate how to use the Kubernetes API to watch for changes.
- KUbernetes Test TooL (kuttl) 🌟
- Portfall: A desktop k8s port-forwarding portal for easy access to all your cluster UIs 🌟
- k8s-dt-node-labeller is a Kubernetes controller for labelling a node with devicetree properties (devicetree is a data structure for describing hardware).
- kubedev 🌟 is a Kubernetes Dashboard that helps developers in their everyday usage
- Kubectl SSH Proxy 🌟 Kubectl plugin to launch a ssh socks proxy and use it. This plugin aims to make your life easier when using kubectl a cluster that's behind a SSH bastion.
- K9s - Kubernetes CLI To Manage Your Clusters In Style! K9s provides a terminal UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your applications in the wild. K9s continually watches Kubernetes for changes and offers subsequent commands to interact with your observed resources.
- kubectl-images Show container images used in the cluster. Kubectl-images is a kubectl plugin that shows the container images used in the cluster. It first calls kubectl get pods to retrieve pods details and filters out the container image information of each pod then prints out the final result in a table view.
- Access Pod Online using Podtnl A Powerful CLI that makes your pod available to online without exposing a k8 service.
- kiosk: Multi-Tenancy Extension For Kubernetes - Secure Cluster Sharing & Self-Service Namespace Provisioning 🌟 Kubernetes is designed as a single-tenant platform, which makes it hard for cluster admins to host multiple tenants in a single cluster. Kiosk extends Kubernetes for multi-tenancy. The core idea is to use Kubernetes namespaces as isolated workspaces.
- asdf-kubectl kubectl plugin for asdf version manager. asdf-vm is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language’s plugin!
- k8s Spot Rescheduler is a tool that tries to reduce load on a set of Kubernetes nodes. It was designed with the purpose of moving Pods scheduled on AWS on-demand instances to AWS spot instances to allow the on-demand instances to be safely scaled down (By the Cluster Autoscaler).
- kube-spot-termination-notice-handler is a Kubernetes DaemonSet designed to gracefully delete pods 2 minutes before an EC2 Spot Instance is terminated.
- Kubermatic Kubernetes Platform is an open source project to centrally manage the global automation of thousands of Kubernetes clusters across multicloud, on-prem and edge with unparalleled density and resilience.
- Polaris helps Kubernetes users avoid common mistakes when configuring their workloads. It runs a variety of checks to ensure that Kubernetes pods and controllers are configured using best practices, helping you avoid problems in the future.
- kmoncon Monitoring connectivity between your kubernetes nodes.
- Tesoro Kapitan Secrets Controller for Kubernetes. Tesoro is Kapitan Admission Controller Webhook. Tesoro allows you to seamleslsly apply Kapitan secret refs in compiled Kubernetes manifests. As it runs in the cluster, it will be able to reveal embedded kapitan secret refs in manifests when applied.
- DAST operator Dynamic application security testing (DAST) is a Kubernetes operator that leverages OWASP ZAP to make automated basic web service security testing.
- Teleskope is a Kubernetes dashboard designed to give your devs and product managers an inside view of the cluster.
- Introducing cdk8s+: Intent-driven APIs for Kubernetes objects Everyone hates yaml. Take that 75 lines of yaml and turn it into 45 lines of testable javascript with cdk8s+
- KuUI (Kubernetes UI) is a simple UI that can be used to manage the configmaps/secrets of your Kubernetes cluster.
- Deprek8ion is a set of rego policies to monitor Kubernetes APIs deprecations. It is designed to work with conftest.
- Beetle Kubernetes multi-cluster deployment automation service.
- vault-controller A K8s controller to manage Hashicorp Vault configuration using CRDs.
- k8s-crash-informer is a Kubernetes controller that informs a Mattermost or Slack channel if an annotated deployment goes into crash loop.
- Azure Arc enabled Kubernetes allows you to connect and manage external Kubernetes clusters in Azure
- Kip, the Kubernetes Cloud Instance Provider Kip is a Virtual Kubelet provider that allows a Kubernetes cluster to transparently launch pods onto their own cloud instances. The kip pod is run on a cluster and will create a virtual Kubernetes node in the cluster.
- Kubeletctl is a command line tool that implement kubelet's API 🌟
- k8s-node-label-monitor: Kubernetes Node Label Monitor provides a custom Kubernetes controller for monitoring and notifying changes in the label states of Kubernetes nodes (labels added, deleted, or updated), and can be run either node-local or cluster-wide
- medium: How to Validate Your Kubernetes Cluster With Sonobuoy 🌟 Run comprehensive conformance testing for your Kubernetes cluster
- k42s is a full multinode Kubernetes Vagrant cluster with a real load balancer
- Pluto is a cli tool to help discover deprecated apiVersions in Kubernetes 🌟 Find Kubernetes resources that have been deprecated
- Switchboard is a tool that manages DNS zones and their A/CNAME records for arbitrary backends. It runs as Kubernetes controller and watches for custom resources DNSZone and DNSRecord.
- Kubernetes Deployment Builder 🌟🌟
- ktx 🌟 Managing kubeconfig files can become tedious when you have multiple clusters and contexts to switch between. ktx aims to reduce friction caused by switching between various configurations.
- telepresence.io 🌟🌟 Fast, local development for kubernetes and openshift microservices.
- k8s-alert is a simple and lightweight alerting tool for Kubernetes.
- Arktos is an open source cluster management system designed for large scale clouds. It is evolved from the open source Kubernetes v1.15 codebase with some fundamental improvements.
- kube-exec 🌟 is a library similar to os/exec that allows you to run commands in a Kubernetes pod, as if that command was executed locally. It is inspired from go-dexec, which does the same thing, but for a Docker engine.
- identity-server Identity Server implements a Kubernetes "whoami" service.
- Kubermatic Kubernetes Platform 🌟 is in an open source project to centrally manage the global automation Kubernetes clusters across multicloud, on-prem and edge with unparalleled density and resilience.
- The Kubernetes Goat is a project designed to be intentionally vulnerable cluster environment to learn and practice Kubernetes security.
- kubefs lets you mount kubernetes's metadata object store as a file system
- DAST Operator (Dynamic application security testing) is a Kubernetes operator that leverages OWASP ZAP to make automated basic web service security testing
- KuUI (Kubernetes UI) is a simple UI that can be used to manage the configmaps/secrets of your Kubernetes cluster.
- pangolin 🌟 is an enhanced Horizontal Pod Autoscaler for Kubernetes.
- kubectl-isolate is a kubectl plugin to isolate a Pod from the Kubernetes Service
- k8s-diagrams 🌟 is a collection of diagrams explaining kubernetes, extracted from our trainings, articles and talks (k8s sec, k8s intro).
- kconmon is a Kubernetes node connectivity monitoring tool
- helm-docs is a tool for automatically generating markdown documentation for helm charts.
- Kubernetes Active Passive Applications is an ingenious script that combines StatefulSets and readiness probes to achieve an active-passive configuration for your Pods/apps.
- Agorakube is a Certified Kubernetes Distribution that provides an enterprise grade solution following best practices to manage a conformant Kubernetes cluster for on-premise and public cloud providers.
- dynamic-pv-scaler is a golang based Kubernetes application which has been created to overcome the scaling issue of Persistent Volume in Kubernetes. This can scale the Persistent Volume on the basis of threshold which you have set.
- Sinker Imagesync enables the syncing of container images from one container registry to another. This is useful in cases where you need to mirror images that exist in a public container registry, to a private one.
- Cluster Turndown is an automated scaledown and scaleup of a Kubernetes cluster's backing nodes based on a custom schedule and turndown criteria.
- capsule is a Kubernetes multi-tenant Operator. It aggregates multiple namespaces in a Tenant. Within each tenant, users are free to create their namespaces and share all the assigned resources between the namespaces of the tenant.
- Kubernetes Node Label Monitor is a Kubernetes controller for monitoring and notifying about changes to Node label states
- kubeinit 🌟 KubeInit provides Ansible playbooks and roles for the deployment and configuration of multiple Kubernetes distributions.
- kubergui: Kubernetes Deployment Builder🌟 quickly builds out a basic Kubernetes Deployment and Kubernetes Service YAML. Kubernetes GUI YAML generators for simple but typo-prone tasks.
- fubectl is a tool that reduces repetitive interactions with kubectl
- Authelia 🌟 is a Single Sign-On and Multi-Factor portal for web apps that can be installed in Kubernetes and can integrate with your ingress controller
- k8sdeploy is a go based tool, written with the goal of creating a cli that utilizes helm and kubernetes client libraries to deploy to multiple namespaces at once.
- kubewatch 🌟🌟
- node-policy-webhook is a Kubernetes webhook designed to help you handle tolerations, nodeSelector and nodeAffinity.
- kubeonoff is a simple web UI for managing Kubernetes deployments.
- ipvs-node-controller is the kubernetes controller that solves External-IP (Load Balancer IP) issue with IPVS proxy mode.
- kubeonoff A simple web UI for managing Kubernetes deployments. Kubeonoff is a small web UI that allows to quickly stop/start/restart pods. Basically it's for non-developers to manage k8s objects per namespace.
- Maistra 🌟 is an opinionated distribution of Istio designed to work with Openshift. It combines Kiali, Jaeger, and Prometheus into a platform managed according to the OperatorHub lifecycle.
- custom-pod-autoscaler A Custom Pod Autoscaler is a Kubernetes autoscaler that is customised and user created. The Custom Pod Autoscaler framework allows easier and faster development of Kubernetes autoscalers.
- Kubevol 🌟 allows you to audit all your Kubernetes pods for an attached volume or see all the volumes attached to each pod by a specific type (eg: ConfigMap, Secret).
- kubectl-fuzzy 🌟 uses fzf(1)-like fuzzy-finder to do partial or fuzzy search of Kubernetes resources. Instead of specifying full resource names to kubectl commands, you can choose them from an interactive list that you can filter by typing a few characters.
- Setec 🌟 Setec (pronounced see-tek) is a utility tool that encrypts and decrypts secrets that are managed by Bitnami's Sealed Secrets.
- Kompose (Kubernetes + Compose) 🌟 kompose is a tool to help users who are familiar with docker-compose move to Kubernetes. kompose takes a Docker Compose file and translates it into Kubernetes resources. kompose is a convenience tool to go from local Docker development to managing your application with Kubernetes. Transformation of the Docker Compose format to Kubernetes resources manifest may not be exact, but it helps tremendously when first deploying an application on Kubernetes.
- kalm.dev 🌟 Easily deploy and manage applications on Kubernetes. Get what you want out of Kubernetes without having to write and maintain a ton of custom tooling. Deploy apps, handle requests, and hook up CI/CD, all through an intuitive web interface.
- Kev Develop Kubernetes apps iteratively with Docker-Compose. Kev helps developers port and iterate Docker Compose apps onto Kubernetes. It understands the Docker Compose application topology and prepares it for deployment in (multiple) target environments, with minimal user input. We leverage the Docker Compose specification and allow for target-specific configurations to be applied to each component of the application stack, simply.
- Synator Kubernetes Secret and ConfigMap synchronizer 🌟 Synator synchronize your Secrets and ConfigMaps with your desired namespaces
- kubes 🌟 is a Kubernetes Deployment Tool. It builds the docker image, creates the Kubernetes YAML, and runs kubectl apply.
- Kubernetes DaemonSet that enables a direct shell on each Node using SSH to localhost Learn how you can use a DaemonSet to expose an SSH shell on each node of your cluster (even if you don't have SSH installed). I run several K8S cluster on EKS and by default do not setup inbound SSH to the nodes. Sometimes I need to get into each node to check things or run a one-off tool. Rather than update my terraform, rebuild the launch templates and redeploy brand new nodes, I decided to use kubernetes to access each node directly.
- NS Killer A Kubernetes project to kill all namespace living over X times. Quite useful when auto-generated development environments on the fly and give them a lifecycle out-of-the-box from Kubernetes or even Helm. You might find it useful if auto-generate development environments on the fly and want to remove old ones on a schedule.
- kubeswitch: Kubernetes Version Switcher 🌟 Easily switch kubectl binary versions.
- Move2Kube 🌟 a tool that can help users migrate from Cloud Foundry and Docker Swarm to Kubernetes. Move2Kube is a command-line tool that accelerates the process of re-platforming to Kubernetes/Openshift. It does so by analysing the environment and source artifacts, and asking guidance from the user when required.
- kubectl build (formerly known as kubectl-kaniko) Kubectl build mimics the kaniko executor, but performs building on your Kubernetes cluster side. This allows you to simply build your local dockerfiles remotely without leaving your cozy environment.
- Kubei 🌟 is a vulnerabilities scanning tool that allows users to get an accurate and immediate risk assessment of their kubernetes clusters. Kubei scans all images used in a Kubernetes cluster including images of application pods and system pods
- Shell-operator is a tool for running event-driven scripts in a Kubernetes cluster. Shell-operator provides an integration layer between Kubernetes cluster events and shell scripts.
- sinker is a tool to sync images from one container registry to another This is useful in cases when you rely on images that exist in a public container registry, but need to pull from a private registry.
- ecrcp aims to mimic cp command in Linux systems as closely as possible in its implementation. Consider ecrcp to be the cp equivalent to copy container images from docker hub to ECR.
- Checkov 🌟 is a static code analysis tool for infrastructure-as-code. It scans cloud infrastructure provisioned using Terraform, Cloudformation, Kubernetes, Serverless or ARM Templates and detects security and compliance misconfigurations.
- Cluster Cloner 🌟 Reads the Kubernetes clusters in one location (optionally filtering by labels) and clones them into another (or just outputs JSON as a dry run), to/from AWS, GCP, and Azure.
- kubectl-eksporter 🌟 A simple Ruby-script to export k8s resources, and removes a pre-defined set of fields for later import.
- kubectl-neat 🌟 Remove clutter from Kubernetes manifests to make them more readable.
- medium: 4 Simple Kubernetes Terminal Customizations to Boost Your Productivity
- kubeswitch: Kubernetes Version Switcher Easily switch kubectl binary versions.
- Move2Kube 🌟 Move2Kube is a command-line tool that accelerates the process of re-platforming to Kubernetes/Openshift. It does so by analysing the environment and source artifacts, and asking guidance from the user when required. This tool that can help users migrate from Cloud Foundry and Docker Swarm to Kubernetes.
- skopeo 🌟 Use skopeo to copy images between registries
- junit5-kubernetes aims at using a kubernetes pod directly form your junit5 test classes.
- mbuffett.com: Replacing ngrok with ktunnel
- seaworthy: A CLI to verify #Kubernetes resource health !! 🌟 Post-apply check to verify your K8s resources are Seaworthy
- kVDI A Kubernetes-native Virtual Desktop Infrastructure.
- kcg 🌟 is a command line tool that lets you create kubeconfig files. The user can interactively choose a namespace and service account and generate a config file with token authentication that has same RBAC permissions assigned to chosen service account.
- Compass 🌟 Quickly Pinpoint Errors in your Kubernetes Deployment.
- kubernetes-dashboard-iam-proxy An in-browser version of aws eks get-token to enable cluster authentication using IAM for the Kubernetes dashboard.
- kube-vip is a Load-Balancer for both inside and outside a Kubernetes cluster.
- Gitkube 🌟 is a tool for building and deploying Docker images on Kubernetes using git push. After a simple initial setup, users can simply keep git push-ing their repos to build and deploy to Kubernetes automatically.
- vesion-checker is a Kubernetes utility for observing the current versions of images running in the cluster, as well as the latest available upstream. These checks get exposed as Prometheus metrics to be viewed on a dashboard, or soft alert cluster operators.
- Descheduler for Kubernetes 🌟 -> wecloudpro.com: Balance your Kubernetes cluster
- kubediff 🌟 is a tool for Kubernetes to show you the differences between your running configuration and your version controlled configuration.
- awslabs/karpenter Karpenter is a metrics-driven autoscaler built for Kubernetes and can run in any Kubernetes cluster anywhere. It's performant, extensible, and can autoscale anything that implements the Kubernetes scale subresource.
- ekglue - Envoy/Kubernetes glue ekglue is a projects that facilitates connecting Kubernetes and Envoy, allowing Envoy to read Kubernetes services and endpoints as clusters (via CDS) and endpoints (via EDS).
- salesforce/Craft CRAFT helps you to create Kubernetes Operators in a robust and generic way for any resource, letting developers focus on CRUD operations of resource management in a Dockerfile.
- hyscale 🌟 HyScale takes a declarative definition of your service config and it generates Dockerfile, Container Image, Kubernetes Manifests (YAMLs) and deploys to any Kubernetes Cluster.
- kubectl-reap is a kubectl plugin that deletes unused Kubernetes resources 🌟
- KubeLinter 🌟 is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
- KRD: Kubernetes Reference Deployment krd offers a reference for deploying a Kubernetes cluster. Its ansible playbooks allow to provision a deployment on Bare-metal or Virtual Machines
- kubeshell is a command line tool to interactively shell in to (and out of) kubernetes pods.
- k8s-harness 🌟 lets you create a disposable Kubernetes cluster with vagrant and Ansible to test your app in a prod-like environment.
- Secret backup operator is an operator designed to backup secrets on a Kubernetes cluster. Backup happens when secrets are modified.
Enforcing Policies and governance for kubernetes workloads with Conftest
- Accelerated Feedback Loops when Developing for Kubernetes with Conftest Learn how to validate Kubernetes resources with Conftest for faster feedback loops
- Deprek8ion is a set of rego policies to monitor Kubernetes APIs deprecations and designed to work with conftest.
- k8s-worker-pod-autoscaler scales the replicas in a deployment based on observed queue length.
- kubectl-prune / kubectl-reap 🌟 is a kubectl plugin that prunes unused Kubernetes resources.
- kconnect - The Kubernetes Connection Manager CLI 🌟 kconnect is a CLI utility that can be used to discover and securely access Kubernetes clusters across multiple operating environments. Based on the authentication mechanism chosen the CLI will discover Kubernetes clusters you are allowed to access in a target hosting environment (i.e. EKS, AKS, Rancher) and generate a kubeconfig for a chosen cluster.
- konstraint is a CLI tool to assist with the creation and management of templates and constraints when using Gatekeeper.
Kubernetes Backup and Migrations
- kube-backup: Kubernetes resource state sync to git
- Stash If you are running production workloads in Kubernetes, you might want to take backup of your disks, databases etc. Stash is a cloud native data backup and recovery solution for Kubernetes workloads
- thenewstack.io: Cloud Native Backups, Disaster Recovery and Migrations on Kubernetes
- rancher.com: The No. 1 Rule of Disaster Recovery
- rancher.com: Disaster Recovery Preparedness for Your Kubernetes Clusters 🌟
- k8s-snapshots: Automatic Volume Snapshots on Kubernetes is an operator that creates and expires snapshots according to annotations to your PersistentVolume or PersistentVolumeClaim resources.
- infracloud.io: Protecting Kubernetes applications data using Kanister
- thenewstack.io: DevSecOps Teams Need Application-Consistent Backups for Kubernetes Workloads
- percona.com: Using Volume Snapshot/Clone in Kubernetes (GKE & Percona Kubernetes Operator for XtraDB Cluster)
- kasten.io: Kubernetes Application Mobility Reliable and Powerful Migration of Complete Applications Across Kubernetes Clusters.
- longhorn issue: Move replica to a different server
Backup with Velero
- akomljen.com: Kubernetes Backup and Restore with Velero 🌟
- wecloudpro.com: Kubernetes Disaster Recovery with Velero 🌟
- medium: Backup,Restore & Migrate Kubernetes cluster with Velero
- medium: Velero backup/restore for K8s Stateful Applications managed by Operators
Kubernetes Troubleshooting
- Kubernetes troubleshooting diagram 🌟
- Understanding Kubernetes cluster events 🌟
- nigelpoulton.com: Troubleshooting kubernetes service discovery - Part 1
- medium: 5 tips for troubleshooting apps on Kubernetes
- managedkube.com: Troubleshooting a Kubernetes ingress
Debugging Techniques and Strategies. Debugging with ephemeral containers
- kubectl-debug
- kubesandclouds.com: Debugging with ephemeral containers in K8s (v1.18+)
- How to quarantine pods 🌟
- KDBG: Small Kubernetes debugging container KDBG (Kubernetes Debuger) is a small docker container based on lastest Alpine Linux image, used for debugging Kubernetes clusters from inside a pod.
- inspektor-gadget Collection of gadgets for debugging and introspecting Kubernetes applications using BPF
- learnk8s.io: A visual guide on troubleshooting Kubernetes deployments 🌟
- StatusBay 🌟 is a tool that provides the missing visibility into the K8S deployment process. The main goal is to ease the experience of troubleshooting and debugging services in K8S and provide confidence while making changes.
- medium: Better Debugging Environment for your Micro-Services
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>THREAD: How to quarantine a Pod in Kubernetes.
— Daniele Polencic (@danielepolencic) June 24, 2020
This technique helps you with debugging running Pods in production.
The Pod is detached from the Service (no traffic), and you can troubleshoot it live.
Let's get started! pic.twitter.com/E7AUh2ylM7
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>THREAD: How to gracefully shut down Pods without dropping production traffic in Kubernetes
— Daniele Polencic (@danielepolencic) July 6, 2020
If you've ever noticed dropped connection after a rolling upgrade, this thread digs into the details.
Let's start: 𝘸𝘩𝘢𝘵 𝘩𝘢𝘱𝘱𝘦𝘯𝘴 𝘸𝘩𝘦𝘯 𝘢 𝘗𝘰𝘥 𝘪𝘴 𝘥𝘦𝘭𝘦𝘵𝘦𝘥? pic.twitter.com/jS5litVUlw
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>THREAD: How does the scheduler work in Kubernetes?
— Daniele Polencic (@danielepolencic) September 24, 2020
The scheduler is in charge of deciding where your pods are deployed in the cluster.
It might sound like an easy job, but it's rather complicated!
Let's dive into it. pic.twitter.com/iC1vnargc4
Kubernetes Tutorials
- kubernetes.io: Kubernetes Tutorials 🌟 Official documentation from Kubernetes. One can go through this official documentation and can learn much more about Kubernetes.
- devopscube.com: Kubernetes Tutorials For Beginners: Getting Started Guide 🌟
- Intoduction to Kubernetes (slides, beginners and advanced) 🌟
- medium.com: Kubernetes 101: Pods, Nodes, Containers, and Clusters
- medium.com: Learn Kubernetes in Under 3 Hours: A Detailed Guide to Orchestrating Containers
- kubernetestutorials.com: Install and Deploy Kubernetes on CentOs 7
- medium.com: Simplifying orchestration with Kubernetes
- aquasec.com: 70 Best Kubernetes Tutorials 🌟 Valuable Kubernetes tutorials from multiple sources, classified into the following categories: Kubernetes AWS and Azure tutorials, networking tutorials, clustering and federation tutorials and more.
- cloud.google.com: kubernetes comic 🌟 Learn about kubernetes and how you can use it for continuous integration and delivery.
- magalix.com: Kubernetes 101 - Concepts and Why It Matters
- Google Play: Learning Solution - Learn Kubernetes 🌟
- Google Play: TomApp - Learn Kubernetes
- Dzone refcard: Getting Started with Kubernetes
- dzone: The complete kubernetes collection tutorials and tools 🌟
- dzone: kubernetes in 10 minutes a complete guide to look
- magalix.com: The Best Kubernetes Tutorials 🌟
- 35 Advanced Tutorials to Learn Kubernetes 🌟
- geekflare.com: 14 Kubernetes Tutorials for Beginner to Master
- freecodecamp.org: The Kubernetes Handbook 🌟
- youtube: Kubernetes Pods and ReplicaSets explained 🌟
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>THREAD: What happens when you create a Pod in Kubernetes?
— Daniele Polencic (@danielepolencic) August 6, 2020
Spoiler: a surprisingly simple task reveals a complicated workflow that touches several components in the cluster. pic.twitter.com/SNEufo0lBe
Online Training
- katacoda.com 🌟 Interactive Learning and Training Platform for Software Engineers
- kubernetesbyexample.com 🌟
- Play with Kubernetes 🌟 A simple, interactive and fun playground to learn Kubernetes
- udemy.com: Learn DevOps: The Complete Kubernetes Course 🌟
- udemy.com: Learn DevOps: Advanced Kubernetes Usage 🌟
- Certified Kubernetes Administrator CKA course notes — diagrams for each subject area and use as reference for future refresher 🌟
Famous Kubernetes resources of 2019
- Kubernetes for developers
- Kubernetes for the Absolute Beginners
- Kubernetes: Getting Started (Free)
- Kubernetes Tutorial: Learn the Basics
- Complete Kubernetes Course
- Getting started with Kubernetes
Famous Kubernetes resources of 2020
- javarevisited.blogspot.com: Top 5 courses to Learn Docker and Kubernetes in 2020 - Best of Lot
- medium.com: Top 15 Online Courses to Learn Docker, Kubernetes, and AWS for Fullstack Developers and DevOps Engineers
- medium.com: 7 Free Online Courses to Learn Kubernetes in 2020
- skillslane.com: 10 Best Kubernetes Courses [2020]: Beginner to Advanced Courses
K8s Diagrams
- k8s-diagrams 🌟 A collection of diagrams explaining kubernetes by cloudogu, written in PlantUML.
Kubernetes Patterns
- github.com/k8spatterns/examples 🌟 Examples for "Kubernetes Patterns - Reusable Elements for Designing Cloud-Native Applications"
- kubernetes.io: container design patterns
- magalix.com: Kubernetes Patterns - The Service Discovery Pattern 🌟
- gardener.cloud: Kubernetes Antipatterns
- dzone.com: Performance Patterns in Microservices-Based Integrations 🌟
- developers.redhat.com: Top 10 must-know Kubernetes design patterns
- medium: 10 Anti-Patterns for Kubernetes Deployments 🌟 Common practices in Kubernetes deployments that have better solutions
- learnsteps.com: How Kubernetes works on reconciler pattern
- learncloudnative.com: Sidecar Container Pattern
- towardsdatascience.com: Kubernetes pattern for applications with external environment configuration 🌟 Learn how to decouple configuration from the application using git-sync, Kubernetes init-containers, ConfigMaps and volumes.
e-Books
Famous Kubernetes resources of 2019
- Kubernetes essentials E-book 🌟
- Cloud-Native DevOps With Kubernetes O'Reilly book (Free) 🌟
- Kubernetes: Up and Running, 2nd Edition🌟 Dive into the Future of Infrastructure. By Brendan Burns, Kelsey Hightower, Joe Beda
- Container Security
Kubernetes Patterns eBooks
- k8spatterns.io: Free Kubernetes Patterns e-book 🌟 , ref
- magalix.com: Free Kubernetes Application Architecture Patterns eBook 🌟
Kubernetes Operators
- kruschecompany.com: What is a Kubernetes Operator and Where it Can be Used?
- kruschecompany.com: Prometheus Operator – Installing Prometheus Monitoring Within The Kubernetes Environment
- redhat.com: Kubernetes operators - Embedding operational expertise side by side with containerized applications
- hashicorp.com: Creating Workspaces with the HashiCorp Terraform Operator for Kubernetes
- banzaicloud.com: Kafka rolling upgrade made easy with Supertubes
- devops.com: Day 2 for the Operator Ecosystem 🌟
- KUDO: The Kubernetes Universal Declarative Operator 🌟 KUDO is a toolkit that makes it easy to build Kubernetes Operators, in most cases just using YAML.
- itnext.io: Operator Lifecycle Manager (OLM) 🌟
- kube-fluentd-operator 🌟 is a sane, no-brainer Kubernetes+Helm distribution of Fluentd with batteries included, config validation, no needs to restart, with sensible defaults and best practices built-in. You can use Kubernetes labels to filter/route logs!
- Domain-harvester is an operator that collects domains from all Ingress resources in a Kubernetes cluster and provides its expiry information
- Cass Operator The DataStax Kubernetes Operator for Apache Cassandra®
- Kotal operator is cloud agnostic blockchain deployer that make it easy to deploy highly available, self-managing, self-healing blockchain infrastructure (networks, nodes, storage clusters ...) on any cloud.
- Speculator: Redis Operator A Golang based redis operator that will make/oversee Redis standalone/cluster mode setup on top of the Kubernetes. It can create a redis cluster setup with best practices on Cloud as well as the Bare metal environment. Also, it provides an in-built monitoring capability using redis-exporter.
- github.com/carlosedp/lbconfig-operator: External Load Balancer Operator 🌟 a Kubernetes/openshift Operator to dynamically configure external load-balancers distributing the traffic to the cluster nodes. It's not 100% (will it ever be?) but already configures the F5 BigIP. The idea is to have multiple LB backends soon.
- Sentry Operator A Kubernetes operator for automating the provisioning and management of Sentry resources via Kubernetes CRDs.
- thenewstack.io: When to Use, and When to Avoid, the Operator Pattern 🌟
- infoq.com: Kubernetes Operators in Depth
- DB Operator 🌟 is a Kubernetes Operator for the management of cloud databases, primarily Google Cloud SQL(GCSQL). It is designed to support the on demand creation of test environments in CI/CD pipelines.
- cncf.io: Kubernetes Operators 101
- container-solutions.com: Kubernetes Operators Explained
- kubeload - load testing is a Kubernetes operator that lets you configure your load-test initial load, max load, interval and hatch-rate. You can use CRD to define all the parameters and repeat your load testing experiments.
- contentful.com: Open-sourcing kube-secret-syncer: A Kubernetes operator to sync secrets from AWS Secrets Manager
- registry-creds is a Kubernetes operator that can be used to propagate a single ImagePullSecret to all namespaces within your cluster. The primary reason for creating this operator is to make it easier to consume images from Docker Hub.
- gemini is a Kubernetes CRD and operator for managing VolumeSnapshots. This allows you to back up your PersistentVolumes on a regular schedule, retire old backups, and restore backups with minimal downtime.
- Kdo: deployless development on Kubernetes 🌟 Kdo is a command line tool that enables developers to run, develop and test code changes in a realistic deployed setting without having to deal with the complexity of Kubernetes deployment and configuration.
K8Spin Operator. Kubernetes multi-tenant operator
- K8Spin Operator 🌟 Kubernetes multi-tenant operator. Enables multi-tenant capabilities in your Kubernetes Cluster. We defined some small features to implement. If you know python & Kubernetes and want to contribute to this project, ping us!
- thenewstack.io: K8Spin Provides Multitenant Isolation for Kubernetes
- Discover K8Spin open source software
Flux. The GitOps Operator for Kubernetes
- Flux 🌟 The GitOps operator for Kubernetes
- docs.fluxcd.io
- github: Flux CD
- dzone: Developing Applications on Multi-tenant Clusters With Flux and Kustomize Take a look at how multiple teams can use the resources of a single cluster to develop an application.
K8s KPIs with Kuberhealthy Operator
- K8s KPIs with Kuberhealthy 🌟 transforming Kuberhealthy into a Kubernetes operator for synthetic monitoring. This new ability granted developers the means to create their own Kuberhealthy check containers to synthetically monitor their applications and clusters. Additionally, we created a guide on how to easily install and use Kuberhealthy in order to capture some helpful synthetic KPIs.
Writing Kubernetes Operators
- Kubernetes.io: Operator pattern
- opensource.com: Build a Kubernetes Operator in 10 minutes with Operator SDK
- magalix.com: Creating Custom Kubernetes Operators
- medium.com: Writing Your First Kubernetes Operator
- bmc.com: What Is a Kubernetes Operator?
- Writing a Kubernetes Operator in Java Cheat Sheet
- linuxera.org: Writing Operators using the Operator Framework SDK
- openshift.com: 7 Best Practices for Writing Kubernetes Operators: An SRE Perspective
- medium: From Zero to Kubernetes Operator In this post you will learn how to build a simple Kubernetes Operator. The article starts with the main concepts and then continues with hands-on labs where you will create a Kubernetes Operator from the ground up.
Kubernetes Networking
- kubernetes.io: The Kubernetes network model. How to implement the Kubernetes networking model
- ovh.com - getting external traffic into kubernetes: clusterip, nodeport, loadbalancer and ingress
- stackrox.com: Kubernetes Networking Demystified: A Brief Guide
- medium.com: Fighting Service Latency in Microservices With Kubernetes
- medium.com: Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what? 🌟
- blog.alexellis.io: Get a LoadBalancer for your private Kubernetes cluster
- dustinspecker.com: How Do Kubernetes and Docker Create IP Addresses?!
- youtube: Kubernetes Ingress Explained Completely For Beginners
- AWS and Kubernetes Networking Options and Trade-Offs (part 1)
- AWS and Kubernetes Networking Options and Trade-Offs (part 2)
- AWS and Kubernetes Networking Options and Trade-Offs (part 3)
- medium: Service Types in Kubernetes? 🌟 A Service enables network access to a set of Pods in Kubernetes.
- containo.us: Kubernetes Ingress & Service API Demystified
- speakerdeck.com: Kubernetes and networks. Why is this so dan hard? 🌟
- opensource.com: Why I use Ingress Controllers to expose Kubernetes services Kubernetes ingress controllers will make or break your cloud architecture.
- howtoforge.com: Network Policy in Kubernetes 🌟 By default, pods accept traffic from any source. A network policy helps to specify how a group of pods can communicate with each other and other network endpoints.
- blog.nody.cc: Verify your Kubernetes Cluster Network Policies: From Faith to Proof
- infoq.com: Kubernetes Ingress Is Now Generally Available
- Learnk8s: Comparison of Kubernetes Ingress Controllers 🌟🌟 How do you choose the right Kubernetes Ingress controller when: Not all Ingress controllers support UDP, Only Kong has a free LDAP integration, Nginx Ingress and HAProxy are the only two ingress without CRDs.
- blog.alexellis.io: Get kubectl access to your private cluster from anywhere
- jmrobles.medium.com: How to setup Hetzner load balancer on a Kubernetes cluster
- kubernetes.io: Scaling Kubernetes Networking With EndpointSlices EndpointSlices are a new Kubernetes API that provides a scalable and extensible alternative to the Endpoints API.
Kubernetes Ingress Specification
- Supporting the Evolving Ingress Specification in Kubernetes 1.18
- medium: Ingress service types in Kubernetes 🌟
Xposer Kubernetes Controller To Manage Ingresses
- Xposer 🌟 A Kubernetes controller to manage (create/update/delete) Kubernetes Ingresses based on the Service
- Problem: We would like to watch for services running in our cluster; and create Ingresses and generate TLS certificates automatically (optional)
- Solution: Xposer can watch for all the services running in our cluster; Creates, Updates, Deletes Ingresses and uses certmanager to generate TLS certificates automatically based on some annotations.
Software-Defined IP Address Management (IPAM)
- IP Address Management (IPAM)
- fusionlayer.com: Software-Defined IP Address Management (IPAM)
- Cloud computing and service automation are changing the way in which applications and data are being delivered and consumed. The existing 30-year-old networking model is failing to keep up with the automated service architectures and the Internet of Things (IoT) based on end-to-end automation.
- To facilitate the migration to cloud-era computing, service providers and data centers must add networking into the automated service workflows. This requires agility and elasticity that traditional networking products are not designed to provide. As IT environments of tomorrow involve a plethora of orchestrators and controllers spinning up services and applications inside shared networks, they all must be managed and provisioned by a unified solution authoritative for all network-related information.
CNI Container Networking Interface
- Kubernetes.io: Network Plugins
- rancher.com: Container Network Interface (CNI) Providers
- github.com/containernetworking 🌟
- dzone: How to Understand and Set Up Kubernetes Networking 🌟 Take a look at this tutorial that goes through and explains the inner workings of Kubernetes networking, including working with multiple networks.
- medium: Container Networking Interface aka CNI
- itnext.io: Benchmark results of Kubernetes network plugins (CNI) over 10Gbit/s network (Updated: August 2020)
List of existing CNI Plugins (IPAM)
- Kubernetes Networking
- Overlay Network plugins:
- Routed Network Plugins:
- IPAM modules:
- dhcp
- host-local
- Multi CNI plugins:
Project Calico
- tigera.io
- Project Calico 🌟 Secure networking for the cloud native era
- medium: Calico for Kubernetes networking: the basics & examples
- thenewstack.io: Tigera's Calico Aims to Ease Connectivity Pain with Kubernetes
DNS Service with CoreDNS
Kubernetes Node Local DNS Cache
Kubernetes Sidecars
- banzaicloud.com: Sidecar container lifecycle changes in Kubernetes 1.18 🌟
- medium: Delaying application start until sidecar is ready Taking advantage of a peculiar Kubernetes implementation detail to block containers from starting before another container starts.
Kubernetes Security
- cilium.io
- Dzone - devops security at scale
- Dzone - Kubernetes Policy Management with Kyverno
- Dzone - OAuth 2.0
- Kubernetes Security Best Practices 🌟
- Kubernetes Certs
- Using SSL certificates from Let’s Encrypt in your Kubernetes Ingress via cert-manager 🌟
- jeffgeerling.com: Everyone might be a cluster-admin in your Kubernetes cluster
- Microsoft.com: Attack matrix for Kubernetes 🌟
- codeburst.io: 7 Kubernetes Security Best Practices You Must Follow
- itnext.io: Effective Secrets with Vault and Kubernetes
- thenewstack.io: Laying the Groundwork for Kubernetes Security, Across Workloads, Pods and Users
- horovits.wordpress.com: Kubernetes Security Best Practices
- containerjournal.com: How to Secure Your Kubernetes Cluster 🌟
- medium: How to Harden Your Kubernetes Cluster for Production 🌟
- kubernetes.io: Cloud native security for your clusters
- tldrsec.com: Risk8s Business: Risk Analysis of Kubernetes Clusters 🌟 A zero-to-hero guide for assessing the security risk of your Kubernetes cluster and hardening it.
- microsoft.com: Threat matrix for Kubernetes 🌟
RBAC
- Configure RBAC in Kubernetes Like a Boss 🌟 Learn how to configure RBAC in kubernetes. In this post, you will configure RBAC both with kubectl and yaml definitions.
- infracloud.io: How to setup Role based access (RBAC) to Kubernetes Cluster 🌟
- Kubernetes RBAC Permission Manager 🌟
- Krane 🌟 is a Kubernetes RBAC static analysis tool. It identifies potential security risks in K8s RBAC design and makes suggestions on how to mitigate them. Krane dashboard presents current RBAC security posture and lets you navigate through its definition.
Admission Control
Security Best Practices Across Build, Deploy, and Runtime Phases
- Kubernetes Security 101: Risks and 29 Best Practices 🌟
- Build Phase:
- Use minimal base images
- Don’t add unnecessary components
- Use up-to-date images only
- Use an image scanner to identify known vulnerabilities
- Integrate security into your CI/CD pipeline
- Label non-fixable vulnerabilities
- Deploy Phase:
- Use namespaces to isolate sensitive workloads
- Use Kubernetes network policies to control traffic between pods and clusters
- Prevent overly permissive access to secrets
- Assess the privileges used by containers
- Assess image provenance, including registries
- Extend your image scanning to deploy phase
- Use labels and annotations appropriately
- Enable Kubernetes role-based access control (RBAC)
- Runtime Phase:
- Leverage contextual information in Kubernetes
- Extend vulnerability scanning to running deployments
- Use Kubernetes built-in controls when available to tighten security
- Monitor network traffic to limit unnecessary or insecure communication
- Leverage process whitelisting
- Compare and analyze different runtime activity in pods of the same deployments
- If breached, scale suspicious pods to zero
Kubernetes Authentication and Authorization
- kubernetes.io: Authenticating
- kubernetes.io: Access Clusters Using the Kubernetes API
- kubernetes.io: Accesing Clusters
- magalix.com: kubernetes authentication 🌟
- magalix.com: kubernetes authorization 🌟
- kubernetes login
- learnk8s.io: Authentication between microservices using Kubernetes identities 🌟
Kubernetes Authentication Methods
Kubernetes supports several authentication methods out-of-the-box, such as X.509 client certificates, static HTTP bearer tokens, and OpenID Connect.
X.509 client certificates
Static HTTP Bearer Tokens
- kubernetes.io: Access Clusters Using the Kubernetes API
- stackoverflow: Accessing the Kubernetes REST end points using bearer token
OpenID Connect
Implementing a custom Kubernetes authentication method
Pod Security Policies (SCCs - Security Context Constraints in OpenShift)
- Pod Security Policy (SCC in OpenShift) 🌟
- rancher.com: Enhancing Kubernetes Security with Pod Security Policies, Part 1
- developer.squareup.com: Kubernetes Pod Security Policies (PSP) an example with exception management
EKS Security
- Security Group Rules EKS
- EC2 ENI and IP Limit
- Calico in EKS
- Amazon EKS Best Practices Guide for Security 🌟
Kubernetes Scheduling and Scheduling Profiles
Assigning Pods to Nodes. Pod Affinity and Anti-Affinity
Pod Topology Spread Constraints and PodTopologySpread Scheduling Plugin
Kubernetes etcd
- medium: How to modify etcd data of your Kubernetes directly (without K8s API)
- medium: Getting Started with Kubernetes etcd
- sysdig.com: How to monitor etcd 🌟 Learning how to monitor etcd is of vital importance when running Kubernetes in production. Monitoring etcd will let you validate that things work as expected, while detecting and troubleshooting issues that could take your entire infrastructure down.
Kubernetes Storage
- itnext.io: Kubernetes: PersistentVolume and PersistentVolumeClaim — an overview with examples
- thenewstack.io: How Kubernetes provides networking and storage to applications
Kubernetes Volumes Guide
- Filesystem vs Volume vs Persistent Volume 🌟
- This is a guide that covers:
- How to set up and use volumes in Kubernetes
- What are persistent volumes, and how to use them
- How to use an NFS volume
- Shared data and volumes between pods
ReadWriteMany PersistentVolumeClaims
- Create ReadWriteMany PersistentVolumeClaims on your Kubernetes Cluster 🌟 Kubernetes allows us to provision our PersistentVolumes dynamically using PersistentVolumeClaims. Pods treat these claims as volumes. The access mode of the PVC determines how many nodes can establish a connection to it. We can refer to the resource provider’s docs for their supported access modes.
- Digital Ocean: Kuberntes PVC ReadWriteMany access mode alternative
Non-production Kubernetes Local Installers
- Minikube A tool that makes it easy to run Kubernetes locally inside a Linux VM. It's aimed on users who want to just test it out or use it for development. It cannot spin up a production cluster, it's a one node machine with no high availability.
- kind Kubernetes IN Docker - local clusters for testing Kubernetes
- store.docker.com: Docker Community Edition EDGE with kubernetes. Installing Kubernetes using the Docker Client Currently only available in Edge edition.
- medium.com: Local Kubernetes for Linux — MiniKube vs MicroK8s
- itnext.io: Run Kubernetes On Your Machine Several options to start playing with K8s in no time
- padok.fr: MiniKube, Kubeadm, Kind, K3S, how to get started on Kubernetes?
- loft.sh: Kubernetes Development Environments – A Comparison
Kubernetes in Public Cloud
GKE vs EKS vs AKS
- medium.com: Kubernetes Cloud Services: Comparing GKE, EKS and AKS
- stackrox.com: EKS vs GKE vs AKS - Evaluating Kubernetes in the Cloud
- youtube: Kubernetes Comparison A beautiful comparison of Kubernetes Services from GCP, AWS and Azure by learnk8s.
- medium: State of Managed Kubernetes 2020 EKS vs. AKS vs. GKE from a Developer’s Perspective
- medium: Managed Kubernetes Services Compared: GKE vs. EKS vs. AKS Comparing the three most popular managed Kubernetes platforms in features and overall experience.
AWS EKS (Hosted/Managed Kubernetes on AWS)
- dzone: kops vs EKS
- udemy.com: amazon eks starter kubernetes on aws
- eksctl: EKS installer
- medium: Implementing Kubernetes Cluster using AWS EKS (AWS Managed Kubernetes)
- Amazon EKS Security Best Practices
- thenewstack.io: Install and Configure OpenEBS on Amazon Elastic Kubernetes Service
- cloudonaut.io: Scaling Container Clusters on AWS: ECS and EKS 🌟
- magalix.com: Deploying Kubernetes Cluster With EKS 🌟 Fargate Deployment vs. Linux Workload
- Deploying Infrastructure (FrontEnd + BackEnd) on AWS using Amazon EKS
- How to track costs in multi-tenant Amazon EKS clusters using Kubecost
- EKS Service Accounts Explained In AWS you can assign IAM permissions to pods in your cluster. This article explains how it works.
- medium: Building the CI/CD of the Future, Creating the EKS Cluster 🌟
- Announcing the AWS Controllers for Kubernetes Preview
- daveops.xyz: Administrar usuarios en EKS
- aws.github.io: AWS Controllers for Kubernetes
- stacksimplify.com: AWS ALB Ingress Service - Basics 🌟
- Kubernetes PVCs with EFS provisioner
- Using Helm with Amazon EKS without kubeconfigs
- itnext.io: Migrating Apache Spark workloads from AWS EMR to Kubernetes
- Running spot instances effectively with Amazon EKS
- aws.amazon.com: How to track costs in multi-tenant Amazon EKS clusters using Kubecost
- medium: Designing a Kubernetes Cluster with Amazon EKS From Scratch 🌟
- en.sokube.ch: AWS + Kubernetes = AWS Elastic Kubernetes Service (EKS) 🌟
- aws.amazon.com: Operating a multi-regional stateless application using Amazon EKS
GCP and GKE
- Fetches all Primitive and Predefined GCP IAM Roles
- Using new traffic control features in External HTTP(S) load balancer
- Setting up NodeLocal DNSCache
- Looking ahead as GKE, the original managed Kubernetes, turns 5
- whizlabs.com: Introduction To Google Cloud Platform
- blog.doit-intl.com: How to Set Up Multi-Cluster Load Balancing with GKE
- codeburst.io: Google Kubernetes Engine Logging by Example
Tools for multi-cloud Kubernetes management
- Banzai Cloud 🌟
- Compare tools for multi-cloud Kubernetes management 🌟
- NetApp Kubernetes Service -- formerly StackPointCloud
- Cloudify
- Terraform
- Rancher
- Platform9 Managed Kubernetes
- Red Hat OpenShift
- Juke, from HTBase, now owned by Juniper Networks.
On-Premise Production Kubernetes Cluster Installers
Comparative Analysis of Kubernetes Deployment Tools
- A Comparative Analysis of Kubernetes Deployment Tools: Kubespray, kops, and conjure-up
- wecloudpro.com: Deploy HA kubernetes cluster in AWS in less than 5 minutes
Deploying Kubernetes Cluster with Kops
- GitHub: Kubernetes Cluster with Kops
- Kubernetes.io: Installing Kubernetes with kops
- Minikube and docker client are great for local setups, but not for real clusters. Kops and kubeadm are tools to spin up a production cluster. You don't need both tools, just one of them.
- On AWS, the best tool is kops. Since AWS EKS (hosted kubernetes) is currently available, this is the preferred option (you don't need to maintain the masters).
- For other installs, or if you can't get kops to work, you can use kubeadm.
- Setup kops in your windows with virtualbox.org and vagrantup.com . Once downloaded, to type a new linux VM, just spin up ubuntu via vagrant in cmd/powershell and run kops installer:
C:\ubuntu> vagrant init ubuntu/xenial64
C:\ubuntu> vagrant up
C:\ubuntu> vagrant ssh-config
C:\ubuntu> vagrant ssh
$ curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
$ chmod +x kops-linux-amd64
$ sudo mv kops-linux-amd64 /usr/local/bin/kops
Deploying Kubernetes Cluster with Kubeadm
- Kubernetes Cluster with Kubeadm It works on any deb / rpm compatible Linux OS, for example Ubuntu, Debian, RedHat or CentOS. This is the main advantage of kubeadm. The tool itself is still in beta (Q1 2018), but is expected to become stable somewhere this year. It's very easy to use and lets you spin kubernetes cluster in just a couple of minutes.
- medium.com: Demystifying High Availability in Kubernetes Using Kubeadm
- Setting Up a Kubernetes Cluster on Ubuntu 18.04
- itnext.io: Up and running out of the cloud — How to setup the Masters using kubeadm bootstrap In this article, you’ll see how to make use of kubeadm bootstrap to set up and join 3 master instances as members of our cluster.
- Set up a Bare Metal Kubernetes cluster with kubeadm
Deploying Kubernetes Cluster with Ansible
- Ansible Role - Kubernetes (Jeff Geerling)
- krd offers a reference for deploying a Kubernetes cluster. Its ansible playbooks allow to provision a deployment on Bare-metal or Virtual Machines
kube-aws Kubernetes on AWS
- Kubernetes on AWS (kube-aws) A command-line tool to declaratively manage Kubernetes clusters on AWS
Kubespray
- Kubespray
- redhat.com: An introduction to Kubespray By combining Ansible and Kubernetes, Kubespray can deploy Kubernetes clusters on multiple machines.
Conjure up
WKSctl
- Weave Kubernetes System Control - wksctl Open Source Weaveworks Kubernetes System
- WKSctl - A New OSS Kubernetes Manager using GitOps
- WKSctl: a Tool for Kubernetes Cluster Management Using GitOps
Terraform (kubernetes the hard way)
- Kelsey Hightower: kubernetes the hard way
- napo.io: Kubernetes The (real) Hard Way on AWS
- napo.io: Terraform Kubernetes Multi-Cloud (ACK, AKS, DOK, EKS, GKE, OKE)
- medium: Upgrading Kubernetes The Hard Way
- Monzo: we learned a lot from self-hosting Kubernetes, but we wouldn't do it again Don't need to do it the hard way anymore
- medium: Kubernetes the hard way on Docker
Caravan
ClusterAPI
- ClusterAPI
- itnext.io: Multi-Cloud and Multi-Cluster Declarative Kubernetes Cluster Creation and Management with Cluster API (CAPI — v1alpha3)
- medium: ClusterOps: 1-Line Commit to Upgrade Your Kubernetes Clusters 🌟
- cncf.io webinar: Deploying Kubernetes to bare metal using cluster API
- itnext.io: Multi-Cloud and Multi-Cluster Declarative Kubernetes Cluster Creation and Management with Cluster API (CAPI — v1alpha3)
Microk8s
k8s-tew
- k8s-tew Kubernetes is a fairly complex project. For a newbie it is hard to understand and also to use. While Kelsey Hightower’s Kubernetes The Hard Way, on which this project is based, helps a lot to understand Kubernetes, it is optimized for the use with Google Cloud Platform.
Kubernetes Distributions
Red Hat OpenShift
- Openshift Container Platform
- OKD The Community Distribution of Kubernetes that powers Red Hat OpenShift
Rancher
Weave Kubernetes Platform
- weave.works: Weave Kubernetes Platform Automate Enterprise Kubernetes the GitOps way
- github: Weave Net - Weaving Containers into Applications
Ubuntu Charmed Kubernetes
VMware Kubernetes Tanzu and Project Pacific
- blogs.vmware.com: Introducing Project Pacific (vSphere with Kubernetes)
- VMware vSphere 7 with Kubernetes - Project Pacific
- VMware Kubernetes Tanzu
- cormachogan.com: A first look at vSphere with Kubernetes in action
- cormachogan.com: Building a TKG Cluster in vSphere with Kubernetes
- blogs.vmware.com: VMware Tanzu Service Mesh, built on VMware NSX is Now Available!
KubeAcademy Pro (free training)
- tanzu.vmware.com: Introducing KubeAcademy Pro: In-Depth Kubernetes Training, Totally Free
- kube.academy/pro 🌟
Kontena Pharos
- Pharos 🌟 Kubernetes Distribution
- Stateful Kubernetes-In-a-Box with Kontena Pharos
Mirantis Docker Enterprise with Kubernetes and Docker Swarm
- Mirantis Docker Enterprise 3.1+ with Kubernetes
- Docker Enterprise 3.1 announced. Features:
- Istio is now built into Docker Enterprise 3.1!
- Comes with Kubernetes 1.17. Kubernetes on Windows capability.
- Enable Istio Ingress for a Kubernetes cluster with the click of a button
- Intelligent defaults to get started quickly
- Virtual services supported out of the box
- Inbuilt support for GPU Orchestration
- Launchpad CLI for Docker Enterprise deployment & upgrades
Mirantis k0s
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:
- kustomize Customization of kubernetes YAML configurations
- jsonnet data templating language
- jkcfg Configuration as Code with ECMAScript
- kubecfg A tool for managing complex enterprise Kubernetes environments as code.
- kubegen Simple way to describe Kubernetes resources in a structured way, but without new syntax or magic
- Pulumi
- 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.
SpringBoot with Docker
- spring.io: spring boot with docker
- spring.io: Creating Docker images with Spring Boot 2.3.0.M1
- learnk8s.io: Developing and deploying Spring Boot microservices on Kubernetes
Docker in Docker
- Building Docker images when running Jenkins in Kubernetes
- itnext.io: docker in docker
- code-maze.com: ci jenkins docker
- medium: quickstart ci with jenkins and docker in docker
- getintodevops.com: the simplest way to run docker in docker
- Docker in Docker on EKS:
Serverless with OpenFaas and Knative
[](https://www.xenonstack.com/blog/serverless-openfaas-java/)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.
Crossplane
Istio Service Mesh
Kubernetes interview questions
- Kubernetes Interview Questions and Answers 2019 2020
- intellipaat.com: Top Kubernetes Interview Questions and Answers
- automationreinvented.blogspot.com: Top 11 Kubernetes interview question and answers for SDET Devops QA SET-01?
Spanish Kubernetes Blogs
Container Ecosystem
Container Flowchart
- Assess managed Kubernetes services for your workloads. Managed services from cloud providers can simplify Kubernetes deployment but create some snags in a multi-cloud model. Follow three steps to see if these services can benefit you.
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>MEGATHREAD
— Daniele Polencic (@danielepolencic) August 26, 2020
Learn Kubernetes one Twitter thread at the time!
Below you can find a collection of threads about Kubernetes and Kubernetes-related tech!
I regularly add more, so you can follow me or @learnk8s for more updates! pic.twitter.com/0ingxHn9vx
Kubernetes Scripts
Spot instances in Kubernetes
Pixie. Instantly troubleshoot applications on Kubernetes
- Pixie 🌟 Instantly debug your applications on Kubernetes
- open source PxL scripts
{: style="width:60%"}
{: style="width:80%"}
{: style="width:70%"}

