mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-12-05 07:26:56 +00:00
Getting the public IP a container is supposed to use is O(hard), and usually involves ugly gyrations in python or with interfaces. Using the downward API means that the IP Kube is announcing to other endpoints is also visible inside the container for pods to identify themselves.
73 lines
2.5 KiB
Markdown
73 lines
2.5 KiB
Markdown
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
|
|
|
|
<!-- BEGIN STRIP_FOR_RELEASE -->
|
|
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
|
|
<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>
|
|
|
|
If you are using a released version of Kubernetes, you should
|
|
refer to the docs that go with that version.
|
|
|
|
<strong>
|
|
The latest 1.0.x release of this document can be found
|
|
[here](http://releases.k8s.io/release-1.0/docs/user-guide/downward-api/README.md).
|
|
|
|
Documentation for other releases can be found at
|
|
[releases.k8s.io](http://releases.k8s.io).
|
|
</strong>
|
|
--
|
|
|
|
<!-- END STRIP_FOR_RELEASE -->
|
|
|
|
<!-- END MUNGE: UNVERSIONED_WARNING -->
|
|
|
|
# Downward API example
|
|
|
|
Following this example, you will create a pod with a containers that consumes the pod's name and
|
|
namespace using the [downward API](../downward-api.md).
|
|
|
|
## Step Zero: Prerequisites
|
|
|
|
This example assumes you have a Kubernetes cluster installed and running, and that you have
|
|
installed the `kubectl` command line tool somewhere in your path. Please see the [getting
|
|
started](../../../docs/getting-started-guides/) for installation instructions for your platform.
|
|
|
|
## Step One: Create the pod
|
|
|
|
Containers consume the downward API using environment variables. The downward API allows
|
|
containers to be injected with the name and namespace of the pod the container is in.
|
|
|
|
Use the [`examples/downward-api/dapi-pod.yaml`](dapi-pod.yaml) file to create a Pod with a container that consumes the
|
|
downward API.
|
|
|
|
```console
|
|
$ kubectl create -f docs/user-guide/downward-api/dapi-pod.yaml
|
|
```
|
|
|
|
### Examine the logs
|
|
|
|
This pod runs the `env` command in a container that consumes the downward API. You can grep
|
|
through the pod logs to see that the pod was injected with the correct values:
|
|
|
|
```console
|
|
$ kubectl logs dapi-test-pod | grep POD_
|
|
2015-04-30T20:22:18.568024817Z MY_POD_NAME=dapi-test-pod
|
|
2015-04-30T20:22:18.568087688Z MY_POD_NAMESPACE=default
|
|
2015-04-30T20:22:18.568092435Z MY_POD_IP=10.0.1.6
|
|
```
|
|
|
|
|
|
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
|
[]()
|
|
<!-- END MUNGE: GENERATED_ANALYTICS -->
|