CoreDNS CrashLoopBackOff

После установки k8s иногда бывает, что kubectl get pods дает список подов, где coredns падает при запуске с ошибкой:

NAME                              READY   STATUS             RESTARTS   AGE
coredns-5c98db65d4-gz6bt          0/1     CrashLoopBackOff   114        10h
coredns-5c98db65d4-tkgxt          0/1     CrashLoopBackOff   114        10h
etcd-kmaster                      1/1     Running            0          10h
kube-apiserver-kmaster            1/1     Running            0          10h
kube-controller-manager-kmaster   1 …

Как подписывать коммиты в Git

Spoofing пользователей в GitHub

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

$ git config user.name "John Doe"
$ git config user.email "[email protected]"
$ touch badcode.js
$ git add .
$ git commit -m 'add …

Docker login в Kubernetes

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

Но вот в kubernetes мы не работаем с docker напрямую и тут сразу возникает вопрос - как залогиниться в наш приватный репозиторий.

Делается это довольно просто …

Ошибка HPA в k8s

После развертывания CronJob в кластере kubernetes столкнулся с проблемой. Перестал работать Horisontal Pod Autoscaler.

Ошибка при этом была следующей:

horizontal-pod-autoscaler missing request for cpu

Есть даже issue на GitHub, которое до сих пор открыто. Но решается эта проблема добавлением лимитов в контейнер CronJob:

              resources:
                requests:
                  memory: "32Mi"
                  cpu …

Периодический перезапуск pod'ов в k8s

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

Диспозиция

  1. Приложение надо периодически перезапускать
  2. Приложение задеплоено в kubernetes

Реализация

RBAC

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

---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: test-restart
  namespace: test-ns …

NVM не может установить нужную версию NodeJS

В MacOS обнаружил, что Node Version Manager не может поставить нужную мне версию NodeJS. Как это было.

Ставлю NVM:

brew install nvm

И пытаюсь поставить ноду:

nvm install 12.16.1

Она начинает устанавливаться и падает с такой ошибкой:

 nvm install 12.16.1
Downloading and installing node v12.16 …

Как расширить root раздел под LVM

Для начала надо расширить сам раздел

growpart /dev/sda 3

Смотрим, что у нас получилось

fdisk -l

Если все прошло успешно, то увеличиваем место в физическом томе

pvresize /dev/sda3
pvdisplay

Дальше увеличиваем логический том

lvextend -l 100%FREE --resizefs /dev/ubuntu-vg/ubuntu-lv
vgdisplay

Иногда может понадобиться расширить файловую систему …

Домашний сервер - продолжение

Обновился мой домашний сервер и пора бы уже рассказать, что изменилось по железу и софту, который задеплоен на него. Из Китая был заказан комплект мать + проц + память.

Железо

  • Процессор - Intel(R) Xeon(R) CPU E5-2689 0 @ 2.60GHz
  • Материнская плата - Kllisre X79
  • Операционная система установлена на SSD Intel 120GB
  • Хранилище …

Домашний сервер и его обитатели

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

Железо

  • Процессор - Intel(R) Pentium(R) CPU G3260 @ 3.30GHz
  • Материнская плата - AsRock H81M-VG4 R4.0 …

У сертификата AddTrust истек срок действия

30 мая истёк 20-летний срок действия корневого сертификата AddTrust, который применялся для формирования перекрёстной подписи (cross-signed) в сертификатах одного из крупнейших удостоверяющих центров Sectigo (Comodo). Перекрёстная подпись позволяла обеспечить совместимость с устаревшими устройствами, в хранилище корневых сертификатов которых не был добавлен новый корневой сертификат Sectigo.

В теории это не должно …