Kubernetes Documentation
{"contributors":{"code-contributor":{"advanced":[{"icon":"fa-code-fork","label":"Learn about the release process","url":"https://github.com/kubernetes/release/blob/master/README.md"}],"foundational":[{"icon":"fa-book","label":"Read the Developer Guide","url":"https://github.com/kubernetes/community/blob/master/contributors/devel/README.md"}],"glossary_id":"code-contributor","id":"code-contributor","index":0,"intermediate":[{"icon":"fa-upload","label":"Learn about the Kubernetes Enhancement Proposal (KEP) process","url":"https://github.com/kubernetes/community/blob/master/keps/0001-kubernetes-enhancement-proposal-process.md"},{"icon":"fa-map-o","label":"Understand the API conventions","url":"https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md"}],"name":"Code Contributor"},"community-contributor":{"advanced":[{"icon":"fa-gavel","label":"Learn about Kubernetes community governance","url":"https://github.com/kubernetes/community/blob/master/governance.md"}],"foundational":[{"icon":"fa-users","label":"Contribute to the Kubernetes OSS project","url":"https://github.com/kubernetes/community/blob/master/contributors/guide/README.md"},{"icon":"fa-graduation-cap","label":"Find out about mentoring initiatives","url":"https://github.com/kubernetes/community/blob/master/mentoring/README.md"}],"id":"community-contributor","index":1,"intermediate":[{"icon":"fa-user-plus","label":"Apply for community membership as a member, reviewer, approver, owner, or maintainer","url":"https://github.com/kubernetes/community/blob/master/community-membership.md"}],"name":"Community Contributor","short_desc":"A person who works to build the Kubernetes community (e.g. by organizing meetups)."},"docs-contributor":{"advanced":[{"icon":"fa-tag","label":"Add feature state tags","url":"/docs/home/contribute/includes/#feature-state"},{"icon":"fa-folder-o","label":"Add tabs to display multiple flavors of content","url":"/docs/home/contribute/includes/#tabs"}],"foundational":[{"icon":"fa-users","label":"Contribute to the Kubernetes documentation","url":"/editdocs/"},{"icon":"fa-book","label":"Learn about documentation style","url":"/docs/home/contribute/style-guide/"},{"icon":"fa-bug","label":"Review documentation issues","url":"/docs/home/contribute/review-issues/"},{"icon":"fa-pencil-square-o","label":"Create a documentation pull request (PR)","url":"/docs/contribute/start/"},{"icon":"fa-eye","label":"Stage documentation changes","url":"/docs/home/contribute/stage-documentation-changes/#staging-a-pull-request"}],"id":"docs-contributor","index":2,"intermediate":[{"icon":"fa-plus-circle","label":"Write a new topic","url":"/docs/home/contribute/write-new-topic/"},{"icon":"fa-cloud-download","label":"Stage documentation changes locally","url":"/docs/home/contribute/stage-documentation-changes/#staging-locally-using-docker"},{"icon":"fa-clone","label":"Apply page templates","url":"/docs/home/contribute/page-templates/"},{"icon":"fa-exclamation-circle","label":"Add callout formatting","url":"/docs/home/contribute/style-guide/#callout-formatting"}],"name":"Docs Contributor","short_desc":"A person who writes documentation for the Kubernetes project (e.g. this site)."}},"migrators":{"docker-compose-swarm":{"advanced":[{"label":"b1: advanced stuff","url":"#"},{"label":"b2: advanced stuff","url":"#"},{"label":"b3: advanced stuff","url":"#"}],"foundational":[{"label":"b1: foundational stuff","url":"#"},{"label":"b2: foundational stuff","url":"#"},{"label":"b3: foundational stuff","url":"#"}],"id":"docker-compose-swarm","index":1,"intermediate":[{"label":"b1: intermediate stuff","url":"#"},{"label":"b2: intermediate stuff","url":"#"},{"label":"b3: intermediate stuff","url":"#"}],"name":"Migrating from Docker Compose and Swarm"},"heroku":{"advanced":[{"label":"c1: advanced stuff","url":"#"},{"label":"c2: advanced stuff","url":"#"},{"label":"c3: advanced stuff","url":"#"}],"foundational":[{"label":"c1: foundational stuff","url":"#"},{"label":"c2: foundational stuff","url":"#"},{"label":"c3: foundational stuff","url":"#"}],"id":"heroku","index":2,"intermediate":[{"label":"c1: intermediate stuff","url":"#"},{"label":"c2: intermediate stuff","url":"#"},{"label":"c3: intermediate stuff","url":"#"}],"name":"Migrating from Heroku (PaaS)"},"mesos":{"advanced":[{"label":"d1: advanced stuff","url":"#"},{"label":"d2: advanced stuff","url":"#"},{"label":"d3: advanced stuff","url":"#"}],"foundational":[{"label":"d1: foundational stuff","url":"#"},{"label":"d2: foundational stuff","url":"#"},{"label":"d3: foundational stuff","url":"#"}],"id":"mesos","index":3,"intermediate":[{"label":"d1: intermediate stuff","url":"#"},{"label":"d2: intermediate stuff","url":"#"},{"label":"d3: intermediate stuff","url":"#"}],"name":"Migrating from Apache Mesos"},"vmware-openstack":{"advanced":[{"label":"a1: advanced stuff","url":"#"},{"label":"a2: advanced stuff","url":"#"},{"label":"a3: advanced stuff","url":"#"}],"foundational":[{"label":"a1: foundational stuff","url":"#"},{"label":"a2: foundational stuff","url":"#"},{"label":"a3: foundational stuff","url":"#"}],"id":"vmware-openstack","index":0,"intermediate":[{"label":"a1: intermediate stuff","url":"#"},{"label":"a2: intermediate stuff","url":"#"},{"label":"a3: intermediate stuff","url":"#"}],"name":"Migrating from VMware and/or OpenStack"}},"users":{"app-developer":{"advanced":[{"icon":"fa-sliders","label":"Deploy an application with advanced features","url":"/docs/user-journeys/users/application-developer/advanced"},{"icon":"fa-arrows","label":"Extend the Kubernetes API","url":"/docs/user-journeys/users/application-developer/advanced#section-2"},{"icon":"fa-book","label":"Explore additional resources","url":"/docs/user-journeys/users/application-developer/advanced#section-3"}],"foundational":[{"icon":"fa-television","label":"Get started with a cluster","url":"/docs/user-journeys/users/application-developer/foundational"},{"icon":"fa-retweet","label":"Deploy an application","url":"/docs/user-journeys/users/application-developer/foundational#section-2"},{"icon":"fa-cog","label":"Understand basic Kubernetes architecture","url":"/docs/user-journeys/users/application-developer/foundational#section-3"},{"icon":"fa-book","label":"Explore additional resources","url":"/docs/user-journeys/users/application-developer/foundational#section-4"}],"glossary_id":"application-developer","id":"app-developer","index":0,"intermediate":[{"icon":"fa-cogs","label":"Learn additional workload patterns","url":"/docs/user-journeys/users/application-developer/intermediate"},{"icon":"fa-retweet","label":"Deploy a production-ready workload","url":"/docs/user-journeys/users/application-developer/intermediate#section-2"},{"icon":"fa-scissors","label":"Improve your dev workflow with tooling","url":"/docs/user-journeys/users/application-developer/intermediate#section-3"},{"icon":"fa-book","label":"Explore additional resources","url":"/docs/user-journeys/users/application-developer/intermediate#section-4"}],"name":"Application Developer"},"cluster-operator":{"advanced":[{"icon":"fa-puzzle-piece","label":"Connect to managed services using Service Catalog","url":"/docs/concepts/service-catalog/"},{"icon":"fa-arrows","label":"Extend a Kubernetes cluster","url":"/docs/concepts/overview/extending/"},{"icon":"fa-lock","label":"Create a Pod Security Policy","url":"/docs/concepts/policy/pod-security-policy/"},{"icon":"fa-tachometer","label":"Define a Resource Quota","url":"/docs/concepts/policy/resource-quotas/"}],"foundational":[{"icon":"fa-globe","label":"Get an overview of Kubernetes","url":"/docs/user-journeys/users/cluster-operator/foundational"},{"icon":"fa-cog","label":"Learn about Kubernetes basics","url":"/docs/user-journeys/users/cluster-operator/foundational#section-2"},{"icon":"fa-info-circle","label":"Get information about my cluster","url":"/docs/user-journeys/users/cluster-operator/foundational#section-3"},{"icon":"fa-compass","label":"Explore additional resources","url":"/docs/user-journeys/users/cluster-operator/foundational#section-4"}],"glossary_id":"cluster-operator","id":"cluster-operator","index":1,"intermediate":[{"icon":"fa-sliders","label":"Work with Ingress, Networking, Storage, Workloads","url":"/docs/user-journeys/users/cluster-operator/intermediate"},{"icon":"fa-shield","label":"Implement security best practices","url":"/docs/user-journeys/users/cluster-operator/intermediate#section-2"},{"icon":"fa-heartbeat","label":"Implement custom logging and monitoring","url":"/docs/user-journeys/users/cluster-operator/intermediate#section-3"},{"icon":"fa-book","label":"Additional Resources","url":"/docs/user-journeys/users/cluster-operator/intermediate#section-4"}],"name":"Cluster Operator"}}}
A person who develops and contributes code to the Kubernetes open source codebase.
A person who works to build the Kubernetes community (e.g. by organizing meetups).
A person who writes documentation for the Kubernetes project (e.g. this site).
A person who writes an application that runs in a Kubernetes cluster.
A person who configures, controls, and monitors clusters.
Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. The open source project is hosted by the Cloud Native Computing Foundation (CNCF).
.
Foundational
Intermediate
Advanced Topics
01 - Installing kubeadm
02 - Creating a single master cluster with kubeadm
03 - Configuring each kubelet in your cluster using kubeadm
02 - Creating a single master cluster with kubeadm
03 - Configuring each kubelet in your cluster using kubeadm
01 - Assign Memory Resources to Containers and Pods
02 - Assign CPU Resources to Containers and Pods
03 - Configure Quality of Service for Pods
04 - Assign Extended Resources to a Container
05 - Configure a Pod to Use a Volume for Storage
06 - Configure a Pod to Use a PersistentVolume for Storage
02 - Assign CPU Resources to Containers and Pods
03 - Configure Quality of Service for Pods
04 - Assign Extended Resources to a Container
05 - Configure a Pod to Use a Volume for Storage
06 - Configure a Pod to Use a PersistentVolume for Storage
01 - Access Clusters Using the Kubernetes API
02 - Access Services Running on Clusters
03 - Advertise Extended Resources for a Node
04 - Autoscale the DNS Service in a Cluster
05 - Change the Reclaim Policy of a PersistentVolume
06 - Change the default StorageClass
07 - Cluster Management
08 - Configure Multiple Schedulers
09 - Configure Out Of Resource Handling
10 - Configure Quotas for API Objects
11 - Control CPU Management Policies on the Node
12 - Customizing DNS Service
02 - Access Services Running on Clusters
03 - Advertise Extended Resources for a Node
04 - Autoscale the DNS Service in a Cluster
05 - Change the Reclaim Policy of a PersistentVolume
06 - Change the default StorageClass
07 - Cluster Management
08 - Configure Multiple Schedulers
09 - Configure Out Of Resource Handling
10 - Configure Quotas for API Objects
11 - Control CPU Management Policies on the Node
12 - Customizing DNS Service
13 - Debugging DNS Resolution
14 - Declare Network Policy
15 - Developing Cloud Controller Manager
16 - Encrypting Secret Data at Rest
17 - Guaranteed Scheduling For Critical Add-On Pods
18 - IP Masquerade Agent User Guide
19 - Kubernetes Cloud Controller Manager
20 - Limit Storage Consumption
21 - Namespaces Walkthrough
22 - Operating etcd clusters for Kubernetes
23 - Reconfigure a Node's Kubelet in a Live Cluster
24 - Reserve Compute Resources for System Daemons
14 - Declare Network Policy
15 - Developing Cloud Controller Manager
16 - Encrypting Secret Data at Rest
17 - Guaranteed Scheduling For Critical Add-On Pods
18 - IP Masquerade Agent User Guide
19 - Kubernetes Cloud Controller Manager
20 - Limit Storage Consumption
21 - Namespaces Walkthrough
22 - Operating etcd clusters for Kubernetes
23 - Reconfigure a Node's Kubelet in a Live Cluster
24 - Reserve Compute Resources for System Daemons
25 - Safely Drain a Node while Respecting Application SLOs
26 - Securing a Cluster
27 - Set Kubelet parameters via a config file
28 - Set up High-Availability Kubernetes Masters
29 - Share a Cluster with Namespaces
30 - Static Pods
31 - Storage Object in Use Protection
32 - Using CoreDNS for Service Discovery
33 - Using a KMS provider for data encryption
34 - Using sysctls in a Kubernetes Cluster
26 - Securing a Cluster
27 - Set Kubelet parameters via a config file
28 - Set up High-Availability Kubernetes Masters
29 - Share a Cluster with Namespaces
30 - Static Pods
31 - Storage Object in Use Protection
32 - Using CoreDNS for Service Discovery
33 - Using a KMS provider for data encryption
34 - Using sysctls in a Kubernetes Cluster
01 - Run a Stateless Application Using a Deployment
02 - Run a Single-Instance Stateful Application
03 - Run a Replicated Stateful Application
04 - Update API Objects in Place Using kubectl patch
02 - Run a Single-Instance Stateful Application
03 - Run a Replicated Stateful Application
04 - Update API Objects in Place Using kubectl patch
01 - Web UI (Dashboard)
02 - Accessing Clusters
03 - Configure Access to Multiple Clusters
04 - Use Port Forwarding to Access Applications in a Cluster
02 - Accessing Clusters
03 - Configure Access to Multiple Clusters
04 - Use Port Forwarding to Access Applications in a Cluster
01 - Application Introspection and Debugging
02 - Auditing
03 - Core metrics pipeline
04 - Debug Init Containers
05 - Debug Pods and ReplicationControllers
06 - Debug Services
07 - Debug a StatefulSet
02 - Auditing
03 - Core metrics pipeline
04 - Debug Init Containers
05 - Debug Pods and ReplicationControllers
06 - Debug Services
07 - Debug a StatefulSet
01 - Backups
02 - Decommissioning
03 - Glossary and Terminology
04 - Local Kubernetes development with LXD
05 - Logging
06 - Monitoring
02 - Decommissioning
03 - Glossary and Terminology
04 - Local Kubernetes development with LXD
05 - Logging
06 - Monitoring