Kubernetes получают полное имя модуля в качестве переменной среды - PullRequest
0 голосов
/ 25 сентября 2019

Я знаю, что могу определить что-то подобное, чтобы получить имя модуля в моих контейнерах:

env:
- name: POD_NAME
  valueFrom:
     fieldRef:
       fieldPath: metadata.name

Но когда я запускаю: $kubectl get pods

У меня другой результат,что-то вроде: uipod-5d6795db87-cxxkg, что соответствует <replicatset name>-cxxkg.

Можно ли получить это полное имя (uipod-5d6795db87-cxxkg) в качестве переменной окружения?Вместо только имени пакета (uipod).

Большое спасибо

1 Ответ

0 голосов
/ 25 сентября 2019

Вам не нужно явно устанавливать переменную среды с именем модуля, она уже присутствует внутри модуля в виде переменной среды с именем HOSTNAME.

Например,

$ kubectl run nginx --image=nginx
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectlrun --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
$
$ kubectl get pods
NAME                     READY   STATUS    RESTARTS   AGE
nginx-7bb7cd8db5-kddbs   1/1     Running   0          12s
$
$ kubectl exec -it nginx-7bb7cd8db5-kddbs bash
root@nginx-7bb7cd8db5-kddbs:/#
root@nginx-7bb7cd8db5-kddbs:/# env | grep HOSTNAME
HOSTNAME=nginx-7bb7cd8db5-kddbs
root@nginx-7bb7cd8db5-kddbs:/#

ПРИМЕЧАНИЕ. Как видите, в переменной среды HOSTNAME уже задано точное имя модуля.

Надеюсь, это поможет.

...