Сегодня игрался с talos.dev, оказался приятно удивлен.
И тебе bare-metal provisioning, и PXE, и локальный сетап с бесшовными обновлениями куба. Даже модули ядра предусмотрели, вообще красота.
Наконец-то кто-то сделал Kubernetes правильно!
https://github.com/siderolabs/talos
И тебе bare-metal provisioning, и PXE, и локальный сетап с бесшовными обновлениями куба. Даже модули ядра предусмотрели, вообще красота.
Наконец-то кто-то сделал Kubernetes правильно!
https://github.com/siderolabs/talos
GitHub
GitHub - siderolabs/talos: Talos Linux is a modern Linux distribution built for Kubernetes.
Talos Linux is a modern Linux distribution built for Kubernetes. - siderolabs/talos
❤1
Я тут задумался, а на чём можно сделать kubernetes-style API-сервер. А нашёл целый проект Kubernetes без Kubelet’а 🤔
https://dev.to/ashokan/kwok-kubernetes-without-kubelet-ie1
https://dev.to/ashokan/kwok-kubernetes-without-kubelet-ie1
DEV Community
KWOK - Kubernetes without Kubelet
Premise Kubernetes is an open-source container orchestration platform that automates the...
ITTales :(){ :|:& };:
Я тут задумался, а на чём можно сделать kubernetes-style API-сервер. А нашёл целый проект Kubernetes без Kubelet’а 🤔 https://dev.to/ashokan/kwok-kubernetes-without-kubelet-ie1
Должно быть огонь использовать KWOK с VirtualKubelet
https://github.com/virtual-kubelet/virtual-kubelet
https://github.com/virtual-kubelet/virtual-kubelet
GitHub
GitHub - virtual-kubelet/virtual-kubelet: Virtual Kubelet is an open source Kubernetes kubelet implementation.
Virtual Kubelet is an open source Kubernetes kubelet implementation. - virtual-kubelet/virtual-kubelet
ITTales :(){ :|:& };:
Я тут задумался, а на чём можно сделать kubernetes-style API-сервер. А нашёл целый проект Kubernetes без Kubelet’а 🤔 https://dev.to/ashokan/kwok-kubernetes-without-kubelet-ie1
А вообще вот что я на самом деле искал:
You may use this code if you want to build an Extension API Server to use with API Aggregation, or to build a stand-alone Kubernetes-style API server.
https://github.com/kubernetes/sample-apiserver
You may use this code if you want to build an Extension API Server to use with API Aggregation, or to build a stand-alone Kubernetes-style API server.
https://github.com/kubernetes/sample-apiserver
GitHub
GitHub - kubernetes/sample-apiserver: Reference implementation of an apiserver for a custom Kubernetes API.
Reference implementation of an apiserver for a custom Kubernetes API. - kubernetes/sample-apiserver
👍1
Тут в коментах накинули ещё интересную либу, которая позволяет транслировать запросы kube-apiserver к etcd в реляцеонные бд, такие как SQLite, PostgreSQL и MySQL
https://github.com/k3s-io/kine
https://github.com/k3s-io/kine
GitHub
GitHub - k3s-io/kine: Run Kubernetes on MySQL, Postgres, sqlite, not etcd.
Run Kubernetes on MySQL, Postgres, sqlite, not etcd. - k3s-io/kine
Краткий обзор на docker buildx для мультиплатформеной сборки докерфайлов
https://dev.to/aws-builders/using-docker-buildx-to-create-cross-platform-docker-images-for-seamless-compatibility-4k8b
https://dev.to/aws-builders/using-docker-buildx-to-create-cross-platform-docker-images-for-seamless-compatibility-4k8b
DEV Community
Using Docker Buildx to Create Cross-Platform Docker Images for Seamless Compatibility
Docker is really a great tool and provides a convenient way to package and deploy applications....
Сегодня решил поразбираться с тем каким же магическим образом собирается talos.
А для сборки он использует buildx + bldr подключаемый как LLB к buildkit
Был удивлён что теперь Docker поддерживает и кастомные форматы (не только Dockerfile) и позволяет билдить их с использованием внешних инструментов, именуемых LLB
Для того чтобы этот инструмент запустился, достаточно указать условый коментарий в файле:
Затем запустить сборку обычным докером:
в итоге сборка такого файла будет произведена LLB-плагином скачаным из registry
больше деталей и другие билдеры тут:
https://github.com/moby/buildkit#exploring-llb
А для сборки он использует buildx + bldr подключаемый как LLB к buildkit
Был удивлён что теперь Docker поддерживает и кастомные форматы (не только Dockerfile) и позволяет билдить их с использованием внешних инструментов, именуемых LLB
Для того чтобы этот инструмент запустился, достаточно указать условый коментарий в файле:
# syntax = ghcr.io/siderolabs/bldr:v0.2.0
Затем запустить сборку обычным докером:
docker build -f my-file
в итоге сборка такого файла будет произведена LLB-плагином скачаным из registry
больше деталей и другие билдеры тут:
https://github.com/moby/buildkit#exploring-llb
GitHub
GitHub - moby/buildkit: concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit - moby/buildkit
🔥5👍1
Новый релиз Mayastor включает поддержку снапшотов. Пока что только для томов с одной репликой и из них нельзя восстановиться, но похоже что работа идёт.
https://github.com/openebs/mayastor/releases/tag/v2.3.0
https://github.com/openebs/mayastor/releases/tag/v2.3.0
Эти же ребята пилят CSI-драйвер для ZFS. Сам не пробовал, но выглядит вполне рабочим решением.
https://github.com/openebs/zfs-localpv
https://github.com/openebs/zfs-localpv
GitHub
GitHub - openebs/zfs-localpv: Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is…
Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend ZFS data storage stack. - openebs/zfs-localpv
👍2
Я тут решил разобраться с тем как работает cloud-init чтобы найти хоть какие-то спецификации для конфигурации. Забегая вперёд скажу - их нет. С архитектурной точки зрения это просто какой-то ужас. Но что-то откопать таки удалось.
Начнём с того что cloud-init поддерживает большое количество датасорсов, там и OpenStack, и OpenNebula, и AWS, и Azure, и Google Cloud, и всё такое…
Все они собираются в единую структуру - instance metadata, которая слава богу имеет стандартизированную спеку. Её можно использовать в скриптах и темплейтах, но передать её напрямую ни через один датасорс нельзя.
Что же из себя представляет датасорс? Как правило это метод получения конфигурации из облака, который, в зависимости от облака в котором работает, превращает метаданные облака в instance metadata. Меня интересовали в первую очередь форматы OpenStack configDrive и NoCloud, которые позволяют передавать метаданные инстанса через ISO или файловую систему со специально определённый лейбл.
И тут начинается самое весёлое, так как единого стандарта нет, но есть некоторые негласные соглашения. А именно, что данные передаются в виде четырёх структур: meta-data, user-data, vendor-data и network-config (именование может быть разное, но суть примерно одна)
- meta-data - более-менее общий для всех клаудов, в нём чаще всего передают
- user-data - позволяет принимать в себя cloud-config структуру, которая тоже не стандартизирована, но тоже имеет общепринятые поля, либо вообще может быть чем угодно, например баш-скриптом, jinja-темплейтом для cloud-config’а или скрипта, так и конкатенировать в себя всё вышеперечисленное.
- vendor-data - тоже самое что и user-data, но по логике предоставляется вендором, а не пользователем
- network-config - у разных вендоров разный, но в NoCloud он более-менее стандартизирован и представляет собой конфиг netplan в чистом виде.
Начнём с того что cloud-init поддерживает большое количество датасорсов, там и OpenStack, и OpenNebula, и AWS, и Azure, и Google Cloud, и всё такое…
Все они собираются в единую структуру - instance metadata, которая слава богу имеет стандартизированную спеку. Её можно использовать в скриптах и темплейтах, но передать её напрямую ни через один датасорс нельзя.
Что же из себя представляет датасорс? Как правило это метод получения конфигурации из облака, который, в зависимости от облака в котором работает, превращает метаданные облака в instance metadata. Меня интересовали в первую очередь форматы OpenStack configDrive и NoCloud, которые позволяют передавать метаданные инстанса через ISO или файловую систему со специально определённый лейбл.
И тут начинается самое весёлое, так как единого стандарта нет, но есть некоторые негласные соглашения. А именно, что данные передаются в виде четырёх структур: meta-data, user-data, vendor-data и network-config (именование может быть разное, но суть примерно одна)
- meta-data - более-менее общий для всех клаудов, в нём чаще всего передают
instance-id, local-hostname и public-keys для ssh.- user-data - позволяет принимать в себя cloud-config структуру, которая тоже не стандартизирована, но тоже имеет общепринятые поля, либо вообще может быть чем угодно, например баш-скриптом, jinja-темплейтом для cloud-config’а или скрипта, так и конкатенировать в себя всё вышеперечисленное.
- vendor-data - тоже самое что и user-data, но по логике предоставляется вендором, а не пользователем
- network-config - у разных вендоров разный, но в NoCloud он более-менее стандартизирован и представляет собой конфиг netplan в чистом виде.
👍8🥴1
Очередная классная статья которая наглядно объясняет то как работают сеть в Kubernetes
https://dev.to/danielepolencic/tracing-pod-to-pod-network-traffic-in-kubernetes-434k
https://dev.to/danielepolencic/tracing-pod-to-pod-network-traffic-in-kubernetes-434k
DEV Community
Tracing pod to pod network traffic in Kubernetes
How does Pod to Pod communication work in Kubernetes? How does the traffic reach the pod? In this...
👍5
Штука которая умеет патчить произвольные ресурсы на этапе деплоя:
https://github.com/kubemod/kubemod
https://github.com/kubemod/kubemod
GitHub
GitHub - kubemod/kubemod: Universal Kubernetes mutating operator
Universal Kubernetes mutating operator. Contribute to kubemod/kubemod development by creating an account on GitHub.
👍4
Seagate выпускают диски 18TB, которые на самом деле являются 2 диска в 1:
https://blocksandfiles.com/2022/11/16/seagate-18tb-disk-speed/
Logically, the Exos 2X18 becomes two 9TB drives, and the two actuators address their own logical unit numbers (LUN0 and LUN1), which are addressed independently by the host’s operating system.
https://blocksandfiles.com/2022/11/16/seagate-18tb-disk-speed/
Blocks and Files
Seagate doubles 18TB disk's data transfer speed – Blocks and Files
Seagate has added a second read/write head to its Exos 16 and 18TB disk drives, more than doubling their data transfer speed.
Ещё немного информации об этих чудо-дисках, и о том как настроить ZFS на работу с ними
https://forum.level1techs.com/t/how-to-zfs-on-dual-actuator-mach2-drives-from-seagate-without-worry/197067
https://forum.level1techs.com/t/how-to-zfs-on-dual-actuator-mach2-drives-from-seagate-without-worry/197067
Level1Techs Forums
How to ZFS on Dual-Actuator Mach2 drives from Seagate without Worry
Check the videos out here: Buy Yours Here SAS3 Exos 2X18 18TB SAS3 Dual-Actuator 12Gb/s HDD Exos 2X18 16TB SAS3 Dual-Actuator 12Gb/s HDD SATA3 Exos 2X18 18TB SATA3 Dual-Actuator 6Gb/s HDD Exos 2X18 16TB SATA3 Dual-Actuator…
Forwarded from Технологический Болт Генона
У @flant_ru увидел новость, про то что Ansible на Rust переписывают.
В первую очередь, конечно, интересует совместимость с существующими плейбуками.
Её вроде обещают
> Aiming for roughly 90-95% compatibility with existing playbooks, including all critical language features.
> Ability to execute existing Ansible python modules via a language wrapper, transparently. As such, we may ship with a bare minimum of modules at the first release.
A New IT Automation Project? Moving Beyond Ansible And Keeping The Spirit - An Invitation
https://laserllama.substack.com/p/a-new-it-automation-project-moving
+
https://www.jetporch.com/
Ждём когда на GitHub выложат, будем посмотреть.
В первую очередь, конечно, интересует совместимость с существующими плейбуками.
Её вроде обещают
> Aiming for roughly 90-95% compatibility with existing playbooks, including all critical language features.
> Ability to execute existing Ansible python modules via a language wrapper, transparently. As such, we may ship with a bare minimum of modules at the first release.
A New IT Automation Project? Moving Beyond Ansible And Keeping The Spirit - An Invitation
https://laserllama.substack.com/p/a-new-it-automation-project-moving
+
https://www.jetporch.com/
Ждём когда на GitHub выложат, будем посмотреть.
👎5
Forwarded from Sysadmin Tools 🇺🇦
Alpine Linux does not make the news
https://drewdevault.com/2023/07/25/Alpine-does-not-make-news.html
#alpine #redhat #linux
https://drewdevault.com/2023/07/25/Alpine-does-not-make-news.html
#alpine #redhat #linux
👍3
Отличный гайд по настройке oidc авторизации в k3s через Gitlab (вполне апатируется и на стандартный куб)
https://www.hoelzel.it/kubernetes/2023/04/17/k3s-gitlab-oidc-copy.html
https://www.hoelzel.it/kubernetes/2023/04/17/k3s-gitlab-oidc-copy.html
{ Hoelzel.IT }
Kubernetes SSO with OIDC and GitLab in k3s
With the increasing adoption of microservices, the need for effective and efficient management of access and authentication has become paramount. This has led to the rise of Single Sign-On (SSO) solutions in Kubernetes environments, which not only provide…
если интересно, то вот так можно добавить kubeadm ноду в кластер талоса:
https://gist.github.com/kvaps/b9b6a8cc07b889a1f60bffc1ceba514d
https://gist.github.com/kvaps/b9b6a8cc07b889a1f60bffc1ceba514d
Gist
Add external kubeadm node to Talos cluster
Add external kubeadm node to Talos cluster. GitHub Gist: instantly share code, notes, and snippets.
👍4