Changes for move to Netlify (#4464)

* disable jekyll-redirect-from gem

* add _redirects file

* disable 404 redirect script

* add 301 redirect to test

* retain _redirects file

* Convert redirect_from's to _redirect file. (#4409)

* Remove redirect_from's. (#4424)

* Add 301's to _redirects. (#4427)

* add whitespace before 301

* move redirects in /js/redirects/js to _redirects

* add disabled option for cn redirect

* convert include to array in _config.yml

* enable redirects.js script for legacy support
This commit is contained in:
Andrew Chen
2017-07-28 08:23:11 -07:00
committed by GitHub
parent 130b72927c
commit 2e257d9707
158 changed files with 624 additions and 1011 deletions
@@ -1,10 +1,5 @@
---
title: Accessing Clusters
redirect_from:
- "/docs/user-guide/accessing-the-cluster/"
- "/docs/user-guide/accessing-the-cluster.html"
- "/docs/concepts/cluster-administration/access-cluster/"
- "/docs/concepts/cluster-administration/access-cluster.html"
---
* TOC
@@ -3,11 +3,6 @@ assignees:
- mikedanese
- thockin
title: Authenticate Across Clusters with kubeconfig
redirect_from:
- "/docs/user-guide/kubeconfig-file/"
- "/docs/user-guide/kubeconfig-file.html"
- "/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/"
- "/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig.html"
---
Authentication in Kubernetes can differ for different individuals.
@@ -1,10 +1,5 @@
---
title: Communicate Between Containers in the Same Pod Using a Shared Volume
redirect_from:
- "/docs/user-guide/pods/multi-container/"
- "/docs/user-guide/pods/multi-container.html"
- "docs/tasks/configure-pod-container/communicate-containers-same-pod/"
- "docs/tasks/configure-pod-container/communicate-containers-same-pod.html"
---
{% capture overview %}
@@ -3,9 +3,6 @@ assignees:
- bprashanth
- davidopp
title: Configure Your Cloud Provider's Firewalls
redirect_from:
- "/docs/user-guide/services-firewalls/"
- "/docs/user-guide/services-firewalls.html"
---
Many cloud providers (e.g. Google Compute Engine) define firewalls that help prevent inadvertent
@@ -1,10 +1,5 @@
---
title: Connect a Front End to a Back End Using a Service
redirect_from:
- "/docs/user-guide/services/operations/"
- "/docs/user-guide/services/operations.html"
- "/docs/tutorials/connecting-apps/connecting-frontend-backend/"
- "/docs/tutorials/connecting-apps/connecting-frontend-backend.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Create an External Load Balancer
redirect_from:
- "/docs/user-guide/load-balancer/"
- "/docs/user-guide/load-balancer.html"
---
@@ -1,8 +1,5 @@
---
title: List All Container Images Running in a Cluster
redirect_from:
- "/docs/tasks/kubectl/list-all-running-container-images/"
- "/docs/tasks/kubectl/list-all-running-container-images.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Use Port Forwarding to Access Applications in a Cluster
redirect_from:
- "/docs/user-guide/connecting-to-applications-port-forward/"
- "/docs/user-guide/connecting-to-applications-port-forward.html"
---
{% capture overview %}
@@ -1,10 +1,5 @@
---
title: Use a Service to Access an Application in a Cluster
redirect_from:
- "/docs/user-guide/quick-start/"
- "/docs/user-guide/quick-start.html"
- "/docs/tutorials/stateless-application/expose-external-ip-address-service/"
- "/docs/tutorials/stateless-application/expose-external-ip-address-service.html"
---
{% capture overview %}
@@ -4,11 +4,6 @@ assignees:
- mikedanese
- rf232
title: Web UI (Dashboard)
redirect_from:
- "/docs/user-guide/ui/"
- "/docs/user-guide/ui.html"
- "/docs/tasks/web-ui-dashboard/"
- "/docs/tasks/web-ui-dashboard.html"
---
Dashboard is a web-based Kubernetes user interface. You can use Dashboard to deploy containerized applications to a Kubernetes cluster, troubleshoot your containerized application, and manage the cluster itself along with its attendant resources. You can use Dashboard to get an overview of applications running on your cluster, as well as for creating or modifying individual Kubernetes resources (such as Deployments, Jobs, DaemonSets, etc). For example, you can scale a Deployment, initiate a rolling update, restart a pod or deploy new applications using a deploy wizard.
@@ -3,11 +3,6 @@ assignees:
- enisoc
- IanLewis
title: Extend the Kubernetes API with ThirdPartyResources
redirect_from:
- "/docs/user-guide/thirdpartyresources/"
- "/docs/user-guide/thirdpartyresources.html"
- "/docs/concepts/ecosystem/thirdpartyresource/"
- "/docs/concepts/ecosystem/thirdpartyresource.html"
---
{% assign for_k8s_version="1.7" %}{% include feature-state-deprecated.md %}
@@ -1,8 +1,5 @@
---
title: Use an HTTP Proxy to Access the Kubernetes API
redirect_from:
- "/docs/user-guide/connecting-to-applications-proxy/"
- "/docs/user-guide/connecting-to-applications-proxy.html"
---
{% capture overview %}
@@ -1,9 +1,5 @@
---
title: Access Clusters Using the Kubernetes API
redirect_from:
- "/docs/user-guide/accessing-the-cluster/"
- "/docs/user-guide/accessing-the-cluster.html"
- "/docs/concepts/cluster-administration/access-cluster/"
---
{% capture overview %}
@@ -43,10 +39,10 @@ kubectl. Complete documentation is found in the [kubectl manual](/docs/user-gui
Kubectl handles locating and authenticating to the apiserver. If you want to directly access the REST API with an http client like
`curl` or `wget`, or a browser, there are multiple ways you can locate and authenticate against the apiserver:
1. Run kubectl in proxy mode (recommended). This method is recommended, since it uses the stored apiserver location abd verifies the identity of the apiserver using a self-signed cert. No Man-in-the-middle (MITM) attack is possible using this method .
1. Run kubectl in proxy mode (recommended). This method is recommended, since it uses the stored apiserver location abd verifies the identity of the apiserver using a self-signed cert. No Man-in-the-middle (MITM) attack is possible using this method .
1. Alternatively, you can provide the location and credentials directly to the http client. This works with for client code that is confused by proxies. To protect against man in the middle attacks, you'll need to import a root cert into your browser.
Using the Go or Python client libraries provides accessing kubectl in proxy mode.
Using the Go or Python client libraries provides accessing kubectl in proxy mode.
#### Using kubectl proxy
@@ -1,12 +1,9 @@
---
title: Access Services Running on Clusters
redirect_from:
- "/docs/user-guide/accessing-the-cluster/"
- "/docs/user-guide/accessing-the-cluster.html"
---
{% capture overview %}
This page shows how to connect to services running on the Kubernetes cluster.
This page shows how to connect to services running on the Kubernetes cluster.
{% endcapture %}
{% capture prerequisites %}
@@ -3,11 +3,6 @@ assignees:
- derekwaynecarr
- janetkuo
title: Apply Resource Quotas and Limits
redirect_from:
- "/docs/admin/resourcequota/walkthrough/"
- "/docs/admin/resourcequota/walkthrough.html"
- "/docs/tasks/configure-pod-container/apply-resource-quota-limit/"
- "/docs/tasks/configure-pod-container/apply-resource-quota-limit.html"
---
{% capture overview %}
@@ -359,7 +354,7 @@ the 2 pods we created in the `not-best-effort-nginx` quota.
Scopes provide a mechanism to subdivide the set of resources that are tracked by
any quota document to allow greater flexibility in how operators deploy and track resource
consumption.
consumption.
In addition to `BestEffort` and `NotBestEffort` scopes, there are scopes to restrict
long-running versus time-bound pods. The `Terminating` scope will match any pod
@@ -2,11 +2,6 @@
assignees:
- caseydavenport
title: Use Calico for NetworkPolicy
redirect_from:
- "/docs/getting-started-guides/network-policy/calico/"
- "/docs/getting-started-guides/network-policy/calico.html"
- "/docs/tasks/configure-pod-container/calico-network-policy/"
- "/docs/tasks/configure-pod-container/calico-network-policy.html"
---
{% capture overview %}
@@ -14,7 +9,7 @@ This page shows how to use Calico for NetworkPolicy.
{% endcapture %}
{% capture prerequisites %}
* Install Calico for Kubernetes.
* Install Calico for Kubernetes.
{% endcapture %}
{% capture steps %}
@@ -34,7 +29,7 @@ See the [Calico documentation](http://docs.projectcalico.org/) for more options
{% capture discussion %}
## Understanding Calico components
Deploying a cluster with Calico adds Pods that support Kubernetes NetworkPolicy. These Pods run in the `kube-system` Namespace.
Deploying a cluster with Calico adds Pods that support Kubernetes NetworkPolicy. These Pods run in the `kube-system` Namespace.
To see this list of Pods run:
@@ -3,11 +3,6 @@ assignees:
- lavalamp
- thockin
title: Cluster Management
redirect_from:
- "/docs/admin/cluster-management/"
- "/docs/admin/cluster-management.html"
- "/docs/concepts/cluster-administration/cluster-management/"
- "/docs/concepts/cluster-administration/cluster-management.html"
---
* TOC
@@ -3,11 +3,6 @@ assignees:
- davidopp
- madhusudancs
title: Configure Multiple Schedulers
redirect_from:
- "/docs/admin/multiple-schedulers/"
- "/docs/admin/multiple-schedulers.html"
- "/docs/tutorials/clusters/multiple-schedulers/"
- "/docs/tutorials/clusters/multiple-schedulers.html"
---
Kubernetes ships with a default scheduler that is described [here](/docs/admin/kube-scheduler/).
@@ -3,17 +3,6 @@ assignees:
- mml
- wojtek-t
title: Operating etcd clusters for Kubernetes
redirect_from:
- "/docs/concepts/storage/etcd-store-api-object/"
- "/docs/concepts/storage/etcd-store-api-object.html"
- "/docs/admin/etcd/"
- "/docs/admin/etcd.html"
- "/docs/admin/etcd_upgrade/"
- "/docs/admin/etcd_upgrade.html"
- "/docs/concepts/cluster-administration/configure-etcd/"
- "/docs/concepts/cluster-administration/configure-etcd.html"
- "/docs/concepts/cluster-administration/etcd-upgrade/"
- "/docs/concepts/cluster-administration/etcd-upgrade.html"
---
etcd is a strong, consistent, and highly-available key value store which Kubernetes uses for persistent storage of all of its API objects. This documentation provides specific instruction on operating, upgrading, and rolling back etcd clusters for Kubernetes. For in-depth information on etcd, see [etcd documentation](https://github.com/coreos/etcd/blob/master/Documentation/docs.md).
@@ -3,11 +3,6 @@ assignees:
- derekwaynecarr
- janetkuo
title: Set Pod CPU and Memory Limits
redirect_from:
- "/docs/admin/limitrange/"
- "/docs/admin/limitrange/index.html"
- "/docs/tasks/configure-pod-container/limit-range/"
- "/docs/tasks/configure-pod-container/limit-range.html"
---
{% capture overview %}
@@ -39,7 +34,7 @@ $ kubectl create namespace limit-example
namespace "limit-example" created
```
Note that `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands:
Note that `kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands:
```shell
$ kubectl get namespaces
@@ -112,7 +107,7 @@ NAME READY STATUS RESTARTS AGE
nginx-2040093540-s8vzu 1/1 Running 0 11s
```
Let's print this Pod with yaml output format (using `-o yaml` flag), and then `grep` the `resources` field. Note that your pod name will be different.
Let's print this Pod with yaml output format (using `-o yaml` flag), and then `grep` the `resources` field. Note that your pod name will be different.
```shell
$ kubectl get pods nginx-2040093540-s8vzu --namespace=limit-example -o yaml | grep resources -C 8
@@ -151,7 +146,7 @@ $ kubectl create -f https://k8s.io/docs/tasks/configure-pod-container/valid-pod.
pod "valid-pod" created
```
Now look at the Pod's resources field:
Now look at the Pod's resources field:
```shell
$ kubectl get pods valid-pod --namespace=limit-example -o yaml | grep -C 6 resources
@@ -3,14 +3,9 @@ assignees:
- caseydavenport
- danwinship
title: Declare Network Policy
redirect_from:
- "/docs/getting-started-guides/network-policy/walkthrough/"
- "/docs/getting-started-guides/network-policy/walkthrough.html"
- "/docs/tasks/configure-pod-container/declare-network-policy/"
- "/docs/tasks/configure-pod-container/declare-network-policy.html"
---
{% capture overview %}
This document helps you get started using using the Kubernetes [NetworkPolicy API](/docs/user-guide/network-policies) to declare network policies that govern how pods communicate with each other.
This document helps you get started using using the Kubernetes [NetworkPolicy API](/docs/user-guide/network-policies) to declare network policies that govern how pods communicate with each other.
{% endcapture %}
{% capture prerequisites %}
@@ -28,16 +23,16 @@ You'll need to have a Kubernetes cluster in place, with network policy support.
## Create an `nginx` deployment and expose it via a service
To see how Kubernetes network policy works, start off by creating an `nginx` deployment and exposing it via a service.
To see how Kubernetes network policy works, start off by creating an `nginx` deployment and exposing it via a service.
```console
$ kubectl run nginx --image=nginx --replicas=2
deployment "nginx" created
$ kubectl expose deployment nginx --port=80
$ kubectl expose deployment nginx --port=80
service "nginx" exposed
```
This runs two `nginx` pods in the default namespace, and exposes them through a service called `nginx`.
This runs two `nginx` pods in the default namespace, and exposes them through a service called `nginx`.
```console
$ kubectl get svc,pod
@@ -104,7 +99,7 @@ Waiting for pod default/busybox-472357175-y0m47 to be running, status is Pending
Hit enter for command prompt
/ # wget --spider --timeout=1 nginx
/ # wget --spider --timeout=1 nginx
Connecting to nginx (10.100.0.16:80)
wget: download timed out
/ #
@@ -4,11 +4,6 @@ assignees:
- filipg
- piosz
title: Guaranteed Scheduling For Critical Add-On Pods
redirect_from:
- "/docs/admin/rescheduler/"
- "/docs/admin/rescheduler.html"
- "/docs/concepts/cluster-administration/guaranteed-scheduling-critical-addon-pods/"
- "/docs/concepts/cluster-administration/guaranteed-scheduling-critical-addon-pods.html"
---
* TOC
@@ -2,9 +2,6 @@
assignees:
- jszczepkowski
title: Set up High-Availability Kubernetes Masters
redirect_from:
- "/docs/admin/ha-master-gce/"
- "/docs/admin/ha-master-gce.html"
---
* TOC
@@ -65,7 +62,7 @@ You can remove a master replica from an HA cluster by using a `kube-down` script
* `KUBE_DELETE_NODES=false` - to restrain deletion of kubelets.
* `KUBE_GCE_ZONE=zone` - the zone from where master replica will be removed.
* `KUBE_REPLICA_NAME=replica_name` - (optional) the name of master replica to remove.
If empty: any replica from the given zone will be removed.
@@ -105,7 +102,7 @@ A two-replica cluster is thus inferior, in terms of HA, to a single replica clus
* When you add a master replica, cluster state (etcd) is copied to a new instance.
If the cluster is large, it may take a long time to duplicate its state.
This operation may be sped up by migrating etcd data directory, as described [here](https://coreos.com/etcd/docs/latest/admin_guide.html#member-migration)
This operation may be sped up by migrating etcd data directory, as described [here](https://coreos.com/etcd/docs/latest/admin_guide.html#member-migration)
(we are considering adding support for etcd data dir migration in future).
## Implementation notes
@@ -2,9 +2,6 @@
assignees:
- pipejakob
title: Upgrading kubeadm clusters from 1.6 to 1.7
redirect_from:
- "/docs/admin/kubeadm-upgrade-1-7/"
- "/docs/admin/kubeadm-upgrade-1-7.html"
---
{% capture overview %}
@@ -95,4 +92,4 @@ You need to have a Kubernetes cluster running version 1.6.x.
{% endcapture %}
{% include templates/task.md %}
{% include templates/task.md %}
@@ -1,16 +1,13 @@
---
title: Limit Storage Consumption
redirect_from:
- "/docs/admin/resourcequota/limitstorageconsumption/"
- "/docs/admin/resourcequota/limitstorageconsumption.html"
---
{% capture overview %}
This example demonstrates an easy way to limit the amount of storage consumed in a namespace.
The following resources are used in the demonstration: [ResourceQuota](/docs/concepts/policy/resource-quotas/),
[LimitRange](/docs/tasks/configure-pod-container/limit-range/),
The following resources are used in the demonstration: [ResourceQuota](/docs/concepts/policy/resource-quotas/),
[LimitRange](/docs/tasks/configure-pod-container/limit-range/),
and [PersistentVolumeClaim](/docs/concepts/storage/persistent-volumes/).
{% endcapture %}
@@ -56,17 +53,17 @@ spec:
storage: 1Gi
```
Minimum storage requests are used when the underlying storage provider requires certain minimums. For example,
AWS EBS volumes have a 1Gi minimum requirement.
Minimum storage requests are used when the underlying storage provider requires certain minimums. For example,
AWS EBS volumes have a 1Gi minimum requirement.
## StorageQuota to limit PVC count and cumulative storage capacity
Admins can limit the number of PVCs in a namespace as well as the cumulative capacity of those PVCs. New PVCs that exceed
either maximum value will be rejected.
In this example, a 6th PVC in the namespace would be rejected because it exceeds the maximum count of 5. Alternatively,
In this example, a 6th PVC in the namespace would be rejected because it exceeds the maximum count of 5. Alternatively,
a 5Gi maximum quota when combined with the 2Gi max limit above, cannot have 3 PVCs where each has 2Gi. That would be 6Gi requested
for a namespace capped at 5Gi.
for a namespace capped at 5Gi.
```
apiVersion: v1
@@ -83,10 +80,10 @@ spec:
{% capture discussion %}
## Summary
## Summary
A limit range can put a ceiling on how much storage is requested while a resource quota can effectively cap the storage
consumed by a namespace through claim counts and cumulative storage capacity. The allows a cluster-admin to plan their
consumed by a namespace through claim counts and cumulative storage capacity. The allows a cluster-admin to plan their
cluster's storage budget without risk of any one project going over their allotment.
{% endcapture %}
@@ -3,9 +3,6 @@ assignees:
- derekwaynecarr
- janetkuo
title: Namespaces Walkthrough
redirect_from:
- "/docs/admin/namespaces/walkthrough/"
- "/docs/admin/namespaces/walkthrough.html"
---
Kubernetes _namespaces_ help different projects, teams, or customers to share a Kubernetes cluster.
@@ -153,9 +150,9 @@ Let's create some contents.
```shell
$ kubectl run snowflake --image=kubernetes/serve_hostname --replicas=2
```
We have just created a deployment whose replica size is 2 that is running the pod called snowflake with a basic container that just serves the hostname.
We have just created a deployment whose replica size is 2 that is running the pod called snowflake with a basic container that just serves the hostname.
Note that `kubectl run` creates deployments only on Kubernetes cluster >= v1.2. If you are running older versions, it creates replication controllers instead.
If you want to obtain the old behavior, use `--generator=run/v1` to create replication controllers. See [`kubectl run`](/docs/user-guide/kubectl/v1.6/#run) for more details.
If you want to obtain the old behavior, use `--generator=run/v1` to create replication controllers. See [`kubectl run`](/docs/user-guide/kubectl/v1.6/#run) for more details.
```shell
$ kubectl get deployment
@@ -3,9 +3,6 @@ assignees:
- derekwaynecarr
- janetkuo
title: Share a Cluster with Namespaces
redirect_from:
- "/docs/admin/namespaces/"
- "/docs/admin/namespaces/index.html"
---
A Namespace is a mechanism to partition resources created by users into
@@ -4,11 +4,6 @@ assignees:
- vishh
- timstclair
title: Configure Out Of Resource Handling
redirect_from:
- "/docs/admin/out-of-resource/"
- "/docs/admin/out-of-resource.html"
- "/docs/concepts/cluster-administration/out-of-resource/"
- "/docs/concepts/cluster-administration/out-of-resource.html"
---
* TOC
@@ -4,9 +4,6 @@ assignees:
- derekwaynecarr
- dashpole
title: Reserve Compute Resources for System Daemons
redirect_from:
- "/docs/admin/node-allocatable/"
- "/docs/admin/node-allocatable.html"
---
* TOC
@@ -2,11 +2,6 @@
assignees:
- chrismarino
title: Romana for NetworkPolicy
redirect_from:
- "/docs/getting-started-guides/network-policy/romana/"
- "/docs/getting-started-guides/network-policy/romana.html"
- "/docs/tasks/configure-pod-container/romana-network-policy/"
- "/docs/tasks/configure-pod-container/romana-network-policy.html"
---
{% capture overview %}
@@ -17,7 +12,7 @@ This page shows how to use Romana for NetworkPolicy.
{% capture prerequisites %}
Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting-started-guides/kubeadm/).
Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting-started-guides/kubeadm/).
{% endcapture %}
@@ -25,16 +20,16 @@ Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting
## Installing Romana with kubeadm
Follow the [containerized installation guide](https://github.com/romana/romana/tree/master/containerize) for kubeadmin.
Follow the [containerized installation guide](https://github.com/romana/romana/tree/master/containerize) for kubeadmin.
## Applying network policies
To apply network policies use one of the following:
* [Romana network policies](https://github.com/romana/romana/wiki/Romana-policies).
* [Romana network policies](https://github.com/romana/romana/wiki/Romana-policies).
* [Example of Romana network policy](https://github.com/romana/core/tree/master/policy).
* The NetworkPolicy API.
{% endcapture %}
{% capture whatsnext %}
@@ -1,15 +1,12 @@
---
assignees:
- thockin
- thockin
title: Build and Run cloud-controller-manager
redirect_from:
- "/docs/getting-started-guides/running-cloud-controller/"
- "/docs/getting-started-guides/running-cloud-controller.html"
---
Kubernetes version 1.6 contains a new binary called as `cloud-controller-manager`. `cloud-controller-manager` is a daemon that embeds cloud-specific control loops in Kubernetes. These cloud-specific control loops were originally in the kube-controller-manager. However, cloud providers move at a different pace and schedule compared to the Kubernetes project, and abstracting the provider-specific code to the `cloud-controller-manager` binary allows cloud provider vendors to evolve independently from the core Kubernetes code.
The `cloud-controller-manager` can be linked to any cloud provider that satisifies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go).
The `cloud-controller-manager` can be linked to any cloud provider that satisifies the [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go).
In future Kubernetes releases, cloud vendors should link code that satisfies the above interface to the `cloud-controller-manager` project and compile `cloud-controller-manager` for their own clouds. Cloud providers would also be responsible for maintaining and evolving their code.
* TOC
@@ -3,9 +3,6 @@ assignees:
- mikedanese
- thockin
title: Share Cluster Access with kubeconfig
redirect_from:
- "/docs/user-guide/sharing-clusters/"
- "/docs/user-guide/sharing-clusters.html"
---
Client access to a running Kubernetes cluster can be shared by copying
@@ -2,11 +2,6 @@
assignees:
- jsafrane
title: Static Pods
redirect_from:
- "/docs/admin/static-pods/"
- "/docs/admin/static-pods.html"
- "/docs/concepts/cluster-administration/static-pod/"
- "/docs/concepts/cluster-administration/static-pod.html"
---
**If you are running clustered Kubernetes and are using static pods to run a pod on every node, you should probably be using a [DaemonSet](/docs/concepts/workloads/controllers/daemonset/)!**
+10 -13
View File
@@ -2,28 +2,25 @@
assignees:
- mml
title: Cluster Management Guide for Version 1.6
redirect_from:
- "/docs/admin/upgrade-1-6/"
- "/docs/admin/upgrade-1-6.html"
---
* TOC
{:toc}
This document outlines the potentially disruptive changes that exist in the 1.6 release cycle. Operators, administrators, and developers should
take note of the changes below in order to maintain continuity across their upgrade process.
This document outlines the potentially disruptive changes that exist in the 1.6 release cycle. Operators, administrators, and developers should
take note of the changes below in order to maintain continuity across their upgrade process.
## Cluster defaults set to etcd 3
## Cluster defaults set to etcd 3
In the 1.6 release cycle, the default backend storage layer has been upgraded to fully leverage [etcd 3 capabilities](https://coreos.com/blog/etcd3-a-new-etcd.html) by default.
For new clusters, there is nothing an operator will need to do, it should "just work". However, if you are upgrading from a 1.5 cluster, care should be taken to ensure
continuity.
In the 1.6 release cycle, the default backend storage layer has been upgraded to fully leverage [etcd 3 capabilities](https://coreos.com/blog/etcd3-a-new-etcd.html) by default.
For new clusters, there is nothing an operator will need to do, it should "just work". However, if you are upgrading from a 1.5 cluster, care should be taken to ensure
continuity.
It is possible to maintain v2 compatibility mode while running etcd 3 for an interim period of time. To do this, you will simply need to update an argument passed to your apiserver during
startup:
It is possible to maintain v2 compatibility mode while running etcd 3 for an interim period of time. To do this, you will simply need to update an argument passed to your apiserver during
startup:
```
$ kube-apiserver --storage-backend='etcd2' $(EXISTING_ARGS)
```
```
However, for long-term maintenance of the cluster, we recommend that the operator plan an outage window in order to perform a [v2->v3 data upgrade](https://coreos.com/etcd/docs/latest/upgrades/upgrade_3_0.html).
However, for long-term maintenance of the cluster, we recommend that the operator plan an outage window in order to perform a [v2->v3 data upgrade](https://coreos.com/etcd/docs/latest/upgrades/upgrade_3_0.html).
@@ -2,11 +2,6 @@
assignees:
- bboreham
title: Weave Net for NetworkPolicy
redirect_from:
- "/docs/getting-started-guides/network-policy/weave/"
- "/docs/getting-started-guides/network-policy/weave.html"
- "/docs/tasks/configure-pod-container/weave-network-policy/"
- "/docs/tasks/configure-pod-container/weave-network-policy.html"
---
{% capture overview %}
@@ -17,13 +12,13 @@ This page shows how to use Weave Net for NetworkPolicy.
{% capture prerequisites %}
Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting-started-guides/kubeadm/).
Complete steps 1, 2, and 3 of the [kubeadm getting started guide](/docs/getting-started-guides/kubeadm/).
{% endcapture %}
{% capture steps %}
## Installing Weave Net addon
## Installing Weave Net addon
Follow the [Integrating Kubernetes via the Addon](https://www.weave.works/docs/net/latest/kube-addon/) guide.
@@ -1,8 +1,5 @@
---
title: Federated Cluster
redirect_from:
- "/docs/user-guide/federation/cluster/"
- "/docs/user-guide/federation/cluster.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Federated ConfigMap
redirect_from:
- "/docs/user-guide/federation/configmap/"
- "/docs/user-guide/federation/configmap.html"
---
{% capture overview %}
@@ -75,7 +72,7 @@ the federation apiserver instead of sending it to a specific Kubernetes cluster.
For example, you can do that using kubectl by running:
```shell
kubectl --context=federation-cluster delete configmap
kubectl --context=federation-cluster delete configmap
```
Note that at this point, deleting a Federated ConfigMap will not delete the
@@ -1,8 +1,5 @@
---
title: Federated DaemonSet
redirect_from:
- "/docs/user-guide/federation/daemonsets/"
- "/docs/user-guide/federation/daemonsets.html"
---
{% capture overview %}
@@ -43,7 +40,7 @@ request to the Federation apiserver instead of sending it to a Kubernetes
cluster.
Once a Federated Daemonset is created, the federation control plane will create
a matching DaemonSet in all underlying Kubernetes clusters.
a matching DaemonSet in all underlying Kubernetes clusters.
You can verify this by checking each of the underlying clusters, for example:
``` shell
@@ -1,8 +1,5 @@
---
title: Federated Deployment
redirect_from:
- "/docs/user-guide/federation/deployment/"
- "/docs/user-guide/federation/deployment.html"
---
{% capture overview %}
@@ -14,8 +11,8 @@ Deployment](/docs/concepts/workloads/controllers/deployment/) and provide the sa
Creating them in the federation control plane ensures that the desired number of
replicas exist across the registered clusters.
**As of Kubernetes version 1.5, Federated Deployment is an Alpha feature. The core
functionality of Deployment is present, but some features
**As of Kubernetes version 1.5, Federated Deployment is an Alpha feature. The core
functionality of Deployment is present, but some features
(such as full rollout compatibility) are still in development.**
{% endcapture %}
@@ -60,7 +57,7 @@ These Deployments in underlying clusters will match the federation Deployment
_except_ in the number of replicas and revision-related annotations.
Federation control plane ensures that the
sum of replicas in each cluster combined matches the desired number of replicas in the
Federated Deployment.
Federated Deployment.
### Spreading Replicas in Underlying Clusters
@@ -81,7 +78,7 @@ Deployment; however, for a Federated Deployment, you must send the request to
the federation apiserver instead of sending it to a specific Kubernetes cluster.
The federation control plane ensures that whenever the Federated Deployment is
updated, it updates the corresponding Deployments in all underlying clusters to
match it. So if the rolling update strategy was chosen then the underlying
match it. So if the rolling update strategy was chosen then the underlying
cluster will do the rolling update independently and `maxSurge` and `maxUnavailable`
will apply only to individual clusters. This behavior may change in the future.
@@ -1,8 +1,5 @@
---
title: Federated Events
redirect_from:
- "/docs/user-guide/federation/events/"
- "/docs/user-guide/federation/events.html"
---
This guide explains how to use events in federation control plane to help in debugging.
+9 -11
View File
@@ -1,9 +1,7 @@
---
title: Federated Ingress
redirect_from:
- "/docs/user-guide/federation/federated-ingress/"
- "/docs/user-guide/federation/federated-ingress.html"
---
{% capture overview %}
This page explains how to use Kubernetes Federated Ingress to deploy
a common HTTP(S) virtual IP load balancer across a federated service running in
@@ -25,7 +23,7 @@ Federated Ingress is released as an alpha feature, and supports Google Cloud Pla
GCE and hybrid scenarios involving both) in Kubernetes v1.4. Work is under way to support other cloud
providers such as AWS, and other hybrid cloud scenarios (e.g. services
spanning private on-premise as well as public cloud Kubernetes
clusters).
clusters).
You create Federated Ingresses in much that same way as traditional
[Kubernetes Ingresses](/docs/concepts/services-networking/ingress/): by making an API
@@ -151,7 +149,7 @@ may take up to a few minutes).
the network traffic directed to this ingress (that is, 'Service
Endpoints' behind the service backing the Ingress), so the Federated Ingress does not yet consider these to
be healthy shards and will not direct traffic to any of these clusters.
* The federation control system
* The federation control system
automatically reconfigures the load balancer controllers in all of the
clusters in your federation to make them consistent, and allows
them to share global load balancers. But this reconfiguration can
@@ -202,7 +200,7 @@ nginx 10.63.250.98 104.199.136.89 80/TCP 9m
Federations of Kubernetes Clusters can include clusters running in
different cloud providers (for example, Google Cloud, AWS), and on-premises
(for example, on OpenStack). However, in Kubernetes v1.4, Federated Ingress is only
supported across Google Cloud clusters.
supported across Google Cloud clusters.
## Discovering a federated ingress
@@ -301,11 +299,11 @@ Check that:
{% capture whatsnext %}
* If you need assistance, use one of the [support channels](/docs/tasks/debug-application-cluster/troubleshooting/) to seek assistance.
* For details about use cases that motivated this work, see
* For details about use cases that motivated this work, see
[Federation proposal](https://git.k8s.io/community/contributors/design-proposals/federation.md).
{% endcapture %}
{% include templates/task.md %}
@@ -1,8 +1,5 @@
---
title: Federated Namespaces
redirect_from:
- "/docs/user-guide/federation/namespaces/"
- "/docs/user-guide/federation/namespaces.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Federated ReplicaSets
redirect_from:
- "/docs/user-guide/federation/replicasets/"
- "/docs/user-guide/federation/replicasets.html"
---
{% capture overview %}
+1 -4
View File
@@ -1,8 +1,5 @@
---
title: Federated Secrets
redirect_from:
- "/docs/user-guide/federation/secrets/"
- "/docs/user-guide/federation/secrets.html"
---
This guide explains how to use secrets in Federation control plane.
@@ -81,7 +78,7 @@ the federation apiserver instead of sending it to a specific Kubernetes cluster.
For example, you can do that using kubectl by running:
```shell
kubectl --context=federation-cluster delete secret mysecret
kubectl --context=federation-cluster delete secret mysecret
```
Note that at this point, deleting a federated secret will not delete the
@@ -1,8 +1,5 @@
---
title: Assign Pods to Nodes
redirect_from:
- "/docs/tasks/administer-cluster/assign-pods-nodes/"
- "/docs/tasks/administer-cluster/assign-pods-nodes.html"
---
{% capture overview %}
+14 -17
View File
@@ -3,9 +3,6 @@ assignees:
- eparis
- pmorie
title: Configure Containers Using a ConfigMap
redirect_from:
- "/docs/user-guide/configmap/index/"
- "/docs/user-guide/configmap/index.html"
---
@@ -24,7 +21,7 @@ This page shows you how to configure an application using a ConfigMap. ConfigMap
{% capture steps %}
## Use kubectl to create a ConfigMap
## Use kubectl to create a ConfigMap
Use the `kubectl create configmap` command to create configmaps from [directories](#creating-configmaps-from-directories), [files](#creating-configmaps-from-files), or [literal values](#creating-configmaps-from-literal-values):
@@ -33,17 +30,17 @@ kubectl create configmap <map-name> <data-source>
```
where \<map-name> is the name you want to assign to the ConfigMap and \<data-source> is the directory, file, or literal value to draw the data from.
The data source corresponds to a key-value pair in the ConfigMap, where
* key = the file name or the key you provided on the command line, and
* key = the file name or the key you provided on the command line, and
* value = the file contents or the literal value you provided on the command line.
You can use [`kubectl describe`](/docs/user-guide/kubectl/v1.6/#describe) or [`kubectl get`](/docs/user-guide/kubectl/v1.6/#get) to retrieve information about a ConfigMap. The former shows a summary of the ConfigMap, while the latter returns the full contents of the ConfigMap.
### Create ConfigMaps from directories
You can use `kubectl create configmap` to create a ConfigMap from multiple files in the same directory.
You can use `kubectl create configmap` to create a ConfigMap from multiple files in the same directory.
For example:
@@ -110,10 +107,10 @@ metadata:
You can use `kubectl create configmap` to create a ConfigMap from an individual file, or from multiple files.
For example,
For example,
```shell
kubectl create configmap game-config-2 --from-file=docs/user-guide/configmap/kubectl/game.properties
kubectl create configmap game-config-2 --from-file=docs/user-guide/configmap/kubectl/game.properties
```
would produce the following ConfigMap:
@@ -131,9 +128,9 @@ game.properties: 158 bytes
```
You can pass in the `--from-file` argument multiple times to create a ConfigMap from multiple data sources.
```shell
kubectl create configmap game-config-2 --from-file=docs/user-guide/configmap/kubectl/game.properties --from-file=docs/user-guide/configmap/kubectl/ui.properties
kubectl create configmap game-config-2 --from-file=docs/user-guide/configmap/kubectl/game.properties --from-file=docs/user-guide/configmap/kubectl/ui.properties
```
```shell
@@ -158,8 +155,8 @@ kubectl create configmap game-config-3 --from-file=<my-key-name>=<path-to-file>
```
where `<my-key-name>` is the key you want to use in the ConfigMap and `<path-to-file>` is the location of the data source file you want the key to represent.
For example:
For example:
```shell
kubectl create configmap game-config-3 --from-file=game-special-key=docs/user-guide/configmap/kubectl/game.properties
@@ -221,12 +218,12 @@ metadata:
{% capture discussion %}
## Understanding ConfigMaps
## Understanding ConfigMaps
ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable.
ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable.
The ConfigMap API resource stores configuration data as key-value pairs. The data can be consumed in pods or provide the configurations for system components such as controllers. ConfigMap is similar to [Secrets](/docs/concepts/configuration/secret/), but provides a means of working with strings that don't contain sensitive information. Users and system components alike can store configuration data in ConfigMap.
Note: ConfigMaps should reference properties files, not replace them. Think of the ConfigMap as representing something similar to the a Linux `/etc` directory and its contents. For example, if you create a [Kubernetes Volume](/docs/concepts/storage/volumes/) from a ConfigMap, each data item in the ConfigMap is represented by an individual file in the volume.
Note: ConfigMaps should reference properties files, not replace them. Think of the ConfigMap as representing something similar to the a Linux `/etc` directory and its contents. For example, if you create a [Kubernetes Volume](/docs/concepts/storage/volumes/) from a ConfigMap, each data item in the ConfigMap is represented by an individual file in the volume.
The ConfigMap's `data` field contains the configuration data. As shown in the example below, this can be simple -- like individual properties defined using `--from-literal` -- or complex -- like configuration files or JSON blobs defined using `--from-file`.
@@ -1,7 +1,4 @@
---
redirect_from:
- "/docs/user-guide/liveness/"
- "/docs/user-guide.liveness.html"
title: Configure Liveness and Readiness Probes
---
@@ -1,8 +1,5 @@
---
title: Configure a Pod to Use a PersistentVolume for Storage
redirect_from:
- "/docs/user-guide/persistent-volumes/walkthrough/"
- "/docs/user-guide/persistent-volumes/walkthrough.html"
---
{% capture overview %}
@@ -3,10 +3,6 @@ assignees:
- jpeeler
- pmorie
title: Configure a Pod to Use a Projected Volume for Storage
redirect_from:
- "/docs/tasks/configure-pod-container/projected-volume/"
- "/docs/user-guide/projected-volume/"
- "/docs/user-guide/projected-volume/index.html"
---
{% capture overview %}
@@ -4,9 +4,6 @@ assignees:
- liggitt
- thockin
title: Configure Service Accounts for Pods
redirect_from:
- "/docs/user-guide/service-accounts/"
- "/docs/user-guide/service-accounts.html"
---
A service account provides an identity for processes that run in a Pod.
@@ -134,7 +131,7 @@ apiVersion: v1
kind: Secret
metadata:
name: build-robot-secret
annotations:
annotations:
kubernetes.io/service-account.name: build-robot
type: kubernetes.io/service-account-token
EOF
@@ -147,7 +144,7 @@ Now you can confirm that the newly built secret is populated with an API token f
Any tokens for non-existent service accounts will be cleaned up by the token controller.
```shell
$ kubectl describe secrets/build-robot-secret
$ kubectl describe secrets/build-robot-secret
Name: build-robot-secret
Namespace: default
Labels: <none>
@@ -4,9 +4,6 @@ assignees:
- mikedanese
- thockin
title: Configure a Security Context for a Pod or Container
redirect_from:
- "/docs/user-guide/security-context/"
- "/docs/concepts/policy/container-capabilities/"
---
{% capture overview %}
@@ -4,11 +4,6 @@ assignees:
- sttts
- ericchiang
title: Auditing
redirect_from:
- "/docs/admin/audit/"
- "/docs/admin/audit.html"
- "/docs/concepts/cluster-administration/audit/"
- "/docs/concepts/cluster-administration/audit.html"
---
* TOC
@@ -3,9 +3,6 @@ assignees:
- janetkuo
- thockin
title: Application Introspection and Debugging
redirect_from:
- "/docs/user-guide/introspection-and-debugging/"
- "/docs/user-guide/introspection-and-debugging.html"
---
Once your application is running, you'll inevitably need to debug problems with it.
@@ -90,7 +87,7 @@ Containers:
Environment Variables:
Conditions:
Type Status
Ready True
Ready True
Volumes:
default-token-4bcbi:
Type: Secret (a volume populated by a Secret)
@@ -140,7 +137,7 @@ $ kubectl describe pod nginx-deployment-1370807587-fz9sd
Node: /
Labels: app=nginx,pod-template-hash=1370807587
Status: Pending
IP:
IP:
Controllers: ReplicaSet/nginx-deployment-1370807587
Containers:
nginx:
@@ -278,7 +275,7 @@ Labels: kubernetes.io/hostname=kubernetes-node-861h
CreationTimestamp: Fri, 10 Jul 2015 14:32:29 -0700
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
Ready Unknown Fri, 10 Jul 2015 14:34:32 -0700 Fri, 10 Jul 2015 14:35:15 -0700 Kubelet stopped posting node status.
Ready Unknown Fri, 10 Jul 2015 14:34:32 -0700 Fri, 10 Jul 2015 14:35:15 -0700 Kubelet stopped posting node status.
Addresses: 10.240.115.55,104.197.0.26
Capacity:
cpu: 1
@@ -3,9 +3,6 @@ assignees:
- mikedanese
- thockin
title: Troubleshoot Applications
redirect_from:
- "/docs/user-guide/application-troubleshooting/"
- "/docs/user-guide/application-troubleshooting.html"
---
This guide is to help users debug applications that are deployed into Kubernetes and not behaving correctly.
@@ -2,9 +2,6 @@
assignees:
- davidopp
title: Troubleshoot Clusters
redirect_from:
- "/docs/admin/cluster-troubleshooting/"
- "/docs/admin/cluster-troubleshooting.html"
---
This doc is about cluster troubleshooting; we assume you have already ruled out your application as the root cause of the
@@ -8,9 +8,6 @@ assignees:
- kow3ns
- smarterclayton
title: Debug Init Containers
redirect_from:
- "/docs/tasks/troubleshoot/debug-init-containers/"
- "/docs/tasks/troubleshoot/debug-init-containers.html"
---
{% capture overview %}
@@ -28,7 +25,7 @@ Init Containers. The example command lines below refer to the Pod as
* You should be familiar with the basics of
[Init Containers](/docs/concepts/abstractions/init-containers/).
* You should have [Configured an Init Container](/docs/tasks/configure-pod-container/configure-pod-initialization/#creating-a-pod-that-has-an-init-container/).
* You should have [Configured an Init Container](/docs/tasks/configure-pod-container/configure-pod-initialization/#creating-a-pod-that-has-an-init-container/).
{% endcapture %}
@@ -2,9 +2,6 @@
assignees:
- bprashanth
title: Debug Pods and Replication Controllers
redirect_from:
- "/docs/user-guide/debugging-pods-and-replication-controllers/"
- "/docs/user-guide/debugging-pods-and-replication-controllers.html"
---
* TOC
@@ -4,9 +4,6 @@ assignees:
- janetkuo
- thockin
title: Debug Services
redirect_from:
- "/docs/user-guide/debugging-services/"
- "/docs/user-guide/debugging-services.html"
---
An issue that comes up rather frequently for new installations of Kubernetes is
@@ -86,7 +83,7 @@ $ kubectl run hostnames --image=gcr.io/google_containers/serve_hostname \
deployment "hostnames" created
```
`kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands.
`kubectl` commands will print the type and name of the resource created or mutated, which can then be used in subsequent commands.
Note that this is the same as if you had started the `Deployment` with
the following YAML:
@@ -8,9 +8,6 @@ assignees:
- kow3ns
- smarterclayton
title: Debug a StatefulSet
redirect_from:
- "/docs/tasks/manage-stateful-set/debugging-a-statefulset/"
- "/docs/tasks/manage-stateful-set/debugging-a-statefulset.html"
---
{% capture overview %}
@@ -22,7 +19,7 @@ This task shows you how to debug a StatefulSet.
{% capture prerequisites %}
* You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster.
* You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster.
* You should have a StatefulSet running that you want to investigate.
{% endcapture %}
@@ -31,13 +28,13 @@ This task shows you how to debug a StatefulSet.
## Debugging a StatefulSet
In order to list all the pods which belong to a StatefulSet, which have a label `app=myapp` set on them, you can use the following:
In order to list all the pods which belong to a StatefulSet, which have a label `app=myapp` set on them, you can use the following:
```shell
kubectl get pods -l app=myapp
```
If you find that any Pods listed are in `Unknown` or `Terminating` state for an extended period of time, refer to the [Deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/) task for instructions on how to deal with them. You can debug individual Pods in a StatefulSet using the [Debugging Pods](/docs/user-guide/debugging-pods-and-replication-controllers/#debugging-pods) guide.
If you find that any Pods listed are in `Unknown` or `Terminating` state for an extended period of time, refer to the [Deleting StatefulSet Pods](/docs/tasks/manage-stateful-set/delete-pods/) task for instructions on how to deal with them. You can debug individual Pods in a StatefulSet using the [Debugging Pods](/docs/user-guide/debugging-pods-and-replication-controllers/#debugging-pods) guide.
StatefulSets provide a debug mechanism to pause all controller operations on Pods using an annotation. Setting the `pod.alpha.kubernetes.io/initialized` annotation to `"false"` on any StatefulSet Pod will *pause* all operations of the StatefulSet. When paused, the StatefulSet will not perform any scaling operations. Once the debug hook is set, you can execute commands within the containers of StatefulSet pods without interference from scaling operations. You can set the annotation to `"false"` by executing the following:
@@ -45,11 +42,11 @@ StatefulSets provide a debug mechanism to pause all controller operations on Pod
kubectl annotate pods <pod-name> pod.alpha.kubernetes.io/initialized="false" --overwrite
```
When the annotation is set to `"false"`, the StatefulSet will not respond to its Pods becoming unhealthy or unavailable. It will not create replacement Pods till the annotation is removed or set to `"true"` on each StatefulSet Pod.
When the annotation is set to `"false"`, the StatefulSet will not respond to its Pods becoming unhealthy or unavailable. It will not create replacement Pods till the annotation is removed or set to `"true"` on each StatefulSet Pod.
### Step-wise Initialization
You can also use the same annotation to debug race conditions during bootstrapping of the StatefulSet by setting the `pod.alpha.kubernetes.io/initialized` annotation to `"false"` in the `.spec.template.metadata.annotations` field of the StatefulSet prior to creating it.
You can also use the same annotation to debug race conditions during bootstrapping of the StatefulSet by setting the `pod.alpha.kubernetes.io/initialized` annotation to `"false"` in the `.spec.template.metadata.annotations` field of the StatefulSet prior to creating it.
```yaml
apiVersion: apps/v1beta1
@@ -67,12 +64,12 @@ spec:
pod.alpha.kubernetes.io/initialized: "false"
...
...
...
...
```
After setting the annotation, if you create the StatefulSet, you can wait for each Pod to come up and verify that it has initialized correctly. The StatefulSet will not create any subsequent Pods till the debug annotation is set to `"true"` (or removed) on each Pod that has already been created. You can set the annotation to `"true"` by executing the following:
```shell
kubectl annotate pods <pod-name> pod.alpha.kubernetes.io/initialized="true" --overwrite
```
@@ -3,11 +3,6 @@ assignees:
- caesarxuchao
- mikedanese
title: Get a Shell to a Running Container
redirect_from:
- "/docs/user-guide/getting-into-containers/"
- "/docs/user-guide/getting-into-containers.html"
- "/docs/tasks/kubectl/get-shell-running-container/"
- "/docs/tasks/kubectl/get-shell-running-container.html"
---
{% capture overview %}
@@ -3,9 +3,6 @@ assignees:
- crassirostris
- piosz
title: Logging Using Elasticsearch and Kibana
redirect_from:
- "/docs/user-guide/logging/elasticsearch/"
- "/docs/user-guide/logging/elasticsearch.html"
---
On the Google Compute Engine (GCE) platform, the default logging support targets
@@ -3,9 +3,6 @@ assignees:
- crassirostris
- piosz
title: Logging Using Stackdriver
redirect_from:
- "/docs/user-guide/logging/stackdriver/"
- "/docs/user-guide/logging/stackdriver.html"
---
Before reading this page, it's highly recommended to familiarize yourself
@@ -3,9 +3,6 @@ assignees:
- Random-Liu
- dchen1107
title: Monitor Node Health
redirect_from:
- "/docs/admin/node-problem/"
- "/docs/admin/node-problem.html"
---
* TOC
@@ -2,11 +2,6 @@
assignees:
- mikedanese
title: Tools for Monitoring Compute, Storage, and Network Resources
redirect_from:
- "/docs/user-guide/monitoring/"
- "/docs/user-guide/monitoring.html"
- "/docs/concepts/cluster-administration/resource-usage-monitoring/"
- "/docs/concepts/cluster-administration/resource-usage-monitoring.html"
---
Understanding how an application behaves when deployed is crucial to scaling the application and providing a reliable service. In a Kubernetes cluster, application performance can be examined at many different levels: containers, [pods](/docs/user-guide/pods), [services](/docs/user-guide/services), and whole clusters. As part of Kubernetes we want to provide users with detailed resource usage information about their running applications at all these levels. This will give users deep insights into how their applications are performing and where possible application bottlenecks may be found. In comes [Heapster](https://github.com/kubernetes/heapster), a project meant to provide a base monitoring platform on Kubernetes.
@@ -3,8 +3,6 @@ assignees:
- brendandburns
- davidopp
title: Troubleshooting
redirect_from:
- "/docs/troubleshooting/"
---
Sometimes things go wrong. This guide is aimed at making them right. It has
@@ -3,11 +3,6 @@ assignees:
- bprashanth
- quinton-hoole
title: Cross-cluster Service Discovery using Federated Services
redirect_from:
- "/docs/user-guide/federation/federated-services/"
- "/docs/user-guide/federation/federated-services.html"
- "/docs/concepts/cluster-administration/federation-service-discovery/"
- "/docs/concepts/cluster-administration/federation-service-discovery.html"
---
This guide explains how to use Kubernetes Federated Services to deploy
@@ -175,7 +170,7 @@ this. For example, if your Federation is configured to use Google
Cloud DNS, and a managed DNS domain 'example.com':
``` shell
$ gcloud dns managed-zones describe example-dot-com
$ gcloud dns managed-zones describe example-dot-com
creationTime: '2016-06-26T18:18:39.229Z'
description: Example domain for Kubernetes Cluster Federation
dnsName: example.com.
@@ -2,11 +2,6 @@
assignees:
- madhusudancs
title: Set up Cluster Federation with Kubefed
redirect_from:
- "/docs/admin/federation/kubefed/"
- "/docs/admin/federation/kubefed.html"
- "/docs/tutorials/federation/set-up-cluster-federation-kubefed/"
- "/docs/tutorials/federation/set-up-cluster-federation-kubefed.html"
---
* TOC
@@ -1,8 +1,5 @@
---
title: Set up CoreDNS as DNS provider for Cluster Federation
redirect_from:
- "/docs/tutorials/federation/set-up-coredns-provider-federation/"
- "/docs/tutorials/federation/set-up-coredns-provider-federation.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Set up placement policies in Federation
redirect_from:
- "/docs/tutorials/federation/set-up-placement-policies-federation/"
- "/docs/tutorials/federation/set-up-placement-policies-federation.html"
---
{% capture overview %}
+1 -6
View File
@@ -1,10 +1,5 @@
---
title: Tasks
redirect_from:
- "/docs/user-guide/configuring-containers/"
- "/docs/user-guide/configuring-containers.html"
- "/docs/user-guide/production-pods/"
- "/docs/user-guide/production-pods.html"
title: Tasks"
---
This section of the Kubernetes documentation contains pages that
@@ -1,8 +1,5 @@
---
title: Define a Command and Arguments for a Container
redirect_from:
- "/docs/concepts/configuration/container-command-args/"
- "/docs/concepts/configuration/container-command-arg.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Define Environment Variables for a Container
redirect_from:
- "/docs/tasks/configure-pod-container/define-environment-variable-container/"
- "/docs/tasks/configure-pod-container/define-environment-variable-container.html"
---
{% capture overview %}
@@ -1,10 +1,5 @@
---
title: Distribute Credentials Securely Using Secrets
redirect_from:
- "/docs/user-guide/secrets/walkthrough/"
- "/docs/user-guide/secrets/walkthrough.html"
- "/docs/tasks/configure-pod-container/distribute-credentials-secure/"
- "/docs/tasks/configure-pod-container/distribute-credentials-secure.html"
---
{% capture overview %}
@@ -1,12 +1,5 @@
---
title: Expose Pod Information to Containers Through Files
redirect_from:
- "/docs/user-guide/downward-api/"
- "/docs/user-guide/downward-api/index.html"
- "/docs/user-guide/downward-api/volume/"
- "/docs/user-guide/downward-api/volume/index.html"
- "/docs/tasks/configure-pod-container/downward-api-volume-expose-pod-information/"
- "/docs/tasks/configure-pod-container/downward-api-volume-expose-pod-information.html"
---
{% capture overview %}
@@ -1,10 +1,5 @@
---
title: Expose Pod Information to Containers Through Environment Variables
redirect_from:
- "/docs/user-guide/environment-guide/"
- "/docs/user-guide/environment-guide/index.html"
- "/docs/tasks/configure-pod-container/environment-variable-expose-pod-information/"
- "/docs/tasks/configure-pod-container/environment-variable-expose-pod-information.html"
---
{% capture overview %}
@@ -2,11 +2,6 @@
assignees:
- jessfraz
title: Inject Information into Pods Using a PodPreset
redirect_from:
- "/docs/user-guide/pod-preset/index/"
- "/docs/user-guide/pod-preset/index.html"
- "/docs/tasks/run-application/podpreset/"
- "/docs/tasks/run-application/podpreset.html"
---
You can use a `podpreset` object to inject certain information into pods at creation
@@ -148,7 +143,7 @@ spec:
### Pod Spec with `ConfigMap` Example
This is an example to show how a Pod spec is modified by the Pod Preset
This is an example to show how a Pod spec is modified by the Pod Preset
that defines a `ConfigMap` for Environment Variables.
**User submitted pod spec:**
@@ -462,7 +457,7 @@ spec:
### Conflict Example
This is an example to show how a Pod spec is not modified by the Pod Preset
This is an example to show how a Pod spec is not modified by the Pod Preset
when there is a conflict.
**User submitted pod spec:**
@@ -1,8 +1,5 @@
---
title: Coarse Parallel Processing Using a Work Queue
redirect_from:
- "/docs/user-guide/jobs/work-queue-1/"
- "/docs/user-guide/jobs/work-queue-1/index.html"
---
* TOC
@@ -1,8 +1,5 @@
---
title: Fine Parallel Processing Using a Work Queue
redirect_from:
- "/docs/user-guide/jobs/work-queue-2/"
- "/docs/user-guide/jobs/work-queue-2/index.html"
---
* TOC
@@ -1,8 +1,5 @@
---
title: Parallel Processing using Expansions
redirect_from:
- "/docs/user-guide/jobs/expansions/index/"
- "/docs/user-guide/jobs/expansions/index.html"
---
* TOC
@@ -90,9 +87,9 @@ We can check on the pods as well using the same label selector:
```shell
$ kubectl get pods -l jobgroup=jobexample --show-all
NAME READY STATUS RESTARTS AGE
process-item-apple-kixwv 0/1 Completed 0 4m
process-item-banana-wrsf7 0/1 Completed 0 4m
process-item-cherry-dnfu9 0/1 Completed 0 4m
process-item-apple-kixwv 0/1 Completed 0 4m
process-item-banana-wrsf7 0/1 Completed 0 4m
process-item-cherry-dnfu9 0/1 Completed 0 4m
```
There is not a single command to check on the output of all jobs at once,
@@ -124,7 +121,7 @@ First, copy and paste the following template of a Job object, into a file called
{%- set params = [{ "name": "apple", "url": "http://www.orangepippin.com/apples", },
{ "name": "banana", "url": "https://en.wikipedia.org/wiki/Banana", },
{ "name": "raspberry", "url": "https://www.raspberrypi.org/" }]
%}
%}
{%- for p in params %}
{%- set name = p["name"] %}
{%- set url = p["url"] %}
+14 -17
View File
@@ -2,9 +2,6 @@
assignees:
- vishh
title: Schedule GPUs
redirect_from:
- "/docs/user-guide/gpus/"
- "/docs/user-guide/gpus.html"
---
{% capture overview %}
@@ -33,17 +30,17 @@ Nvidia GPUs can be consumed via container level resource requirements using the
```yaml
apiVersion: v1
kind: pod
spec:
containers:
-
spec:
containers:
-
name: gpu-container-1
resources:
limits:
resources:
limits:
alpha.kubernetes.io/nvidia-gpu: 2 # requesting 2 GPUs
-
-
name: gpu-container-2
resources:
limits:
resources:
limits:
alpha.kubernetes.io/nvidia-gpu: 3 # requesting 3 GPUs
```
@@ -90,12 +87,12 @@ metadata:
}
}
}
spec:
containers:
-
spec:
containers:
-
name: gpu-container-1
resources:
limits:
resources:
limits:
alpha.kubernetes.io/nvidia-gpu: 2
```
@@ -135,7 +132,7 @@ spec:
- hostPath:
path: /usr/lib/nvidia-375/bin
name: bin
- hostPath:
- hostPath:
path: /usr/lib/nvidia-375
name: lib
```
@@ -6,9 +6,6 @@ assignees:
- janetkuo
- smarterclayton
title: Delete a Stateful Set
redirect_from:
- "/docs/tasks/manage-stateful-set/deleting-a-statefulset/"
- "/docs/tasks/manage-stateful-set/deleting-a-statefulset.html"
---
{% capture overview %}
@@ -30,7 +27,7 @@ This task shows you how to delete a StatefulSet.
You can delete a StatefulSet in the same way you delete other resources in Kubernetes: use the `kubectl delete` command, and specify the StatefulSet either by file or by name.
```shell
kubectl delete -f <file.yaml>
kubectl delete -f <file.yaml>
```
```shell
@@ -5,9 +5,6 @@ assignees:
- justinsb
- directxman12
title: Horizontal Pod Autoscaling Walkthrough
redirect_from:
- "/docs/user-guide/horizontal-pod-autoscaling/walkthrough/"
- "/docs/user-guide/horizontal-pod-autoscaling/walkthrough.html"
---
Horizontal Pod Autoscaling automatically scales the number of pods
@@ -4,9 +4,6 @@ assignees:
- jszczepkowski
- directxman12
title: Horizontal Pod Autoscaling
redirect_from:
- "/docs/user-guide/horizontal-pod-autoscaling/"
- "/docs/user-guide/horizontal-pod-autoscaling/index.html"
---
This document describes the current state of Horizontal Pod Autoscaling in Kubernetes.
@@ -2,11 +2,6 @@
assignees:
- janetkuo
title: Perform Rolling Update Using a Replication Controller
redirect_from:
- "/docs/user-guide/rolling-updates/"
- "/docs/user-guide/rolling-updates.html"
- "/docs/user-guide/update-demo/index/"
- "/docs/user-guide/update-demo/index.html"
---
* TOC
@@ -8,9 +8,6 @@ assignees:
- kow3ns
- smarterclayton
title: Run a Replicated Stateful Application
redirect_from:
- "/docs/tutorials/stateful-application/run-replicated-stateful-application/"
- "/docs/tutorials/stateful-application/run-replicated-stateful-application.html"
---
{% capture overview %}
@@ -1,8 +1,5 @@
---
title: Run a Single-Instance Stateful Application
redirect_from:
- "/docs/tutorials/stateful-application/run-stateful-application/"
- "/docs/tutorials/stateful-application/run-stateful-application.html"
---
{% capture overview %}
@@ -115,7 +112,7 @@ for a secure solution.
NAME READY STATUS RESTARTS AGE
mysql-63082529-2z3ki 1/1 Running 0 3m
1. Inspect the Persistent Volume:
kubectl describe pv mysql-pv
@@ -127,7 +124,7 @@ for a secure solution.
Reclaim Policy: Retain
Access Modes: RWO
Capacity: 20Gi
Message:
Message:
Source:
Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine)
PDName: mysql-disk
@@ -171,7 +168,7 @@ know your stateful MySQL database is up and running.
Waiting for pod default/mysql-client-274442439-zyp6i to be running, status is Pending, pod ready: false
If you don't see a command prompt, try pressing enter.
mysql>
mysql>
```
## Updating
@@ -1,16 +1,5 @@
---
title: Run a Stateless Application Using a Deployment
redirect_from:
- "/docs/user-guide/simple-nginx/"
- "/docs/user-guide/simple-nginx.html"
- "/docs/user-guide/pods/single-container/"
- "/docs/user-guide/pods/single-container.html"
- "/docs/user-guide/deploying-applications/"
- "/docs/user-guide/deploying-applications.html"
- "/docs/tutorials/stateless-application/run-stateless-application-deployment/"
- "/docs/tutorials/stateless-application/run-stateless-application-deployment.html"
- "/docs/tutorials/stateless-application/run-stateless-ap-replication-controller/"
- "/docs/tutorials/stateless-application/run-stateless-ap-replication-controller.html"
---
{% capture overview %}
@@ -8,9 +8,6 @@ assignees:
- kow3ns
- smarterclayton
title: Scale a StatefulSet
redirect_from:
- "/docs/tasks/manage-stateful-set/scale-stateful-set/"
- "/docs/tasks/manage-stateful-set/scale-stateful-set.html"
---
{% capture overview %}
@@ -19,8 +16,8 @@ This page shows how to scale a StatefulSet.
{% capture prerequisites %}
* StatefulSets are only available in Kubernetes version 1.5 or later.
* **Not all stateful applications scale nicely.** You need to understand your StatefulSets well before continuing. If you're unsure, remember that it might not be safe to scale your StatefulSets.
* StatefulSets are only available in Kubernetes version 1.5 or later.
* **Not all stateful applications scale nicely.** You need to understand your StatefulSets well before continuing. If you're unsure, remember that it might not be safe to scale your StatefulSets.
* You should perform scaling only when you're sure that your stateful application
cluster is completely healthy.
@@ -36,7 +33,7 @@ for which kubectl you're using.
### `kubectl scale`
First, find the StatefulSet you want to scale. Remember, you need to first understand if you can scale it or not.
First, find the StatefulSet you want to scale. Remember, you need to first understand if you can scale it or not.
```shell
kubectl get statefulsets <stateful-set-name>
@@ -50,24 +47,24 @@ kubectl scale statefulsets <stateful-set-name> --replicas=<new-replicas>
### Alternative: `kubectl apply` / `kubectl edit` / `kubectl patch`
Alternatively, you can do [in-place updates](/docs/concepts/cluster-administration/manage-deployment/#in-place-updates-of-resources) on your StatefulSets.
Alternatively, you can do [in-place updates](/docs/concepts/cluster-administration/manage-deployment/#in-place-updates-of-resources) on your StatefulSets.
If your StatefulSet was initially created with `kubectl apply` or `kubectl create --save-config`,
If your StatefulSet was initially created with `kubectl apply` or `kubectl create --save-config`,
update `.spec.replicas` of the StatefulSet manifests, and then do a `kubectl apply`:
```shell
```shell
kubectl apply -f <stateful-set-file-updated>
```
Otherwise, edit that field with `kubectl edit`:
```shell
```shell
kubectl edit statefulsets <stateful-set-name>
```
Or use `kubectl patch`:
```shell
```shell
kubectl patch statefulsets <stateful-set-name> -p '{"spec":{"replicas":<new-replicas>}}'
```
@@ -76,9 +73,9 @@ kubectl patch statefulsets <stateful-set-name> -p '{"spec":{"replicas":<new-repl
### Scaling down doesn't not work right
You cannot scale down a StatefulSet when any of the stateful Pods it manages is unhealthy. Scaling down only takes place
after those stateful Pods become running and ready.
after those stateful Pods become running and ready.
With a StatefulSet of size > 1, if there is an unhealthy Pod, there is no way
With a StatefulSet of size > 1, if there is an unhealthy Pod, there is no way
for Kubernetes to know (yet) if it is due to a permanent fault or a transient
one (upgrade/maintenance/node reboot). If the Pod is unhealthy due to a permanent fault, scaling
without correcting the fault may lead to a state where the StatefulSet membership
@@ -90,7 +87,7 @@ the transient error may interfere with your scale-up/scale-down operation. Some
databases have issues when nodes join and leave at the same time. It is better
to reason about scaling operations at the application level in these cases, and
perform scaling only when you're sure that your stateful application cluster is
completely healthy.
completely healthy.
{% endcapture %}
@@ -8,9 +8,6 @@ assignees:
- kow3ns
- smarterclayton
title: Upgrade from PetSets to StatefulSets
redirect_from:
- "/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set/"
- "/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set.html"
---
{% capture overview %}
@@ -20,7 +17,7 @@ This page shows how to upgrade from PetSets (Kubernetes version 1.3 or 1.4) to *
{% capture prerequisites %}
* If you don't have PetSets in your current cluster, or you don't plan to upgrade
your master to Kubernetes 1.5 or later, you can skip this task.
your master to Kubernetes 1.5 or later, you can skip this task.
{% endcapture %}
@@ -28,12 +25,12 @@ This page shows how to upgrade from PetSets (Kubernetes version 1.3 or 1.4) to *
## Differences between alpha PetSets and beta StatefulSets
PetSet was introduced as an alpha resource in Kubernetes release 1.3, and was renamed to StatefulSet as a beta resource in 1.5.
PetSet was introduced as an alpha resource in Kubernetes release 1.3, and was renamed to StatefulSet as a beta resource in 1.5.
Here are some notable changes:
* **StatefulSet is the new PetSet**: PetSet is no longer available in Kubernetes release 1.5 or later. It becomes beta StatefulSet. To understand why the name was changed, see this [discussion thread](https://github.com/kubernetes/kubernetes/issues/27430).
* **StatefulSet guards against split brain**: StatefulSets guarantee at most one Pod for a given ordinal index can be running anywhere in a cluster, to guard against split brain scenarios with distributed applications. *TODO: Link to doc about fencing.*
* **Flipped debug annotation behavior**: The default value of the debug annotation (`pod.alpha.kubernetes.io/initialized`) is now `true`. The absence of this annotation will pause PetSet operations, but will NOT pause StatefulSet operations. In most cases, you no longer need this annotation in your StatefulSet manifests.
* **Flipped debug annotation behavior**: The default value of the debug annotation (`pod.alpha.kubernetes.io/initialized`) is now `true`. The absence of this annotation will pause PetSet operations, but will NOT pause StatefulSet operations. In most cases, you no longer need this annotation in your StatefulSet manifests.
## Upgrading from PetSets to StatefulSets
@@ -42,7 +39,7 @@ Note that these steps need to be done in the specified order. You **should
NOT upgrade your Kubernetes master, nodes, or `kubectl` to Kubernetes version
1.5 or later**, until told to do so.
### Find all PetSets and their manifests
### Find all PetSets and their manifests
First, find all existing PetSets in your cluster:
@@ -53,42 +50,42 @@ kubectl get petsets --all-namespaces
If you don't find any existing PetSets, you can safely upgrade your cluster to
Kubernetes version 1.5 or later.
If you find existing PetSets and you have all their manifests at hand, you can continue to the next step to prepare StatefulSet manifests.
If you find existing PetSets and you have all their manifests at hand, you can continue to the next step to prepare StatefulSet manifests.
Otherwise, you need to save their manifests so that you can recreate them as StatefulSets later.
Here's an example command for you to save all existing PetSets as one file.
Otherwise, you need to save their manifests so that you can recreate them as StatefulSets later.
Here's an example command for you to save all existing PetSets as one file.
```shell
# Save all existing PetSets in all namespaces into a single file. Only needed when you don't have their manifests at hand.
# Save all existing PetSets in all namespaces into a single file. Only needed when you don't have their manifests at hand.
kubectl get petsets --all-namespaces -o yaml > all-petsets.yaml
```
### Prepare StatefulSet manifests
### Prepare StatefulSet manifests
Now, for every PetSet manifest you have, prepare a corresponding StatefulSet manifest:
Now, for every PetSet manifest you have, prepare a corresponding StatefulSet manifest:
1. Change `apiVersion` from `apps/v1alpha1` to `apps/v1beta1`.
2. Change `kind` from `PetSet` to `StatefulSet`.
3. If you have the debug hook annotation `pod.alpha.kubernetes.io/initialized` set to `true`, you can remove it because it's redundant. If you don't have this annotation, you should add one, with the value set to `false`, to pause StatefulSets operations.
It's recommended that you keep both PetSet manifests and StatefulSet manifests, so that you can safely roll back and recreate your PetSets,
if you decide not to upgrade your cluster.
It's recommended that you keep both PetSet manifests and StatefulSet manifests, so that you can safely roll back and recreate your PetSets,
if you decide not to upgrade your cluster.
### Delete all PetSets without cascading
If you find existing PetSets in your cluster in the previous step, you need to delete all PetSets *without cascading*. You can do this from `kubectl` with `--cascade=false`.
Note that if the flag isn't set, **cascading deletion will be performed by default**, and all Pods managed by your PetSets will be gone.
If you find existing PetSets in your cluster in the previous step, you need to delete all PetSets *without cascading*. You can do this from `kubectl` with `--cascade=false`.
Note that if the flag isn't set, **cascading deletion will be performed by default**, and all Pods managed by your PetSets will be gone.
Delete those PetSets by specifying file names. This only works when
the files contain only PetSets, but not other resources such as Services:
```shell
# Delete all existing PetSets without cascading
# Delete all existing PetSets without cascading
# Note that <pet-set-file> should only contain PetSets that you want to delete, but not any other resources
kubectl delete -f <pet-set-file> --cascade=false
```
Alternatively, delete them by specifying resource names:
Alternatively, delete them by specifying resource names:
```shell
# Alternatively, delete them by name and namespace without cascading
@@ -98,23 +95,23 @@ kubectl delete petsets <pet-set-name> -n=<pet-set-namespace> --cascade=false
Make sure you've deleted all PetSets in the system:
```shell
# Get all PetSets again to make sure you deleted them all
# Get all PetSets again to make sure you deleted them all
# This should return nothing
kubectl get petsets --all-namespaces
```
At this moment, you've deleted all PetSets in your cluster, but not their Pods, Persistent Volumes, or Persistent Volume Claims.
At this moment, you've deleted all PetSets in your cluster, but not their Pods, Persistent Volumes, or Persistent Volume Claims.
However, since the Pods are not managed by PetSets anymore, they will be vulnerable to node failures until you finish the master upgrade and recreate StatefulSets.
### Upgrade your master to Kubernetes version 1.5 or later
Now, you can [upgrade your Kubernetes master](/docs/admin/cluster-management/#upgrading-a-cluster) to Kubernetes version 1.5 or later.
Note that **you should NOT upgrade Nodes at this time**, because the Pods
(that were once managed by PetSets) are now vulnerable to node failures.
(that were once managed by PetSets) are now vulnerable to node failures.
### Upgrade kubectl to Kubernetes version 1.5 or later
Upgrade `kubectl` to Kubernetes version 1.5 or later, following [the steps for installing and setting up
Upgrade `kubectl` to Kubernetes version 1.5 or later, following [the steps for installing and setting up
kubectl](/docs/tasks/kubectl/install/).
### Create StatefulSets
+1 -5
View File
@@ -3,12 +3,8 @@ assignees:
- bgrant0607
- mikedanese
title: Install and Set Up kubectl
redirect_from:
- "/docs/tasks/kubectl/install/"
- "/docs/tasks/kubectl/install.html"
- "/docs/user-guide/prereqs/"
- "/docs/user-guide/prereqs.html"
---
{% capture overview %}
Use the Kubernetes command-line tool, [kubectl](/docs/user-guide/kubectl), to deploy and manage applications on Kubernetes. Using kubectl, you can inspect cluster resources; create, delete, and update components; and look at your new cluster and bring up example apps.
{% endcapture %}