Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What environment variables are created in kubernetes by default

I can't find this in the k8s documentation, I'm just wondering what are the default environment variables that are created in every container by k8s. Not user created defaults, but like (and this is just an example) maybe something like {service_name}_PORT or something like that. I just wanna know what information is available in a container by default.

like image 380
Luis F Hernandez Avatar asked Aug 18 '17 14:08

Luis F Hernandez


People also ask

What are environment variables in Kubernetes?

Kubernetes environment variables are nothing but the variables that we can define in a Pod's configuration and it can be used elsewhere in the configuration.

Where does Kubernetes set environment variables?

To set environment variables, include the env or envFrom field in the configuration file. Note: The environment variables set using the env or envFrom field override any environment variables specified in the container image. Note: Environment variables may reference each other, however ordering is important.

What is the default container platform used by Kubernetes?

Docker (Containerd)—the leading container system, offering a full suite of features, with free or paid options. It is the default Kubernetes container runtime, providing image specifications, a command-line interface (CLI) and a container image-building service.


1 Answers

From the K8S Documentation;

Container information - ENV's

The hostname of a Container is the name of the Pod in which the Container is running. It is available through the hostname command or the gethostname function call in libc.

The Pod name and namespace are available as environment variables.

These are the additional ENV's in a MiniKube cluster I have running:

HOSTNAME=something-api-234234234-skm70
SHLVL=1
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_HOST=x.x.x.x
PWD=/

User defined environment variables from the Pod definition are also available to the Container, as are any environment variables specified statically in the Docker image.

Cluster Information - ENV's

A list of all services that were running when a Container was created is available to that Container as environment variables. Those environment variables match the syntax of Docker links.

For a service named foo that maps to a container port named bar, the following variables are defined:

FOO_SERVICE_HOST=<the host the service is running on>
FOO_SERVICE_PORT=<the port the service is running on>

Ref: https://kubernetes.io/docs/concepts/containers/container-environment/

like image 199
ajtrichards Avatar answered Oct 14 '22 07:10

ajtrichards