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 ответов

11 просмотров

там нет все 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 и так далее

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

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

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
18
что это и почему оно? executor.start_polling(bot, skip_updates=True, on_startup=on_startup, File "/usr/local/lib/python3.10/dist-packages/aiogram/utils/executor.py", line 4...
𐌍𐌄 ᕓ𐌄𐌓𐌌Ꝋ𐌓𐌄
2
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
Подскажите, почему в правом коде с1 дополняется до 8байт, а не до 4?
Sergey
9
Карта сайта