Как стать автором
Обновить
15
0.1
Алексей @ckpunT

DevOps

Отправить сообщение

Можете попробовать pyinstaller. Он соберет только необходимые файлы для вашего приложения в один бинарь. Решение спорное, но вроде все ваши потребности закрывает и более безопасным способом

если следовать настройкам из доки яндекса, то доступны все

Без ВПН можно использовать зеркала Яндекс и Селектел (возможно не только их)

Как это развернуть у себя?

Если это пошаговое how-to, то где шаги для воспроизведения?

Какие плюсы по сравнению с Gitea Actions или Drone?

Почему это называется "платформа"?

В голосовалке отсутствует ещё один вариант

Gitlab и Verdaccio можно сконнектить через OpenID и не мучаться с паролями в htpasswd. Даст возможность использовать CI_JOB_TOKEN в джобах и авторизовываться в web-интерфейсе по кнопке

Я не из США или ЕС

Какие-то абстрактные цифры про средний пробег в 20 км в день. Мне ребенка в школу отвезти и забрать это почти 20 км. Так же у нас холодно, 2 недели было -25 ... -30, это дополнительный расход.

Не хватает зарядки за ночь от розетки, покрывающий мой дневной расход/пробег!!! Зарядка от розетки позволяет реже бывать на зарядной станции. А про очередь и время зарядки проще промолчать. С розеткой мне повезло, удалось договориться с УК чтобы подключиться у охранника.

Доя экстренных случаев есть быстрые зарядки до 500 КВт

в Москве возможно и есть)

остается сделать пару манипуляций: подогнать авто к розетке на 19-ом этаже и зарядить за ночь от обычной розетки 85 кВт аккумулятор

Беру свои слова назад, оказывается уже давно добавили кэширование. На каталогах cluster и third_party первое чтение чуть больше секунды (mac mini i7 2012), остальные 60 мс. Как раз последний раз смотрел Gitea не за долго до этого коммита и там было сильно печально.

github тоже частично на рубях писан и работает вполне быстро. Он как и gitlab под капотом использует libgit2. Gitea и Gogs по сути обертки для си-шного бинаря git.

не провисает практически совсем

Попробуйте поиграться с репой Kubernetes. У Gitea и Gogs нет кэширования истории коммитов, потому они на больших репах, с длинной историей, будут сильно проигрывать по производительности Gitlab-у, но будут значительно быстрее Gitflic))

Правите конфиг kube-proxy: mode: "ipvs". На каждой ноде куба появляется интерфейс kube-ipvs0 со всеми ip сервисов. Т.е. все кубо-сервисы доступны по этим ip на любой ноде куба.

Добавляете на своем маршрутизаторе маршрут до servceCIDR указав шлюзом любую ноду куба, ipvs с flannel разберутся сами (у меня ещё OSPF был чтобы можно было не писать маршруты до podCIDR нод, дает возможность ходить напрямую в нужный pod)

> nslookup kubernetes.default.svc.cluster.local `k -n kube-system get svc kube-dns -o jsonpath='{.spec.clusterIP}'`
Server:		10.96.0.10
Address:	10.96.0.10#53

Name:	kubernetes.default.svc.cluster.local
Address: 10.96.0.1

> echo 'nameserver 10.96.0.10' >> /etc/resolv.conf

> ping kubernetes.default.svc.cluster.local
PING kubernetes.default.svc.cluster.local (10.96.0.1): 56 data bytes
64 bytes from 10.96.0.1: icmp_seq=0 ttl=64 time=7.359 ms
64 bytes from 10.96.0.1: icmp_seq=1 ttl=64 time=8.558 ms
64 bytes from 10.96.0.1: icmp_seq=2 ttl=64 time=10.363 ms
64 bytes from 10.96.0.1: icmp_seq=3 ttl=64 time=5.093 ms
^C
--- 10.96.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 5.093/7.843/10.363/1.914 ms

стенды ходят в сервисы, поды ходят куда направите. Можно смапить внешний сервис через Service без селектора с Endpoints или externalName

Nginx и flannel на стендах больше не нужен

Так мы получим доступ к приложениям, запущенным в Kubernetes без использования NodePort, LoadBalancer и Ingress Controller.

Шаг 4. Почти всё

...

nodePort: 32053

Шаг 5. Финальный

...

Дополнительно на стенде установлен nginx, работающий как tcp proxy

podCIDR: 10.244.XXX.0/YY

...

мы делаем для стендов блоки /28, резервируя только 16 адресов на каждый стенд

...

Сегодня на стенде запущено ~60 контейнеров

Выводы

Это, слегка костыльное, решение

kube-proxy: mode: "ipvs" + статическая маршрутизация == вся статья

Название статьи должно содержать слова: "Пожалуйста" "пишите" "shell-скрипты" "правильно"

То, что многие люди называют Docker—образами, на самом деле является образами в формате Open Container Initiative (OCI).

ТО, что многие называют Docker—образами, является Docker V2 Schema 2. OCI, базирующийся на кодовой базе Docker, но по факту сильно отличающийся от Docker V2.

Likewise, Docker contributed the Docker V2 Image specification to act as the basis of the OCI image specification.

Установите skopeo, выполните команды и сравните результаты:

mkdir oci docker 
skopeo copy docker://alpine:3 oci:oci

# same as docker pull alpine:3 && docker save alpine:3 | tar x -C docker
skopeo copy docker://alpine:3 dir:docker
В статье описан опыт применения NJS. Само решение было реализовано за год до релиза в CE-версии (13.3) и даже до появления его в EE-версии и скорее всего сейчас не используется. Собственно это и послужило мотивацией для написания статьи
Для Flannel категорически важно использовать --pod-network-cidr=10.244.0.0/16. С другим адресным пространством для POD-ов K8S он не запустится.

с любым возможно запустить
Сама по себе тема достаточно интересная, но гифка в полторы минуты и if-ы сильно портят впечатление о статье.
Первоначальной проблемой, скорее всего будет отсутствие полноценной поддержки языка в NJS. Пока что реализована только малая часть. И даже если бандл заведется, то более существенной проблемой будет его отладка.
Данный кейс точно не для продакшена, это верно. Про отладку согласен.
Изначально была мысль, что вообще не получится подобное реализовать, но не только удалось это сделать, но и довольно быстро. Результат: получил опыт и делюсь со всеми. За одно с AWS sign v4 разобрался, все никак руки не доходили.

Информация

В рейтинге
2 632-й
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность