Ensuring Kubernetes works well everywhere and for everyone.
You can also join Kubernetes all around the world through our Kubernetes Meetup Community and the Kubernetes Cloud Native Meetup Community.
-diff --git a/_data/canonical-tags.yml b/_data/canonical-tags.yml
deleted file mode 100644
index d5c4bcfdec49f..0000000000000
--- a/_data/canonical-tags.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-- Fundamental
-- API Object
-- Metadata
-- Configuration
-- Security
-- Networking
-- Storage
-- Operation
-- Workload
-- Component
-- API
-- Extension
diff --git a/_data/canonical-tags/architecture.yaml b/_data/canonical-tags/architecture.yaml
new file mode 100644
index 0000000000000..369aa36cc027b
--- /dev/null
+++ b/_data/canonical-tags/architecture.yaml
@@ -0,0 +1,3 @@
+id: architecture
+name: Architecture
+description: The inner components of Kubernetes.
diff --git a/_data/canonical-tags/community.yaml b/_data/canonical-tags/community.yaml
new file mode 100644
index 0000000000000..34a60b5df26b5
--- /dev/null
+++ b/_data/canonical-tags/community.yaml
@@ -0,0 +1,3 @@
+id: community
+name: Community
+description: Related to Kubernetes open-source development.
diff --git a/_data/canonical-tags/core-object.yaml b/_data/canonical-tags/core-object.yaml
new file mode 100644
index 0000000000000..c816013899921
--- /dev/null
+++ b/_data/canonical-tags/core-object.yaml
@@ -0,0 +1,3 @@
+id: core-object
+name: Core Object
+description: A resource type that Kubernetes supports by default.
diff --git a/_data/canonical-tags/extension.yaml b/_data/canonical-tags/extension.yaml
new file mode 100644
index 0000000000000..6aacd8dac9e73
--- /dev/null
+++ b/_data/canonical-tags/extension.yaml
@@ -0,0 +1,3 @@
+id: extension
+name: Extension
+description: Supported customizations of Kubernetes.
diff --git a/_data/canonical-tags/fundamental.yaml b/_data/canonical-tags/fundamental.yaml
new file mode 100644
index 0000000000000..f9dc8f2398a22
--- /dev/null
+++ b/_data/canonical-tags/fundamental.yaml
@@ -0,0 +1,3 @@
+id: fundamental
+name: Fundamental
+description: Relevant for a first-time user of Kubernetes.
diff --git a/_data/canonical-tags/networking.yaml b/_data/canonical-tags/networking.yaml
new file mode 100644
index 0000000000000..481c02c50a733
--- /dev/null
+++ b/_data/canonical-tags/networking.yaml
@@ -0,0 +1,3 @@
+id: networking
+name: Networking
+description: How Kubernetes components talk to each other (and to programs outside the cluster).
diff --git a/_data/canonical-tags/operation.yaml b/_data/canonical-tags/operation.yaml
new file mode 100644
index 0000000000000..140be06e0cd31
--- /dev/null
+++ b/_data/canonical-tags/operation.yaml
@@ -0,0 +1,3 @@
+id: operation
+name: Operation
+description: Starting and maintaining Kubernetes.
diff --git a/_data/canonical-tags/security.yaml b/_data/canonical-tags/security.yaml
new file mode 100644
index 0000000000000..4bb7191a6f06c
--- /dev/null
+++ b/_data/canonical-tags/security.yaml
@@ -0,0 +1,3 @@
+id: security
+name: Security
+description: Keeping Kubernetes applications safe and secure.
diff --git a/_data/canonical-tags/storage.yaml b/_data/canonical-tags/storage.yaml
new file mode 100644
index 0000000000000..e98d797b6e9f4
--- /dev/null
+++ b/_data/canonical-tags/storage.yaml
@@ -0,0 +1,3 @@
+id: storage
+name: Storage
+description: How Kubernetes applications handle persistent data.
diff --git a/_data/canonical-tags/tool.yaml b/_data/canonical-tags/tool.yaml
new file mode 100644
index 0000000000000..943d1ba4b0ca0
--- /dev/null
+++ b/_data/canonical-tags/tool.yaml
@@ -0,0 +1,3 @@
+id: tool
+name: Tool
+description: Software that makes Kubernetes easier or better to use.
diff --git a/_data/canonical-tags/user-type.yaml b/_data/canonical-tags/user-type.yaml
new file mode 100644
index 0000000000000..8f38725720684
--- /dev/null
+++ b/_data/canonical-tags/user-type.yaml
@@ -0,0 +1,3 @@
+id: user-type
+name: User Type
+description: Represents a common type of Kubernetes user.
diff --git a/_data/canonical-tags/workload.yaml b/_data/canonical-tags/workload.yaml
new file mode 100644
index 0000000000000..4b18a3644308e
--- /dev/null
+++ b/_data/canonical-tags/workload.yaml
@@ -0,0 +1,3 @@
+id: workload
+name: Workload
+description: Applications running on Kubernetes.
diff --git a/_data/glossary/_example.yml b/_data/glossary/_example.yml
index d939c91f3c28c..34268a07c3853 100644
--- a/_data/glossary/_example.yml
+++ b/_data/glossary/_example.yml
@@ -1,13 +1,13 @@
id: _example
name: Example K8s Term
-formerly:
+aka:
- Slang K8s Term
- Misnomer
- Formerly Known as Prince
related:
-- Less Fancy K8s Term
-- Tangential Term
-- Commonly Used With
+- id-of-less-fancy-k8s-term
+- id-of-tangential-term
+- id-of-commonly-used-with-term
tags:
- Some Tag
short-description: |
diff --git a/_data/glossary/application-architect.yaml b/_data/glossary/application-architect.yaml
new file mode 100644
index 0000000000000..ad14229720410
--- /dev/null
+++ b/_data/glossary/application-architect.yaml
@@ -0,0 +1,11 @@
+id: application-architect
+name: Application Architect
+related:
+ - application-developer
+tags:
+ - user-type
+short-description: |
+ A person responsible for the high-level design of an application.
+long-description: >
+ An architect ensures that an app's implementation allows it to interact with its surrounding components in a scalable, maintainable way.
+ Surrounding components include databases, logging infrastructure, and other microservices.
diff --git a/_data/glossary/application-developer.yaml b/_data/glossary/application-developer.yaml
new file mode 100644
index 0000000000000..5fc2fa9f80a3f
--- /dev/null
+++ b/_data/glossary/application-developer.yaml
@@ -0,0 +1,11 @@
+id: application-developer
+name: Application Developer
+related:
+ - application-architect
+tags:
+ - user-type
+short-description: |
+ A person who writes an application that runs in a Kubernetes cluster.
+long-description: >
+ An application developer focuses on one part of an application.
+ The scale of their focus may vary significantly in size.
diff --git a/_data/glossary/approver.yaml b/_data/glossary/approver.yaml
new file mode 100644
index 0000000000000..5047a782833cc
--- /dev/null
+++ b/_data/glossary/approver.yaml
@@ -0,0 +1,10 @@
+id: approver
+name: Approver
+tags:
+- community
+short-description: |
+ A person who can review and approve Kubernetes code contributions.
+long-description: >
+ While code review is focused on code quality and correctness, approval is focused on the holistic acceptance of a contribution.
+ Holistic acceptance includes backwards/forwards compatibility, adhering to API and flag conventions, subtle performance and correctness issues, interactions with other parts of the system, and others.
+ Approver status is scoped to a part of the codebase.
diff --git a/_data/glossary/cla.yaml b/_data/glossary/cla.yaml
new file mode 100644
index 0000000000000..75dd5408d31d9
--- /dev/null
+++ b/_data/glossary/cla.yaml
@@ -0,0 +1,8 @@
+id: cla
+name: CLA (Contributor License Agreement)
+tags:
+- community
+short-description: |
+ Terms under which a [contributor](#term-contributor) grants a license to an open source project for their contributions.
+long-description: |
+ CLAs help resolve legal disputes involving contributed material and intellectual property (IP).
diff --git a/_data/glossary/cluster-architect.yaml b/_data/glossary/cluster-architect.yaml
new file mode 100644
index 0000000000000..9cec933e9389e
--- /dev/null
+++ b/_data/glossary/cluster-architect.yaml
@@ -0,0 +1,12 @@
+id: cluster-architect
+name: Cluster Architect
+related:
+ - cluster
+ - cluster-operator
+tags:
+ - user-type
+short-description: |
+ A person who designs infrastructure that involves one or more Kubernetes clusters.
+
+long-description: |
+ Cluster architects are concerned with best practices for distributed systems, for example: high availability and security.
diff --git a/_data/glossary/cluster-operator.yaml b/_data/glossary/cluster-operator.yaml
new file mode 100644
index 0000000000000..82245178812ab
--- /dev/null
+++ b/_data/glossary/cluster-operator.yaml
@@ -0,0 +1,16 @@
+id: cluster-operator
+name: Cluster Operator
+aka:
+ - Cluster Administrator
+related:
+ - cluster
+ - cluster-architect
+tags:
+ - user-type
+short-description: |
+ A person who configures, controls, and monitors clusters.
+
+long-description: |
+ Their primary responsibility is keeping a cluster up and running, which may involve periodic maintenance activities or upgrades.
+
+ **NOTE:** Cluster operators are different from the [Operator pattern](https://coreos.com/operators) that extends the Kubernetes API.
diff --git a/_data/glossary/cluster.yaml b/_data/glossary/cluster.yaml
new file mode 100644
index 0000000000000..a85ce8d2f643e
--- /dev/null
+++ b/_data/glossary/cluster.yaml
@@ -0,0 +1,9 @@
+id: cluster
+name: Cluster
+tags:
+- fundamental
+- operation
+short-description: |
+ A set of machines, called nodes, that run containerized applications managed by Kubernetes.
+long-description: |
+ A cluster has several worker nodes and at least one master node.
diff --git a/_data/glossary/code-contributor.yaml b/_data/glossary/code-contributor.yaml
new file mode 100644
index 0000000000000..acc98788631a7
--- /dev/null
+++ b/_data/glossary/code-contributor.yaml
@@ -0,0 +1,11 @@
+id: code-contributor
+name: Code Contributor
+aka:
+ - Community Developer
+tags:
+- community
+- user-type
+short-description: |
+ A person who develops and contributes code to the Kubernetes open source codebase.
+long-description: |
+ They are also an active [community member](#term-community-member) who participates in one or more [Special Interest Groups (SIGs)](#term-sig).
diff --git a/_data/glossary/container.yaml b/_data/glossary/container.yaml
new file mode 100644
index 0000000000000..4cc786f7b3c4f
--- /dev/null
+++ b/_data/glossary/container.yaml
@@ -0,0 +1,9 @@
+id: container
+name: Container
+tags:
+- fundamental
+- workload
+short-description: |
+ A lightweight and portable executable image that contains software and all of its dependencies.
+long-description: |
+ Containers decouple applications from underlying host infrastructure to make deployment easier in different cloud or OS environments, and for easier scaling.
diff --git a/_data/glossary/contributor.yaml b/_data/glossary/contributor.yaml
new file mode 100644
index 0000000000000..333244466db7b
--- /dev/null
+++ b/_data/glossary/contributor.yaml
@@ -0,0 +1,8 @@
+id: contributor
+name: Contributor
+tags:
+- community
+short-description: |
+ Someone who donates code, documentation, or their time to help the Kubernetes project or community.
+long-description: |
+ Contributions include pull requests (PRs), issues, feedback, [special interest group (SIG)](#term-sig) participation, or organizing community events.
diff --git a/_data/glossary/cronjob.yaml b/_data/glossary/cronjob.yaml
new file mode 100644
index 0000000000000..c220a38f751c8
--- /dev/null
+++ b/_data/glossary/cronjob.yaml
@@ -0,0 +1,9 @@
+id: cronjob
+name: CronJob
+tags:
+- core-object
+- workload
+short-description: |
+ Manages a [Job](/docs/concepts/jobs/run-to-completion-finite-workloads/) that runs on a periodic schedule.
+long-description: |
+ Similar to a line in a *crontab* file, a [CronJob](/docs/concepts/workloads/controllers/cron-jobs/#writing-a-cron-job-spec) object specifies a schedule using the [Cron](https://en.wikipedia.org/wiki/Cron) format.
diff --git a/_data/glossary/deployment.yaml b/_data/glossary/deployment.yaml
new file mode 100644
index 0000000000000..773f2c1518c3f
--- /dev/null
+++ b/_data/glossary/deployment.yaml
@@ -0,0 +1,10 @@
+id: deployment
+name: Deployment
+tags:
+- fundamental
+- core-object
+- workload
+short-description: |
+ An API object that manages a replicated application.
+long-description: |
+ Each replica is represented by a [Pod](#term-pod), and the Pods are distributed among the nodes of a cluster.
diff --git a/_data/glossary/developer.yaml b/_data/glossary/developer.yaml
new file mode 100644
index 0000000000000..eb1a68526c8ac
--- /dev/null
+++ b/_data/glossary/developer.yaml
@@ -0,0 +1,15 @@
+id: developer
+name: Developer (disambiguation)
+aka:
+ - Kubernetes Developer
+tags:
+- community
+- user-type
+short-description: |
+ May refer to: [*Application Developer*](#term-application-developer), [*Code Contributor*](#term-code-contributor), or [*Platform Developer*](#term-platform-developer).
+long-description: |
+ This overloaded term may have different meanings depending on the context. It could mean:
+
+ * [**Application Developer**](#term-application-developer): A person who writes an application that runs in a Kubernetes cluster.
+ * [**Code Contributor**](#term-code-contributor): A person who develops and contributes code to the Kubernetes open source codebase.
+ * [**Platform Developer**](#term-platform-developer): A person who customizes the Kubernetes platform to fit the needs of their project—for example, by extending the API.
diff --git a/_data/glossary/downstream.yaml b/_data/glossary/downstream.yaml
new file mode 100644
index 0000000000000..2abdd79fbcbf5
--- /dev/null
+++ b/_data/glossary/downstream.yaml
@@ -0,0 +1,11 @@
+id: downstream
+name: Downstream (disambiguation)
+related:
+- upstream
+tags:
+- community
+short-description: |
+ May refer to: code in the Kubernetes ecosystem that depends upon the core Kubernetes codebase or a forked repo.
+long-description: |
+ * In the **Kubernetes Community**: Conversations often use *downstream* to mean the ecosystem, code, or third-party tools that rely on the core Kubernetes codebase. For example, a new feature in Kubernetes may be adopted by applications *downstream* to improve their functionality.
+ * In **GitHub** or **git**: The convention is to refer to a forked repo as *downstream*, whereas the source repo is considered *upstream*.
diff --git a/_data/glossary/helm-chart.yaml b/_data/glossary/helm-chart.yaml
new file mode 100644
index 0000000000000..9688a6f7160b2
--- /dev/null
+++ b/_data/glossary/helm-chart.yaml
@@ -0,0 +1,9 @@
+id: helm-chart
+name: Helm Chart
+tags:
+- tool
+short-description: |
+ A package of pre-configured Kubernetes resources that can be managed with the Helm tool.
+long-description: |
+ Charts provide a reproducible way of creating and sharing Kubernetes applications.
+ A single chart can be used to deploy something simple, like a memcached Pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.
diff --git a/_data/glossary/ingress.yaml b/_data/glossary/ingress.yaml
new file mode 100644
index 0000000000000..06864f8bcb598
--- /dev/null
+++ b/_data/glossary/ingress.yaml
@@ -0,0 +1,10 @@
+id: ingress
+name: Ingress
+tags:
+- networking
+- architecture
+- extension
+short-description: |
+ An API object that manages external access to the services in a cluster, typically HTTP.
+long-description: |
+ Ingress can provide load balancing, SSL termination and name-based virtual hosting.
diff --git a/_data/glossary/istio.yaml b/_data/glossary/istio.yaml
new file mode 100644
index 0000000000000..81056cfac47b6
--- /dev/null
+++ b/_data/glossary/istio.yaml
@@ -0,0 +1,12 @@
+id: istio
+name: Istio
+tags:
+- networking
+- architecture
+- extension
+short-description: |
+ An open platform (not Kubernetes-specific) that provides a uniform way to integrate microservices, manage traffic flow, enforce policies, and aggregate telemetry data.
+long-description: >
+ Adding Istio does not require changing application code.
+ It is a layer of infrastructure between a service and the network, which when combined with service deployments, is commonly referred to as a service mesh.
+ Istio's control plane abstracts away the underlying cluster management platform, which may be Kubernetes, Mesosphere, etc.
diff --git a/_data/glossary/kops.yaml b/_data/glossary/kops.yaml
new file mode 100644
index 0000000000000..b431e4061619d
--- /dev/null
+++ b/_data/glossary/kops.yaml
@@ -0,0 +1,18 @@
+id: kops
+name: Kops
+tags:
+- tool
+- operation
+short-description: |
+ A CLI tool that helps you create, destroy, upgrade and maintain production-grade, highly available, Kubernetes clusters. *NOTE: Officially supports AWS only, with GCE and VMware vSphere in alpha*.
+long-description: |
+ `kops` provisions your cluster with:
+
+ * Fully automated installation
+ * DNS-based cluster identification
+ * Self-healing: everything runs in Auto-Scaling Groups
+ * Limited OS support (Debian preferred, Ubuntu 16.04 supported, early support for CentOS & RHEL)
+ * High availability (HA) support
+ * The ability to directly provision, or generate terraform manifests
+
+ You can also build your own cluster using [`kubeadm`](#term-kubeadm) as a building block. `kops` builds on the kubeadm work.
diff --git a/_data/glossary/kubeadm.yaml b/_data/glossary/kubeadm.yaml
new file mode 100644
index 0000000000000..ce2a6524d5007
--- /dev/null
+++ b/_data/glossary/kubeadm.yaml
@@ -0,0 +1,9 @@
+id: kubeadm
+name: Kubeadm
+tags:
+- tool
+- operation
+short-description: |
+ A tool for quickly installing Kubernetes and setting up a secure cluster.
+long-description: |
+ You can use kubeadm to install both the control plane and the worker node components.
diff --git a/_data/glossary/kubectl.yaml b/_data/glossary/kubectl.yaml
new file mode 100644
index 0000000000000..05711e8013280
--- /dev/null
+++ b/_data/glossary/kubectl.yaml
@@ -0,0 +1,9 @@
+id: kubectl
+name: Kubectl
+tags:
+- tool
+- fundamental
+short-description: |
+ A command line tool for communicating with a [Kubernetes API](#term-kubernetes-api) server.
+long-description: |
+ You can use kubectl to create, inspect, update, and delete Kubernetes objects.
diff --git a/_data/glossary/kubernetes-api.yaml b/_data/glossary/kubernetes-api.yaml
new file mode 100644
index 0000000000000..74169970bf4b7
--- /dev/null
+++ b/_data/glossary/kubernetes-api.yaml
@@ -0,0 +1,12 @@
+id: kubernetes-api
+name: Kubernetes API
+tags:
+- fundamental
+- architecture
+short-description: |
+ The application that serves Kubernetes functionality through a RESTful interface and stores the state of the cluster.
+long-description: >
+ Kubernetes resources and "records of intent" are all stored as API objects, and modified via RESTful calls to the API.
+ The API allows configuration to be managed in a declarative way.
+ Users can interact with the Kubernetes API directly, or via tools like `kubectl`.
+ The core Kubernetes API is flexible and can also be extended to support custom resources.
diff --git a/_data/glossary/maintainer.yaml b/_data/glossary/maintainer.yaml
new file mode 100644
index 0000000000000..fabfb6551c771
--- /dev/null
+++ b/_data/glossary/maintainer.yaml
@@ -0,0 +1,8 @@
+id: maintainer
+name: Maintainer
+tags:
+- community
+short-description: |
+ A highly experienced [contributor](#term-contributor), active in multiple areas of Kubernetes, who has cross-area ownership and write access to a project's GitHub repository.
+long-description: |
+ Maintainers work holistically across the project to maintain its health and success and have made substantial contributions, both through code development and broader organizational efforts.
diff --git a/_data/glossary/member.yaml b/_data/glossary/member.yaml
new file mode 100644
index 0000000000000..3e4866625fa75
--- /dev/null
+++ b/_data/glossary/member.yaml
@@ -0,0 +1,10 @@
+id: member
+name: Member
+tags:
+- community
+short-description: |
+ A continuously active [contributor](#term-contributor) in the K8s community.
+long-description: >
+ Members can have issues and PRs assigned to them and participate in [special interest groups (SIGs)](#term-sig) through GitHub teams.
+ Pre-submit tests are automatically run for members' PRs.
+ A member is expected to remain an active contributor to the community.
diff --git a/_data/glossary/minikube.yaml b/_data/glossary/minikube.yaml
new file mode 100644
index 0000000000000..eccbabadd9cb5
--- /dev/null
+++ b/_data/glossary/minikube.yaml
@@ -0,0 +1,9 @@
+id: minikube
+name: Minikube
+tags:
+- fundamental
+- tool
+short-description: |
+ A tool for running Kubernetes locally.
+long-description: |
+ Minikube runs a single-node cluster inside a VM on your computer.
diff --git a/_data/glossary/platform-developer.yaml b/_data/glossary/platform-developer.yaml
new file mode 100644
index 0000000000000..ef4352c98e76c
--- /dev/null
+++ b/_data/glossary/platform-developer.yaml
@@ -0,0 +1,10 @@
+id: platform-developer
+name: Platform Developer
+aka:
+ - Kubernetes Developer
+tags:
+ - user-type
+short-description: |
+ A person who customizes the Kubernetes platform to fit the needs of their project.
+long-description: >
+ A platform developer may, for example, use [Custom Resources](/docs/concepts/api-extension/custom-resources/) or [Extend the Kubernetes API with the aggregation layer](/docs/concepts/api-extension/apiserver-aggregation/) to add functionality to their instance of Kubernetes, specifically for their application.
diff --git a/_data/glossary/pod.yaml b/_data/glossary/pod.yaml
new file mode 100644
index 0000000000000..2a22384697fdf
--- /dev/null
+++ b/_data/glossary/pod.yaml
@@ -0,0 +1,16 @@
+id: pod
+name: Pod
+related:
+- container
+- sidecar
+- deployment
+- statefulset
+tags:
+- core-object
+- fundamental
+short-description: |
+ The smallest and simplest Kubernetes object. A Pod represents a set of running [containers](#term-container) on your cluster.
+long-description: >
+ A Pod is typically set up to run a single primary container.
+ It can also run optional sidecar containers that add supplementary features like logging.
+ Pods are commonly managed by a [Deployment](#term-deployment).
diff --git a/_data/glossary/rbac.yaml b/_data/glossary/rbac.yaml
new file mode 100644
index 0000000000000..af158dc54eaa7
--- /dev/null
+++ b/_data/glossary/rbac.yaml
@@ -0,0 +1,9 @@
+id: rbac
+name: RBAC (Role-Based Access Control)
+tags:
+- security
+- fundamental
+short-description: |
+ Manages authorization decisions, allowing admins to dynamically configure access policies through the [Kubernetes API](#term-kubernetes-api).
+long-description: |
+ RBAC utilizes *roles*, which contain permission rules, and *role bindings*, which grant the permissions defined in a role to a set of users.
diff --git a/_data/glossary/reviewer.yaml b/_data/glossary/reviewer.yaml
new file mode 100644
index 0000000000000..50b189d11788e
--- /dev/null
+++ b/_data/glossary/reviewer.yaml
@@ -0,0 +1,8 @@
+id: reviewer
+name: Reviewer
+tags:
+- community
+short-description: |
+ A person who reviews code for quality and correctness on some part of the project.
+long-description: |
+ Reviewers are knowledgeable about both the codebase and software engineering principles. Reviewer status is scoped to a part of the codebase.
diff --git a/_data/glossary/service.yaml b/_data/glossary/service.yaml
new file mode 100644
index 0000000000000..82f3998f6b690
--- /dev/null
+++ b/_data/glossary/service.yaml
@@ -0,0 +1,9 @@
+id: service
+name: Service
+tags:
+- fundamental
+- core-object
+short-description: |
+ An API object that describes how to access applications, such as a set of [Pods](#term-pod), and can describe ports and load-balancers.
+long-description: |
+ The access point can be internal or external to the cluster.
diff --git a/_data/glossary/sig.yaml b/_data/glossary/sig.yaml
new file mode 100644
index 0000000000000..bc365e677ff25
--- /dev/null
+++ b/_data/glossary/sig.yaml
@@ -0,0 +1,11 @@
+id: sig
+name: SIG (special interest group)
+tags:
+- community
+short-description: |
+ [Members](#term-member) who collectively manage an ongoing piece or aspect of the larger Kubernetes open source project.
+long-description: >
+ Members within a SIG have a shared interest in advancing a specific area, such as architecture, API machinery, or documentation.
+ SIGs must follow the [SIG Governance](https://github.com/kubernetes/community/blob/master/sig-governance.md) guidelines but can have their own contribution policy and channels of communication.
+
+ For more information, see the [kubernetes/community](https://github.com/kubernetes/community) repo and the current list of [SIGs and Working Groups](https://github.com/kubernetes/community/blob/master/sig-list.md).
diff --git a/_data/glossary/statefulset.yml b/_data/glossary/statefulset.yml
index 3f052000120b1..c6bc43cb71665 100644
--- a/_data/glossary/statefulset.yml
+++ b/_data/glossary/statefulset.yml
@@ -1,18 +1,18 @@
id: statefulset
name: StatefulSet
-formerly:
+aka:
- PetSet
related:
-- Deployment
-- Pod
+- deployment
+- pod
tags:
-- Storage
-- Workload
-- API Object
+- core-object
+- workload
+- storage
short-description: |
- Manage the deployment and scaling of a set of Pods, *and provide guarantees about ordering*. They do so by maintaining a *unique*, sticky identity for each of their Pods.
+ Manages the deployment and scaling of a set of [Pods](#term-pod), *and provides guarantees about the ordering and uniqueness* of these Pods.
long-description: |
- Like Deployments, StatefulSets manage Pods that are based on an identical container spec. However, although their specs are the same, the Pods in a StatefulSet are not interchangeable. Each Pod has a persistent identifier that it maintains across any rescheduling.
+ Like a [Deployment](#term-deployment), a StatefulSet manages Pods that are based on an identical container spec. Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods. These pods are created from the same spec, but are not interchangeable: each has a persistent identifier that it maintains across any rescheduling.
- StatefulSets also operate according to the Controller pattern. You define your desired state in a StatefulSet *object*, and the StatefulSet *controller* makes any necessary updates to the get there from the current state.
+ A StatefulSet operates under the same pattern as any other Controller. You define your desired state in a StatefulSet *object*, and the StatefulSet *controller* makes any necessary updates to get there from the current state.
diff --git a/_data/glossary/upstream.yaml b/_data/glossary/upstream.yaml
new file mode 100644
index 0000000000000..70b3e4cef48a4
--- /dev/null
+++ b/_data/glossary/upstream.yaml
@@ -0,0 +1,11 @@
+id: upstream
+name: Upstream (disambiguation)
+related:
+- downstream
+tags:
+- community
+short-description: |
+ May refer to: core Kubernetes or the source repo from which a repo was forked.
+long-description: |
+ * In the **Kubernetes Community**: Conversations often use *upstream* to mean the core Kubernetes codebase, which the general ecosystem, other code, or third-party tools relies upon. For example, [community members](#term-member) may suggest that a feature is moved upstream so that it is in the core codebase instead of in a plugin or third-party tool.
+ * In **GitHub** or **git**: The convention is to refer to a source repo as *upstream*, whereas the forked repo is considered *downstream*.
diff --git a/_data/glossary/wg.yaml b/_data/glossary/wg.yaml
new file mode 100644
index 0000000000000..5d7e5ee28e003
--- /dev/null
+++ b/_data/glossary/wg.yaml
@@ -0,0 +1,10 @@
+id: wg
+name: WG (working group)
+tags:
+- community
+short-description: |
+ Facilitates the discussion and/or implementation of a short-lived, narrow, or decoupled project for a committee, [SIG](#term-sig), or cross-SIG effort.
+long-description: |
+ Working groups are a way of organizing people to accomplish a discrete task, and are relatively easy to create and deprecate when inactive.
+
+ For more information, see the [kubernetes/community](https://github.com/kubernetes/community) repo and the current list of [SIGs and working groups](https://github.com/kubernetes/community/blob/master/sig-list.md).
diff --git a/_data/reference.yml b/_data/reference.yml
index 28e2d81f0383f..48abc0b2d68f0 100644
--- a/_data/reference.yml
+++ b/_data/reference.yml
@@ -2,6 +2,7 @@ bigheader: "Reference Documentation"
abstract: "Design docs, concept definitions, and references for APIs and CLIs."
toc:
- docs/reference/index.md
+- docs/reference/glossary.md
- title: Using the API
section:
@@ -108,5 +109,3 @@ toc:
- title: Kubernetes Issue Tracker on GitHub
path: https://github.com/kubernetes/kubernetes/issues/
- docs/reference/security.md
-
-
diff --git a/_data/tasks.yml b/_data/tasks.yml
index fdd2a2901fa75..4820d91855278 100644
--- a/_data/tasks.yml
+++ b/_data/tasks.yml
@@ -148,6 +148,7 @@ toc:
- docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md
- docs/tasks/administer-cluster/declare-network-policy.md
- docs/tasks/administer-cluster/reconfigure-kubelet.md
+ - docs/tasks/administer-cluster/kubelet-config-file.md
- title: Install Network Policy Provider
section:
- docs/tasks/administer-cluster/calico-network-policy.md
diff --git a/_includes/templates/glossary/README.md b/_includes/templates/glossary/README.md
index 9d3d49d48eaf7..453c23fdc70a1 100644
--- a/_includes/templates/glossary/README.md
+++ b/_includes/templates/glossary/README.md
@@ -2,17 +2,19 @@
To write a glossary snippet, start with a copy of the template, [`/_data/glossary/_example.yml`](/_data/glossary/_example.yml). Make sure to provide (or omit) values for the following fields:
-* (Required) `id`.
+* (Required) `id`
* This field must match the name of the glossary file itself (without the `*.yml` extension). It is *not* intended to be displayed to users, and is only used programmatically.
-* (Required) `name`.
+* (Required) `name`
* The name of the term.
-* (Required) `tags`.
+* (Required) `tags`
* Must be one of the tags listed in kubernetes.github.io/_data/canonical-terms-tags.yml.
-* (Required) `short description`.
+* (Required) `short description`
* Make sure to replace the instructional text in the template with your content.
-* (Optional) `formerly` and `related`.
- * If you do not provide these values, remove the fields.
-* (Optional) `long description`.
+* (Optional) `aka`
+ * These synonyms do not need to be glossary terms themselves (if they are deprecated), and can include spaces.
+* (Optional) `related`
+ * These should be the `id`s (not the `names`) of related glossary terms.
+* (Optional) `long description`
* If you do not provide a long description, remove the field -- that is, the complete key-value pair.
The `_example.yml` template also contains basic information about how to write your snippet. For additional guidance, continue reading this readme.
diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html
index b57af76f749c8..f10f958bece6b 100755
--- a/_layouts/docwithnav.html
+++ b/_layouts/docwithnav.html
@@ -67,7 +67,9 @@
You can also join Kubernetes all around the world through our Kubernetes Meetup Community and the Kubernetes Cloud Native Meetup Community.
-Have a special interest in how Kubernetes works with another technology? See our ever growing diff --git a/css/glossary.css b/css/glossary.css new file mode 100644 index 0000000000000..67d536ccf9fb6 --- /dev/null +++ b/css/glossary.css @@ -0,0 +1,64 @@ +.preview-text p { + display: inline; +} + +.no-underline { + text-decoration: none !important; +} + +.hide { + display: none !important; +} + +.permalink { + background-image: url(../images/link.png); + background-repeat: no-repeat; + display: inline-block; + color: transparent; + width: 20px; + margin-left: 10px; +} + +.term-anchor { + display: block; + position: relative; + top: -90px; + visibility: hidden; +} + +.tag-option { + padding: 5px; + margin: 10px; + float:left; +} + +.canonical-tag { + color: white; + background-color: #b7c8e8; +} + +.canonical-tag a { + color: inherit; + text-decoration: none !important; +} + +.active-tag { + background-color: #3371e3; +} + +.invisible { + visibility: hidden; +} + +#tag-container { + float: left; + border-top: 1px solid #8c8c8c; + border-bottom: 1px solid #8c8c8c; + padding: 7px 0px; + margin: 25px 0px; +} + +.tag-description { + text-align: center; + margin: 5px 0px; +} diff --git a/docs/concepts/configuration/overview.md b/docs/concepts/configuration/overview.md index 59c86d358fdcf..67eb2d45e5efd 100644 --- a/docs/concepts/configuration/overview.md +++ b/docs/concepts/configuration/overview.md @@ -62,9 +62,9 @@ This is a living document. If you think of something that is not on this list bu A service can be made to span multiple deployments, such as is done across [rolling updates](/docs/tasks/run-application/rolling-update-replication-controller/), by simply omitting release-specific labels from its selector, rather than updating a service's selector to match the replication controller's selector fully. -- To facilitate rolling updates, include version info in replication controller names, for example as a suffix to the name. It is useful to set a 'version' label as well. The rolling update creates a new controller as opposed to modifying the existing controller. So, there will be issues with version-agnostic controller names. See the [documentation](/docs/tasks/run-application/rolling-update-replication-controller/) on the rolling-update command for more detail. +- To facilitate rolling updates, include version info in replication controller names, for example as a suffix to the name. It is useful to set a `version` label as well. The rolling update creates a new controller as opposed to modifying the existing controller. So, there will be issues with version-agnostic controller names. See the [documentation](/docs/tasks/run-application/rolling-update-replication-controller/) on the rolling-update command for more detail. - Note that the [Deployment](/docs/concepts/workloads/controllers/deployment/) object obviates the need to manage replication controller 'version names'. A desired state of an object is described by a Deployment, and if changes to that spec are _applied_, the deployment controller changes the actual state to the desired state at a controlled rate. (Deployment objects are currently part of the [`extensions` API Group](/docs/concepts/overview/kubernetes-api/#api-groups).) + Note that the [Deployment](/docs/concepts/workloads/controllers/deployment/) object obviates the need to manage replication controller `version names`. A desired state of an object is described by a Deployment, and if changes to that spec are _applied_, the deployment controller changes the actual state to the desired state at a controlled rate. (Deployment objects are currently part of the [`extensions` API Group](/docs/concepts/overview/kubernetes-api/#api-groups).) - You can manipulate labels for debugging. Because Kubernetes replication controllers and services match to pods using labels, this allows you to remove a pod from being considered by a controller, or served traffic by a service, by removing the relevant selector labels. If you remove the labels of an existing pod, its controller will create a new pod to take its place. This is a useful way to debug a previously "live" pod in a quarantine environment. See the [`kubectl label`](/docs/concepts/overview/working-with-objects/labels/) command. diff --git a/docs/concepts/configuration/secret.md b/docs/concepts/configuration/secret.md index e0eb74301a151..9059b2d74f3b3 100644 --- a/docs/concepts/configuration/secret.md +++ b/docs/concepts/configuration/secret.md @@ -343,7 +343,7 @@ projected to the pod can be as long as kubelet sync period + ttl of secrets cach To use a secret in an environment variable in a pod: 1. Create a secret or use an existing one. Multiple pods can reference the same secret. -1. Modify your Pod definition in each container that you wish to consume the value of a secret key to add an environment variable for each secret key you wish to consume. The environment variable that consumes the secret key should populate the secret's name and key in `env[x].valueFrom.secretKeyRef`. +1. Modify your Pod definition in each container that you wish to consume the value of a secret key to add an environment variable for each secret key you wish to consume. The environment variable that consumes the secret key should populate the secret's name and key in `env[].valueFrom.secretKeyRef`. 1. Modify your image and/or command line so that the program looks for values in the specified environment variables This is an example of a pod that uses secrets from environment variables: diff --git a/docs/concepts/configuration/taint-and-toleration.md b/docs/concepts/configuration/taint-and-toleration.md index f5bd4d1b3dec7..463ab28b3366c 100644 --- a/docs/concepts/configuration/taint-and-toleration.md +++ b/docs/concepts/configuration/taint-and-toleration.md @@ -259,7 +259,8 @@ which matches the behavior when this feature is disabled. ## Taint Nodes by Condition Version 1.8 introduces an alpha feature that causes the node controller to create taints corresponding to -Node conditions. When this feature is enabled, the scheduler does not check conditions; instead the scheduler checks taints. This assures that conditions don't affect what's scheduled onto the Node. The user can choose to ignore some of the Node's problems (represented as conditions) by adding appropriate Pod tolerations. +Node conditions. When this feature is enabled (you can do this by including `TaintNodesByCondition=true` in the `--feature-gates` command line flag to the scheduler, such as +`--feature-gates=FooBar=true,TaintNodesByCondition=true`), the scheduler does not check Node conditions; instead the scheduler checks taints. This assures that Node conditions don't affect what's scheduled onto the Node. The user can choose to ignore some of the Node's problems (represented as Node conditions) by adding appropriate Pod tolerations. To make sure that turning on this feature doesn't break DaemonSets, starting in version 1.8, the DaemonSet controller automatically adds the following `NoSchedule` tolerations to all daemons: diff --git a/docs/concepts/services-networking/dns-pod-service.md b/docs/concepts/services-networking/dns-pod-service.md index 42e38447c1e53..92e942292e88e 100644 --- a/docs/concepts/services-networking/dns-pod-service.md +++ b/docs/concepts/services-networking/dns-pod-service.md @@ -343,6 +343,7 @@ kubectl get ep kube-dns --namespace=kube-system ``` You should see something like: + ``` NAME ENDPOINTS AGE kube-dns 10.180.3.17:53,10.180.3.17:53 1h diff --git a/docs/concepts/storage/persistent-volumes.md b/docs/concepts/storage/persistent-volumes.md index 257f14180403a..ab45e0c5cbac8 100644 --- a/docs/concepts/storage/persistent-volumes.md +++ b/docs/concepts/storage/persistent-volumes.md @@ -139,7 +139,7 @@ allowVolumeExpansion: true Once both feature gate and aforementioned admission plug-in are turned on, an user can request larger volume for their `PersistentVolumeClaim` by simply editing the claim and requesting bigger size. This in turn will trigger expansion of volume that is backing underlying `PersistentVolume`. -Under no circustances a new `PersistentVolume` gets created to satisfy the claim. Kubernetes will attempt to resize existing volume to satisfy the claim. +Under no circumstances a new `PersistentVolume` gets created to satisfy the claim. Kubernetes will attempt to resize existing volume to satisfy the claim. ## Types of Persistent Volumes diff --git a/docs/concepts/workloads/controllers/daemonset.md b/docs/concepts/workloads/controllers/daemonset.md index ee4cf4d4097e1..04310af23cb2f 100644 --- a/docs/concepts/workloads/controllers/daemonset.md +++ b/docs/concepts/workloads/controllers/daemonset.md @@ -110,7 +110,7 @@ when the Pod is created, so it is ignored by the scheduler). Therefore: - The DaemonSet controller can make Pods even when the scheduler has not been started, which can help cluster bootstrap. -Daemon Pods do respect [taints and tolerations](/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature), +Daemon Pods do respect [taints and tolerations](/docs/concepts/configuration/taint-and-toleration), but they are created with `NoExecute` tolerations for the following taints with no `tolerationSeconds`: - `node.kubernetes.io/not-ready` diff --git a/docs/getting-started-guides/kubespray.md b/docs/getting-started-guides/kubespray.md index ef4b9d7175604..b1860e939c323 100644 --- a/docs/getting-started-guides/kubespray.md +++ b/docs/getting-started-guides/kubespray.md @@ -84,7 +84,7 @@ Kubespray provides additional playbooks to manage your cluster: _scale_ and _upg ### Scale your cluster -You can scale your cluster by running the scale playbook. For more information, see "[Adding nodes](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/getting-started.md#Adding-nodes)". +You can scale your cluster by running the scale playbook. For more information, see "[Adding nodes](https://github.com/kubernetes-incubator/kubespray/blob/master/docs/getting-started.md#adding-nodes)". ### Upgrade your cluster diff --git a/docs/getting-started-guides/mesos/index.md b/docs/getting-started-guides/mesos/index.md index f40c41ad707e2..08d92cbeb0579 100644 --- a/docs/getting-started-guides/mesos/index.md +++ b/docs/getting-started-guides/mesos/index.md @@ -304,6 +304,7 @@ Address 1: 10.10.10.10 Name: kubernetes Address 1: 10.10.10.1 ``` + ## Support Level diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md new file mode 100644 index 0000000000000..ceb1dc4dd35bc --- /dev/null +++ b/docs/reference/glossary.md @@ -0,0 +1,66 @@ +--- +approvers: +- chenopis +- abiogenesis-now +title: Standardized Glossary +noedit: true +default_active_tag: fundamental +--- + + + +
This glossary is intended to be a comprehensive, standardized list of Kubernetes terminology. It includes technical terms that are specific to K8s, as well as more general terms that provide useful context.
+ +Filter terms according to their tags:
+Click on the [+] indicators below to get a longer explanation for any particular term.
+ +{% assign glossary_terms = site.data.glossary | where_exp: "term", "term.id != '_example'" | sort: 'name' %} + +Sam Ghods, Co-Founder and Services Architect at Box, gives a passionate talk showing that with Kubernetes, we have for first time a universal interface that one can build real deployment tooling against.
+Sam Ghods, Co-Founder and Services Architect at Box, gives a passionate talk last year at KubeCon Seattle showing that with Kubernetes, we have for first time a universal interface that one can build real deployment tooling against.
+