Anton
$ mkdir /mnt/disks
$ for vol in vol1 vol2 vol3; do
mkdir /mnt/disks/$vol
mount -t tmpfs $vol /mnt/disks/$vol
done
получается что надо все удалить, примонтировать диски в /mnt/disks/vol1
Andrey
А никто не пользовался pks от вмваре и их кубером? В чем плюсы?
Pavel
Привет, друзья! Я успешно забрал кластер у внезапно "пропавшего" коллеги. У меня есть парочка вопросов с Gitlab CI:
Я завел успешно gitlab-runner в k8s.
Когда запускаю пайплайн у меня на этапе деплоя не работает helm:
```$ helm version
Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
Error: cannot connect to Tiller```Подскажите пожалуйста, верно ли я понимаю: у меня gitlab runner в k8s, и когда запускается деплой, то раннер стартует другой контейнер, образ которого указан в image стейжа?
Или я пошел не тем путем..?
Валентин
как там в розовом мире?
А в чем проблема? Сделать пакет в aur делов на 1 минуту. Зато потом cd сам будет пересобирать и обновлять в репозитории пакет
bebebe
Anton
https://toster.ru/q/569353
Теперь диски находтся и создаются.
Но Elasticsearch все равно говорит
no persistent volumes available for this claim and no storage class is set
Все данные на тостере обновил
Vadim
Rainbow
Oleg
Всем привет. Тут есть отчаянные кто в кластер добавлял виндовые ноды ?
Sergey
Oleg
Есть сервисы под венду написанные которые думаю в кластер запихнуть
Sergey
дотнет уже пихают в кубер
Oleg
Дотнет да, никто не собирается его выпиливать, поэтому и думаю про агент виндовый
Alexander
дуднет и под никсами тоже работает. Не всякий, конечно.
Stanislav
mono давно существует
Sergey
Oleg
Хм
Etki
проще переезжать по частям все-таки, сначала кубер, потом на линупс
Sergey
в каком сервисе\языке загвоздка? почему нужна форточка?
Oleg
Не знал что можно на лиуксе запустить дотнет
Sergey
на хабре полно инфы
Oleg
Там какие то специфичные утилиты для этого?
Oleg
Mono?
Etki
бггг на хабре
Etki
да, mono project
Etki
там большая часть net framework портирована, но каких-то вещей нет
Oleg
Хм окей, почитаю
Stanislav
нет всякого winapi
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
называется dotnet core
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
работает просто заебись. есть еще проблемы с некоторыми тулами, но уже можно в продакшон
Oleg
Спасибо за инфу
Alexander
нет всякого winapi
это какие-то очень специфические серверные задачи требуют винапи. С ходу могу только что-нибудь про сертифицированную отечествуенную криптографию придумать.
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
тем более всегда можно извернуться и сделать отдельный сервис с вендою чисто лишь для одной задачи
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
поднять впсину на авс, и нехай оно там дергает че ему нравится из апи
Peter
незачем, поэтому curl && chmod +x
Когда поднимается локальный кластер выставляется symlink
/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
Когда останавливается линк зачем-то убивается, но появляется другой
/Users/peter/Library/Group Containers/group.com.docker/bin/kubectl
А по этому пути даже bin не существует.
Просто руками выставил первый линк и мои волосы стали снова шелковистыми.
Anton
В примерах документации что?
Что интересно диск с системой тоже замонтировался
mount |grep /dev/vda1
/dev/vda1 on / type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /var/lib/kubelet/pods/89d44bff-cb9e-11e8-b52a-fa163e47d93f/volume-subpaths/config/elasticsearch/0 type ext4 (rw,relatime,data=ordered)
Anton
Подскажите что не правильно сделал. все описал тут с логами
https://toster.ru/q/569353
Anton
Anton
прочитайте документацию пожалуйста. там совсем не много
Anton
отладить неплохо было бы, запросить (get) pv, pvc, сделать для них describe. сравнить что там, подумать
Anton
сделал "запросить (get) pv, pvc, сделать для них describe."
наверное в тостер никто не заглядывает.
придется логи сюда постить
Anton
Примонтирован 50ГБ диск в эту папку
mount /dev/vdb1 /mnt/disks/vdb1
Проверяем
mount | grep mnt
/dev/vdb1 on /mnt/disks/vdb1 type xfs (rw,relatime,attr2,inode64,noquota)
Anton
Проверяем PV
kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
local-pv-5bec36e4 49Gi RWO Delete Available local-storage 2m15s
local-pv-aa880f42 49Gi RWO Delete Available local-storage 2m15s
local-pv-b6ffa66b 49Gi RWO Delete Available local-storage 2m15s
Anton
Запускаем установку elasticsearch
helm install incubator/elasticsearch --name my-release --set data.storageClass=local-storage,data.storage=10Gi
Anton
Смотрим PVC
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-my-release-elasticsearch-data-0 Pending 3m15s
data-my-release-elasticsearch-master-0 Pending 3m15s
Anton
Смотрим describe PVC
kubectl describe pvc data-my-release-elasticsearch-data-0
Name: data-my-release-elasticsearch-data-0
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=elasticsearch
component=data
release=my-release
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2s (x4 over 31s) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
Anton
Смотрим df | grep disks у пода local-volume-provisioner-9wmqm
kubectl --namespace kube-system exec local-volume-provisioner-9wmqm -- df | grep disks
/dev/vda1 9774628 6355168 2961036 69% /mnt/disks
/dev/vdb1 52402180 32944 52369236 1% /mnt/disks/vdb1
Anton
мне кажется написано все в describe pvc
Anton
Что интересно диск с системой тоже замонтировался
mount |grep /dev/vda1
/dev/vda1 on / type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /var/lib/kubelet/pods/89d44bff-cb9e-11e8-b52a-fa163e47d93f/volume-subpaths/config/elasticsearch/0 type ext4 (rw,relatime,data=ordered)
Artem
Anton
no persistent volumes available я так думаю потом учто pvc примонтировался к /dev/vda1 - а это системный диск
Vadim
PV есть, а у PVC StorageClass не указан
Vadim
очередная победа хелма похоже
Anonymous
Не мало ли 10?
Rainbow
Anton
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: 2018-10-09T08:37:21Z
finalizers:
- kubernetes.io/pvc-protection
labels:
app: elasticsearch
component: data
release: my-release
name: data-my-release-elasticsearch-data-0
namespace: default
resourceVersion: "1231"
selfLink: /api/v1/namespaces/default/persistentvolumeclaims/data-my-release-elasticsearch-data-0
uid: 89e00b45-cb9e-11e8-b52a-fa163e47d93f
spec:
accessModes:
- ReadWriteOnce
dataSource: null
resources:
requests:
storage: 30Gi
storageClassName: local-storage
status:
phase: Pending
~
Anton
добавил storageClassName: local-storage
Anton
error: persistentvolumeclaims "data-my-release-elasticsearch-data-0" is invalid
Anton
похоже что то с elasticsearch
helm install stable/prometheus --name stable-prometheus --set server.persistentVolume.storageClass=local-storage --set alertmanager.persistentVolume.storageClass=local-storage
kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
stable-prometheus-alertmanager Bound local-pv-aa880f42 49Gi RWO local-storage 9s
stable-prometheus-server Bound local-pv-5bec36e4 49Gi RWO local-storage 9s
Denis
Товарищи, подскажите как быть если деплой Helm зафейлился по некоторым причинам, и состояние релиза FAILED. После этого Helm может затупить из за этого и выдавать ошибки, по типу релиза не сущевствует. Мне помогало удаление релиза при помощи helm del, но на продакшене не всегда есть такая возможность. Как лучше поступать в подобных ситуациях?
Timur
bebebe
Timur
угу
Anton
Никого не смущает
Create cluster with Storage class ssd on Kubernetes 1.5+
$ helm install incubator/elasticsearch --name my-release --set data.storageClass=ssd,data.storage=100Gi
в официальном readme https://github.com/helm/charts/tree/master/incubator/elasticsearch
в общем отправил им fix pull request
bebebe
Artem
в charts/stable еще очень много дичи
Alexey
Привет. Идеологический вопрос. Представим комплексное окружение, микросервисы, вот это все. Каждое окружение - отдельный namespace, в который весь стек деплоится из helmfile. Как быть с шареными настройками/секретами, типа database credentials или домена? Деплоить общие настройки окружения в виде отдельного чарта или дублировать в configmap/secret'ы каждого сервиса? Кто как делает?
Rainbow
дублировать
Rainbow
иначе чистить через пол года... придется.
Alexey
Ну чистить вроде не сложно, пересоздал namespace - и все почистилось 🙂
Rainbow
если общие секреты?
Rainbow
помнить, что правка этого секрета может кому-то что-то сломать и тп.
Rainbow
гоферы советуют с собой таскать vendor. Это прям вынос мозга был, а на деле даже удобно оказалось. Тут так же.
Alexey
Ну я больше про всякие тестовые окружения. Два сервиса, пушут разные команды, но оба сервиса ходят в одну базу, например. Деплоить надо раздельно.