Kubernetes и кот Лихачева
4.2K subscribers
991 photos
27 videos
4 files
1.05K links
Все про Kubernetes и немного про кота Маркуса

Чат для конструктивного общения: https://t.iss.one/+Q4z_2ckAkBxhNWNi

Задать вопрос: https://t.iss.one/K8sSlurm_bot?start=question
Download Telegram
Появился init container, который добавляет тот самый бинарник, что будет общаться с vault

- command:
    - sh
    - -c
    - cp /usr/local/bin/vault-env /vault/
    image: ghcr.io/bank-vaults/vault-env:v1.21.7
    imagePullPolicy: IfNotPresent
    name: copy-vault-env
    resources:
      limits:
        cpu: 500m
        memory: 256Mi
      requests:
        cpu: 100m
        memory: 128Mi
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      readOnlyRootFilesystem: false
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /vault/
      name: vault-env
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-5xchz
      readOnly: true

А volume vault-env - это просто emptyDir. Надо же как-то из init container передать файл в приложение

- emptyDir:
      medium: Memory
    name: vault-env
Запуск основного приложения теперь выглядит так.

- args:
    - /bin/sh
    - -c
    - |
      printenv
      sleep 999999
    command:
    - /vault/vault-env
    env:
    - name: MYKEY
      value: vault:k8s/data/myapp/prod#mykey
    - name: VAULT_ADDR
      value: https://vault.vault:8200
    - name: VAULT_SKIP_VERIFY
      value: "false"
    - name: VAULT_AUTH_METHOD
      value: jwt
    - name: VAULT_PATH
      value: kubernetes
    - name: VAULT_ROLE
      value: myapp-prod
    - name: VAULT_IGNORE_MISSING_SECRETS
      value: "false"
    - name: VAULT_ENV_PASSTHROUGH
    - name: VAULT_JSON_LOG
      value: "false"
    - name: VAULT_CLIENT_TIMEOUT
      value: 10s
    - name: VAULT_LOG_LEVEL
      value: info
    - name: VAULT_TRANSIT_BATCH_SIZE
      value: "25"


А как происходит запуск и подстановка переменных, можно посмотреть здесь.
Конкретно эта строка запускает наше приложение, заменяя свой процесс нашей командой, не оставляя следов своего запуска

err = syscall.Exec(binary, entrypointCmd, sanitized.env)


И к минусам: в режиме по умолчанию мы теряем возможность обновлять секреты на лету.

Как раз потому, что бинарник, который выполняет логику подтягивания секретов, заменяется, у нас не остается никакой связи с vault.

Посмотрим в поде — не видно процесса, только наша команда

k -n app-prod exec -it app-746476f78-hksg5 -- ps aux
Defaulted container "busybox" out of: busybox, copy-vault-env (init)
PID   USER     TIME  COMMAND
    1 root      0:00 /bin/sh -c trap 'echo "SIGHUP received, reloading configur
  186 root      0:00 sleep 1


Потому что https://pkg.go.dev/syscall#Exec вызывает https://man7.org/linux/man-pages/man2/execve.2.html

execve() executes the program referred to by pathname. This causes the program that is currently being run by the calling process to be replaced with a new program, with newly initializedstack, heap, and (initialized and uninitialized) data segments.
И почему нужно запрещать exec, если не хотим утечки?

k -n app-prod exec -it app-746476f78-hksg5 -- cat /proc/1/environ


Так очень легко посмотреть переменные окружения процесса.

Если же нам нужна поддержка ротации секретов без рестарта, стоит рассмотреть daemon mode и поменять логику приложения на работу с файловой системой вместо env vars, потому что менять env vars на ходу крайне сложно, чтобы приложение это заметило.  

Зачем нужна ротация секретов, я уже писал ранее.

Ставьте 👀 , если не знали, и было полезно
Ставьте 💅 , если знали, и было полезно
👀10💅5👍1
Приветствую всех новичков на канале

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

➡️ Меня зовут Виталий Лихачев, я SRE в крупнейшем голландском тревелтехе. Вместе со своим котом Маркусом я рассказываю про кубы, делюсь полезными штуками, провожу прямые эфиры и вебинары для инженеров и разработчиков. С недавних пор я живу в Нидерландах, поэтому здесь также встречаются посты про релокацию (переехать вместе с котом — тот еще квест).

А ещё я — спикер курсов в учебном центре Слёрм. Всего на факультете Kubernetes три флагманских курса:

🟠 Kubernetes База — стартовый курс для инженеров и администраторов
🟠 Kubernetes Мега — продвинутый курс для тех, кто уже работал с k8s или прошел Kubernetes База
🟠 Kubernetes для разработчиков — углубленный разбор k8s с точки зрения работы приложения.

Теперь, когда вы знаете чуть больше обо мне и направлениях моей деятельности, я тоже хочу познакомиться с вами поближе. Расскажите в комментариях, кто вы и как связаны с кубами ⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Безопасность в Kubernetes

Почему безопасность — это не просто галочка в чек-листе, и зачем я уделяю ей столько внимания? Реальность показывает, что халатность в этом вопросе может стоить компании миллионов.

Вспомните Tesla, где майнили крипту прямо в их Kubernetes-кластере (почитать можно тут).

🔷 Материалов по теме не так много, так что мы с Севой Севостьяновым решили провести вебинар, на котором поговорим про тулинг для построения более безопасной инфраструктуры в k8s.

Разберём всё: от сканирования на уязвимости до деплоя в прод и постоянного мониторинга возможных инцидентов.

А ещё:

🟣 посмотрим, что есть в экосистеме k8s;
🟣 зачем это применять;
🟣 когда не оправдано закручивание гаек в инфраструктуре.

Когда: 27 марта в 20:00 мск

🐈 Занять место — через бота
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Голландская рулетка: диван через окно, на каком языке говорить и как выжить среди великанов и чаек

В 2024 году я переехал в Нидерланды. Я давно обещал вам серию постов об этой стране, и сегодня мы поговорим про культурные особенности Нидерландов, про планирование, погоду и про еду.

➡️ Нейминг

Официальное название страны — королевство Нидерландов.

Часто Нидерланды называют Голландией, что не совсем корректно, поскольку Голландия — это 2 из 12 провинций страны: Северная и Южная Голландия. Однако исторически именно эти провинции были наиболее развитыми и известными за пределами страны, поэтому название Голландия так прочно укрепилось.

Это самое частое заблуждение, что встречается.

Минутка юмора: произнесите Нидерланды с ударением на последний слог, и вот вы уже чувствуете вкус кумыса.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍3
➡️ Культурные особенности

Стоит отметить, что в Амстердаме проживает значительное количество экспатов; по некоторым данным, около 30% жителей города не являются коренными нидерландцами. Это влияет на восприятие, и, оставаясь только в Амстердаме, можно не получить полного представления о стране в целом.

Центр Амстердама очень сильно заточен под туристов, которых здесь безумно много, что особенно заметно вечером в «старом» Амстердаме. Это та самая часть города, которую обычно показывают в фильмах, потому что там все те самые старинные дома, узкие улицы и каналы.

Пример на фото (credits pixabay/user32212)⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
Кстати, про лестницы. Это ужас 🙂, если смотреть жилье в таких внешне красивых домах. Стопа во всю длину никогда не поместится, и есть риск улететь, но местные привычные и для них это норма.

Источник фото
👻5
Как только отъезжаем подальше, смотрим более новые дома (построенные хотя бы в конце 20-го века), ситуация с лестницами становится уже вполне обычной.

Возникает резонный вопрос — а как мебель заносить-то?

Через окна. На домах есть крюки, при помощи которых поднимали раньше (и сейчас поднимают) крупногабаритные вещи. Конечно сейчас чаще используют спецтехнику с подъемной платформой, но крюки все еще актуальны. На фото виден диван, который вручную при помощи каната затягивают через окно.

Источник фото
➡️ Язык

Официальный язык — нидерландский. Он довольно сложный для изучения и произношения. Помимо Нидерландов, на нидерландском говорят в Бельгии, например.

Интересно, что нидерландский язык имеет схожесть с немецким и английским, что облегчает его изучение для носителей этих языков (но это неточно), но мало помогает, когда всю жизнь учил английский как второй язык 🙂

Английский язык широко распространен в Нидерландах. Большинство жителей свободно владеют им, что делает жизнь чуть более удобной.

Посмотрим на несколько фраз

🟠 Hello, how are you? → Hallo, hoe gaat het?
🟠 How much does this cheese head cost? → Hoeveel kost deze kaaskop?
🟠 I want to rent a bike. → Ik wil een fiets huren.

Но есть и варианты, когда слова очень похожи с английским на слух.

🟠 My phone is dead. → Mijn telefoon is dood.
🟠 I want to drink. → Ik wil drinken.
🟠 Can you help me? → Kan je mij helpen?

И нет, произносится все это далеко не как в английском.

А слово fiets (велосипед) было одно из первых, что я выучил, но про транспорт в другой раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
➡️ Прямолинейность

Нидерландцы известны своей прямотой в общении. Они предпочитают открыто выражать все что думают, что может показаться непривычным для представителей других культур. Однако такая откровенность помогает избежать недоразумений и способствует ясности в коммуникации.

➡️ Планирование

Нидерландцы придают большое значение планированию. Спонтанные встречи не являются обычным делом; даже чтобы выпить кофе, часто требуется договориться за несколько дней или недель.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
➡️ Еда

Подумайте, о каких блюдах/продуктах ваш мозг вспоминает при упоминании Нидерландов?

Вероятно, это сыр и селедка.

Действительно, сыр здесь отличный и есть огромный выбор и в обычных супермаркетах.

А на специализированных сырных рынках или на сыроварнях, коих тоже великое множество, можно попробовать 50-100 видов сыра с различными добавками.

Кстати, на сырных рынках можно увидеть, как носили сыр в прошлом. Довольно удобно и не перегружает спину. Сам не пробовал, но кажется это так должно работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6
Селедка — очень популярна и часто ее едят прямо на улице. Продается в специальных киосках, и традиционно ее едят, запрокинув голову и опустив рыбу в рот, что может показаться необычным поначалу.

Традиционный вид продукта включает флаг Нидерландов 🙂 и часто подается с луком и маринованными огурцами.
1👍1
Однако стоит опасаться чаек, они очень наглые и легко украдут рыбу прямо из под носа (или изо рта и это не шутка), поэтому в местах скопления этих птичек нужно быть очень осторожным и лучше есть рыбу под навесом :)

Посмотрите видео и проникнитесь их напористостью ⬇️
This media is not supported in your browser
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁71🔥1
➡️ Погода

Нидерланды известны переменчивой погодой и частыми дождями, но солнце тоже снисходит иногда и позволяет даже загорать. Хотя северное море летом в жару не так, чтобы сильно прогревалось, а плавать в холодной воде такое себе развлечение, особенно учитывая большое количество медуз)

А дожди? Может и 2 дня подряд лить с переменной интенсивностью. И что еще я выучил. Если KNMI (Королевский Нидерландский метеорологический институт) объявляет code orange, иногда лучше прислушаться, потому что штормы бывают довольно ощутимые. К счастью, нечасто.

И напоследок

Отличительная особенность голландцев — они довольно высокие.

Из-за этого, например, на концертах, приходится искать себе место среди людей, чтобы увидеть сцену, а не спину голландца :)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Почему Нидерланды не тонут, несмотря на то, что часть страны находится ниже уровня моря? 🌊🇳🇱
Anonymous Quiz
67%
Построена сложная система дамб и плотин
10%
Воду выливают в соседние страны
23%
Это всё заговор! На самом деле Голландии не существует
🤩1
Защищаем инфраструктуру Kubernetes без боли

➡️ вебинар уже в этот четверг

Что будем обсуждать:

🟠 что есть в экосистеме k8s;
🟠 зачем это применять;
🟠 когда не оправдано закручивание гаек в инфраструктуре.

Поговорим, кому и зачем нужно защищать инфраструктуру в k8s, разберем многоэтапный процесс построения security и дадим рекомендации, основанные на собственных ошибках и шишках.

Спикеры:
➡️ Виталий Лихачев — со мной, надеюсь, вы уже знакомы. Если нет, ловите ссылку на приветственный пост.
➡️ Всеволод Севостьянов, Staff engineer в Lokalise

🐈 Специальный гость — кот Маркус (придёт, только если увидит много 🔥 под этим постом).

Когда: 27 марта в 20:00

Занять место на вебинаре — через бота. Ждём вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81