Posts published by: Silver Ghost

Не удаляется неймспейс в Kubernetes

После теста очередного софта в Kubernetes у меня не получилось удалить namespace этой утилиты.

Проблема была в том, что namespace оставался висеть в статусе Terminating. Пришлось разбираться почему и как его удалить.

Причина

При удалении неймспейса кубер проверяет специальное поле spec.finalizers в спецификации этого неймспейса. Если по какой-то причине …

Подпись git коммитов ssh ключом

Мы уже рассматривали зачем нужна подпись коммитов в одном из предыдущих постов.

Теперь же в git можно производить подпись коммитов и с помощью ssh ключа, чтоб не использовать gpg ключ, если он вам не нужен. Это отличная возможность, т.к. большинство людей используют SSH для доступа к репозиториям.

Подпись ключом …

k8s кластер из одной ноды

Для начала необходимо установить Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update && sudo apt install docker-ce

На данный момент kubernetes не поддерживает работу систем …

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

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