172 похожих чатов

Коллеги, приветствую! Сам-то я девопс к акцентом на "дев" - так

что может быть вопрос ламерский.

Имеем k8s cluster на Azure, и через какое-то время замечаем, что внутри подов env просто какой-то монструозный.
Т.е. внутри каждого пода env vars всех вообще подов какие запущены.

Залезаю на ноду в кластере:

$ /bin/kubectl debug node/aks-nodepool-12981295-vmss000000 -it --image=mcr.microsoft.com/aks/fundamental/base-ubuntu:v0.0.11
Creating debugging pod node-debugger-aks-nodepool-12981295-vmss000000-jl528 with container debugger on node aks-nodepool-12981295-vmss000000.
If you don't see a command prompt, try pressing enter.
root@aks-nodepool-12981295-vmss000000:/# env
KC_SYNC_SERVICE_HOST=10.0.223.32
SPOOR_EQ_REMOTE_SCHEMA_PORT=tcp://10.0.123.28:80
KEYCLOAK_HTTP_PORT_80_TCP_PORT=80
REMOTE_SCHEMA_PORT_80_TCP_PROTO=tcp
.....
еще 140 env-vars от всех подов
Разве это нормально?
Я полагал, что :
- env-vars подов на нодах не видны
- что они не перемешиваются вместе
- что env-vars ноды не видны на подах

Я что-то понимал не так?

11 ответов

13 просмотров

там нет все env'ов от всех подов. Это все енвы сервисов в namespace'е пода, нужны для обнаружения сервисов > env-vars подов на нодах не видны env-vars любого процесса можно посмотреть с ноды если у тебя есть root. Процесс в контейнере это обычный процесс в системе, только огорожен cgroup'ом и неймспейсами. > то они не перемешиваются вместе они не перемешаны > что env-vars ноды не видны на подах так и есть. Но под env-vars ноды непонятно что имеется в виду

Alex-Yu Автор вопроса
Dmitry Sergeev 🇺🇦
там нет все env'ов от всех подов. Это все енвы сер...

Посмотреть - ОК Это вероятно с использованием nsenter или чего-то еще Но какого черта все поды имеют мешанину из env-vars друг друга - я понять не могу Это получается security breach потенциальный Запихал ты пароли в env-vars потом кто-то запустил под и видит все вокруг?

Alex Yu
Посмотреть - ОК Это вероятно с использованием nse...

> Это вероятно с использованием nsenter или чего-то еще Да нет, никаких nsenter даже не надо, идешь в файл /proc/номер-pid-процесса/environment

Alex Yu
Посмотреть - ОК Это вероятно с использованием nse...

> Но какого черта все поды имеют мешанину из env-vars друг друга - я понять не могу Нет никакой мешанины. Все приведенные примеры, это енвы для обнаружения служб поды не видят енвы друг-друга > потом кто-то запустил под и видит все вокруг? нет. Ну если только запустить привелигированный под, то через него ты можешь посмотреть енвы всех контейнеров на ноде. Но если ты разрешил запускать привелигированные поды - сам дурак

Dmitry Sergeev 🇺🇦
> Но какого черта все поды имеют мешанину из env-v...

https://kubernetes.io/docs/concepts/services-networking/service/#environment-variables REDIS_MASTER_SERVICE_HOST=10.0.0.11 REDIS_MASTER_SERVICE_PORT=6379 REDIS_MASTER_PORT=tcp://10.0.0.11:6379 REDIS_MASTER_PORT_6379_TCP=tcp://10.0.0.11:6379 REDIS_MASTER_PORT_6379_TCP_PROTO=tcp REDIS_MASTER_PORT_6379_TCP_PORT=6379 REDIS_MASTER_PORT_6379_TCP_ADDR=10.0.0.11

Alex-Yu Автор вопроса
Dmitry Sergeev 🇺🇦
> Но какого черта все поды имеют мешанину из env-v...

Так в том-то и дело, что видят В кластере лежат огрызки вообще другой системы, для которой пока руки не дошли отдельный кластер создать так видны env-vars и от этих огрызков

Alex Yu
Так в том-то и дело, что видят В кластере лежат ог...

нет. Ты просто невнимательно посмотрел на эти переменные. И не прошел по ссылке в доку что я выше кинул

Alex-Yu Автор вопроса
Dmitry Sergeev 🇺🇦
нет. Ты просто невнимательно посмотрел на эти пере...

ну как невнимательно? ╰─➤ kubectl exec -it kc-admin-5f8c49685-z9vnz -- env 130 ↵ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=kc-admin-5f8c49685-z9vnz TERM=xterm KEYCLOAK_BASE_URL=https://authentication-staging.api.adit.periplus.ch HASURA_GRAPHQL_URL=https://staging.api.adit.periplus.ch/v1/graphql KC_REALM=adit HASURA_GRAPHQL_ADMIN_SECRET=XXXX HASURA_GRAPHQL_DATABASE_URL=postgres://hasurauser:XXXXX@morat-staging-db.cxadsubxcuj7.eu-central-1.rds.amazonaws.com:5432/adit KC_PASSWORD=AditAdmin42! KC_CLIENT=adit-spa KC_URL=http://keycloak-http.staging KC_USER=adit-admin AUTH_WEBHOOK_SERVICE_PORT_HTTP=80 REMOTE_SCHEMA_SERVICE_HOST=10.0.127.72 SPOOR_LIGHT_STAGING_SPOOR_LIGHT_BACKEND_PORT_80_TCP_PORT=80 AUTH_WEBHOOK_SERVICE_HOST=10.0.171.153 KC_SYNC_SERVICE_PORT_HTTP=80 все env-vars всех подов или как иначе смотреть? Конечно, если я смотрю kubectl secrets, то все ОК: ╰─➤ kubectl -n staging get secrets kc-admin -o yaml | yq -r '.data| map_values(@base64d)' 1 ↵ { "HASURA_GRAPHQL_ADMIN_SECRET": "asdadaz", "HASURA_GRAPHQL_DATABASE_URL": "postgres://hasurauser:XXXXX@morat-staging-db.cxadsubxcuj7.eu-central-1.rds.amazonaws.com:5432/adit", "HASURA_GRAPHQL_URL": "https://staging.api.adit.periplus.ch/v1/graphql", "KC_PASSWORD": "XXXXXX", "KEYCLOAK_BASE_URL": "https://authentication-staging.api.adit.periplus.ch" }

Alex Yu
ну как невнимательно? ╰─➤ kubectl exec -it kc-adm...

ну и что тут не так? какие переменные тебя смущают?

Alex-Yu Автор вопроса
Dmitry Sergeev 🇺🇦
ну и что тут не так? какие переменные тебя смущают...

Пароли к БД которые сервисом не используются И не могут использоваться доступны из env

Alex Yu
ну как невнимательно? ╰─➤ kubectl exec -it kc-adm...

Так вы глазами ничего не видите. И верите в то что не видите, да еще пытаетесь исправить несуществующее явление =) Секрет kc-admin имеет поля: HASURA_GRAPHQL_ADMIN_SECRET, HASURA_GRAPHQL_DATABASE_URL, HASURA_GRAPHQL_URL, KC_PASSWORD, KEYCLOAK_BASE_URL - все эти поля прокидываются в env пода. Потому что это указано в этом ямле для пода очевидно (поля env, envFrom) Также очевидно переменные среды KC_REALM, KC_CLIENT, KC_USER - также прокинуты каким-то сопсобом в под через манифест (поля env, envFrom) Остальные переменные среды AUTH_WEBHOOK_SERVICE_PORT_HTTP, REMOTE_SCHEMA_SERVICE_HOST, SPOOR_LIGHT_STAGING_SPOOR_LIGHT_BACKEND_PORT_80_TCP_PORT, KC_SYNC_SERVICE_PORT_HTTP это автоматически созданные кубом переменные для обнаружения служб - auth-webhook, remote-schema, kc-sync и так далее

Похожие вопросы

Обсуждают сегодня

Доброй ночи. Вопрос знатокам. Имеется некая таблица, результат которой выведен в DBGrid на форме. И есть форма, с помощью которой можно как добавить запись, так и отредактиров...
Евгений
27
а всё почему? потому что ассемблер в отличии от яву порождает множество пагубных привычек, среди которых например можно отметить использование глобальных переменных для всего ...
Mixail Frolov
35
Всем привет 👋 Подскажите пожалуйста, а чего тут не хватает permission или образ битый? Running with gitlab-runner 17.0.0 (44feccdf) on gitlab-runner-c58775949-d7znz YxYz2zp...
Max
2
анрей С какой целью зашёл?
КТ315
42
Кто нибудь из участников чата пишет на ассемблере под GNU/Linux?
Spiker01
24
я часов 15 назад начал пытаться написать хоть что-то напоминающее ос и у меня есть проблема, которую я пытаюсь решить последние часов 5: есть крч 2 исходника с минимальным код...
Al1to
17
Всем привет ребят! Мб кто-то сталкивался? adminСomponents .get("searchСomponents", use: searchComponents) .openAPI( summary: ...
Admin Adminov
2
Кстати вопрос. Проанализировав свои проекты я понял, что в наиболее ценных из них Асм использовался для организации real-time процессов (внутри DOS). А какие есть способы сего...
Alexander Morozov
18
Я не очень много работал с потоками, тут возник вопрос - если будет одновременный доступ к памяти из двух разных потоков, это само по себе приведет к ошибке?
The Bird of Hermes
25
Насколько моя реализация Exercise 1 плохая? data MessageType = Info | Warning | Error Int deriving (Show, Eq) type TimeStamp = Int data LogMessage = LogMessage ...
= ?
6
Карта сайта