среда, 18 июля 2018 г.

понизити (downgrade) kubernetes 1.11.1 назад до 1.11.0 з ceph

1. повертаємо debian пакети

apt-get install kubeadm=1.11.0-00 kubectl=1.11.0-00 kubelet=1.11.0-00
в мене змінений файл в systemd
10-kubeadm.conf\
тому погоджуємося на заміну
там відрізняється формат

2. kubeadm config images pull --kubernetes-version=v1.11.0


3. Робимо файл, пусть буде config.yaml
    apiVersion: kubeadm.k8s.io/v1alpha1
    kind: MasterConfiguration
    api:
      advertiseAddress: 10.1.0.151
    networking:
      podSubnet: 10.244.0.0/16
    kubernetesVersion: 1.11.0
 
4. kubeadm init --config=config.yaml --ignore-preflight-errors=all
5. додаємо в /etc/default/kubelet
KUBELET_EXTRA_ARGS=--max-pods=240
6. Для перестраховки systemctl daemon-reload 
7. service kubelet restart
8. Перевіряємо kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, cap: .status.capacity}' 

среда, 23 мая 2018 г.

kubernetes 1.10  обмеження 110 pods на node

Перевірити так
 kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, cap: .status.capacity}'

kube@kub01pp:/etc/systemd/system/kubelet.service.d$ kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, cap: .status.capacity}'
Щоб було як у у прикладі 240, а не 110
{
  "name": "kub01pp",
  "cap": {
    "cpu": "16",
    "ephemeral-storage": "38703652Ki",
    "hugepages-1Gi": "0",
    "hugepages-2Mi": "0",
    "memory": "65963632Ki",
    "pods": "240"
  }
}
{
  "name": "kub02pp",
  "cap": {
    "cpu": "16",
    "ephemeral-storage": "38703652Ki",
    "hugepages-1Gi": "0",
    "hugepages-2Mi": "0",
    "memory": "65963572Ki",
    "pods": "240"
  }
}
{
  "name": "kub03pp",
  "cap": {
    "cpu": "16",
    "ephemeral-storage": "0",
    "hugepages-1Gi": "0",
    "hugepages-2Mi": "0",
    "memory": "65963632Ki",
    "pods": "240"
  }
}

cd /etc/systemd/system/kubelet.service.d/
у цьому файлі додати Environment="KUBELET_EXTRA_ARGS=--max-pods=240" 10-kubeadm.conf
потім systemctl daemon-reload
service kubelet restart

Оновлення kubernetes з custom controller (with CEPH RBD)

оновлення kubernetes
1) apt-get update&&apt-get upgrade
2) оновлюємо controller
в файлі /home/kube/docker/Dockerfile вписуємо потрібну версію
3)  робимо імідж
docker build -t "my-kube-controller-manager:v1.10.3" docker/
4) перевіряємо
docker images | grep my-kube-controller-manager
5) перевіряємо image чи в ньому є rbd binary
docker run my-kube-controller-manager:v1.10.3 whereis rbd
6) в файлі  /etc/kubernetes/manifests/kube-controller-manager.yaml
image: my-kube-controller-manager:v1.10.3 (замінюємо на наше ім'я та
перевіряємо imagePullPolicy: IfNotPresent )

7) під користувачем kube
kubectl -n kube-system describe pods | grep kube-controller
8)  потім звичайно
kubeadm upgrade plan
а потім
kubeadm upgrade apply <версія> 
9) перевіряємо
docker images | grep my-kube-controller-manager 
 якщо потрібно пункт 6 знову

четверг, 18 января 2018 г.

Aliyun alicloud oss (аналог s3) для простого хранения папок

Вместо pip install aswcli --upgrade
здесь нужно
Политика взять ossutil 
Например здесь 

Создать пользователя в ram.console.alicloud.com с ключами
Создать bucket (бакет/корзина)

Создать политику с желаемыми типами действий (во многих примерах почему-то нет  PutObject)

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ListObjects",
        "oss:GetObject",
        "oss:PutObject"
      ],
      "Resource": [
        "acs:oss:*:*:имя вашего бакета",
        "acs:oss:*:*:имя вашего бакета/*"
      ]
    }
  ]
}
Применить политику к пользователю

протестировать
1)./ossutl ls oss://имя вашего бакета
2) ./ossutil cp ваш_файл.txt oss://имя вашего бакета
использовать в скриптах :)




пятница, 27 октября 2017 г.

Удаленное восстановление пользовательской машины Ubuntu

Получил удаленную незагружающуюся машину под Ubuntu, удалось найти обычную установочную (инсталяционную) usb flash.
Загрузились в режиме пробовать ubuntu
По viber передавал команды
apt install openssh-server

sudo bash

passwd ubuntu


Когда зашел удаленно
сделал
for i in /sys /proc /run /dev /dev/pts; \
do sudo mount --bind "$i" "/mnt$i"; done

sudo chroot /mnt

 Так как в графическом режиме локальный диск смонтирован, то вместо /mnt правильная папка обычно где нить в /media/имя пользователя/какие то цифры, и так зашел, то скорее всего /etc/resolv.conf копировать не нужно.

Ну а дальше, от исходной проблемы зависит ...

суббота, 21 октября 2017 г.

Planmeca Romexis Viewer ubuntu

Получил снимки сделанные в лаборатории.
На диске записан viewer для macos и windows.
Просмотрщики под android показывали только одну ось, а мне нужен был сагитальный срез.
скопировал java viewer на винт и убрал из скрипта запуска параметры для macos
-Xdock:name='Planmeca Romexis Viewer' -Xdock:icon=../Xtras/Romexis.icns
и память прописал явно
вместо -Xmx$1m  -Xmx2048m

Итого скрипт выглядит так
# scriptPath="${0%/*}"
# export PATH=$PATH:${scriptPath}
# export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:${scriptPath}/dylib
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:./dylib

java -Xmx2048m -Dj3d.rend=ogl -classpath '*' romexis_client_viewer.ui.RxViewer  -new3d $2 $3 &

Для удобства проставил права chmod +x start.sh

вторник, 19 сентября 2017 г.

audit apache certificates debian

Написал небольшой скрипт для проверки сертификатов в конфигах apache для debian

Проверяет:
владельцев файлов ключей и сертификатов
имена файлов
проверяет expiration date
удобно вывод перенаправить в csv

вот на github