Timur
а зачем он?
Когда-нибудь ты захочешь в кластере из сотен машин поменять пару строчек в парочке systemd юнитов
Denis
:)))
Denis
Боль
Denis
Есть дружественная группа @puppet_ru
Anonymous
странно что нет дружественной группы @ansible_ru : по-моему дискриминация по признаку дружественности
Alexander
жаль, что saltstack_ru
Alexander
нет
Alexander
всего лишь нужно положить его на Ceph, как я понимаю
Alexander
ну и тогда он будет общим для всего кластера
Alexander
и, разумеется, Ceph должен будет подключаться к серверу раньше, чем будут стартаповать эти Rkt контейнеры
Anonymous
во, а я по сабжу еще спрошу - не факт что ответят, но может кто увидит вопросы и захочет на какой-нибудь из них нааписать ответ, будет клево :) в общем, пока играюсь - запустил пару кластеров на локальных машинах и в GKE, щас хочу стажинг переводить и смотреть как себя ведет, наверное документацию плохо пролистал но не нашел ответа или нашел только размытые на такие вопросы: 1) какие полезные юзкейсы у job 2) чем ingress лучше кастомного nginx 3) чем принципиально petset отличается от pod 4) как можно заюзать component statuses в своей инфраструктуре и полезно ли это вообще 5) что такое events и с чем их едят 6) по каким правилам будет действовать несколько limitrages/resourcequotas в одном неймспейсе 7) возможноые юзкейсы serviceaccounts в продакшн-ркди кластерах
Anonymous
Ну скажите ченить ... )
Timur
я тоже жду :)
Timur
все ждут ))
Etki
> какие полезные юзкейсы у job одноразовые калькуляции, например, у тебя кто-то в базе данных напортачил и тебе надо запустить скрипт, меняющий 0 на null > чем ingress лучше кастомного nginx главным образом переносом ответственности, но (насколько понял) он еще в альфе и это скорее проверка гипотезы чем то, чем уже стоит пользоваться > чем принципиально petset отличается от pod от replication controller/set, скорее. pet set может минимально конфигурировать окружение для себя и фиксирует названия подов
Etki
вот еще вопрос из министерства дурацких вопросов: я же не могу сделать port mapping внутри пода (сделать так, чтобы порт X пода соответствовал порту Y контейнера, -p aa:bb при обычном workflow докера), только открыть порт пода, соответствующий порту контейнера?
Denis
Не пойму, что за проблема может быть - kube-dns висит в состоянии: kube-dns-v18-wz37g 2/3 CrashLoopBackOff 798 13d При это describe говорит примерно следующее: ... Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 1d 2m 760 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Normal Started (events with common reason combined) 1d 2m 769 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Normal Pulled Container image "gcr.io/google_containers/kubedns-amd64:1.6" already present on machine 1d 2m 760 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Normal Created (events with common reason combined) 1d 1m 760 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Normal Killing (events with common reason combined) 1d 1m 3076 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Warning Unhealthy Readiness probe failed: Get http://yy.yy.yy.yy:8081/readiness: dial tcp yy.yy.yy.yy:8081: connection refused 1d 1m 769 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Warning Unhealthy Liveness probe failed: HTTP probe failed with statuscode: 503 1d 5s 9393 {kubelet xx.xx.xx.xx} spec.containers{kubedns} Warning BackOff Back-off restarting failed docker container 1d 5s 9371 {kubelet xx.xx.xx.xx} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "kubedns" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=kubedns pod=kube-dns-v18-wz37g_kube-system(552d0562-5fe1-11e6-a399-44a842348b74)"
Etki
посмотри в статусе последнее состояние, возможно, OOM почему-то случается
Etki
у меня так в свое время дэшборд упал
Maxim
kubectl logs --namespace=kube-system kube-dns-v18-wz37g -c kubedns показывает что-нибудь?
Denis
5 сек
Denis
Error from server: a container name must be specified for pod kube-dns-v18-wz37g, choose one of: [kubedns dnsmasq healthz]
Denis
ого
Denis
много всякого
Maxim
гистуй
Denis
E0825 14:12:50.249289 1 reflector.go:216] pkg/dns/dns.go:155: Failed to list *api.Service: Get https://zz.zz.zz.zz:443/api/v1/services?resourceVersion=0: x509: certificate signed by unknown authority
Denis
Я думаю вот это самое важное)
Maxim
дада
Denis
так сказать определяющее
Maxim
днс до апишечки дойти не может
Denis
факоф-фактор
Denis
атата
Maxim
а значит, у тебя неверно формируется дефолт-сикрет
Maxim
нука покажика kubectl get secrets --namespace=kube-system
Maxim
и пропал
Denis
Я здесь
Denis
Я не пропал
Anonymous
и пропал
Походу днс отвалился )
Maxim
ггг
Denis
))
Denis
Но вроде всё ок там
Maxim
что ок?
Denis
# kubectl get secrets —namespace=kube-system NAME TYPE DATA AGE basic-auth Opaque 1 24d default-token-ngexf kubernetes.io/service-account-token 3 33d frontend-kube-tls kubernetes.io/tls 2 24d
Maxim
в дефолт-токене всего один элемент в Data?
Denis
Да :) # kubectl describe secret default-token-ngexf --namespace=kube-system Name: default-token-ngexf Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=default,kubernetes.io/service-account.uid=065d205b-5027-11e6-b525-44a842348b74 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1099 bytes namespace: 11 bytes token: eyJhbGciOiJSUzI1NiIsInR...
Denis
Надо туда ключ добавить ca.pem?
Maxim
нене, вот же он
Maxim
ca.crt: 1099 bytes
Maxim
а это точно тот самый сертификат?
Maxim
нука вынь его оттуда и разюючь
Maxim
kubectl get secret default-token-ngexf --namespace=kube-system -o yaml --export
Maxim
там будет что-то типа: apiVersion: v1 data: ca.crt: <многабукаф> ...
Maxim
вот эти многабукаф копипасти в какой-нить файл
Denis
Так
Denis
А зачем ?
Maxim
и делай cat /куда/ты/там/накопипастил | base64 -D
Maxim
в итоге будет снова многабукаф, но уже другого вида
Denis
И что с этими буквами сделать?
Maxim
нужно будет убедиться, что эти буквы - буква в букву - совпадают с твоим публичным ключем от CA
Denis
Вот это поворот
Maxim
?
Maxim
не совпадают?
Denis
6 сек
Denis
в итоге будет снова многабукаф, но уже другого вида
Да, на выходе получился сертификат)
Maxim
совпадает с имеющимся?
Denis
И он идентичен с тем, что на kube-apiserver (/etc/kubernetes/ssl/ca.pem)
Maxim
ага
Maxim
ну тогда делай как я
Denis
это как?)
Maxim
https://gist.github.com/Bregor/dbb337e9a3e7b7ba6274d02e78a305bf
Maxim
вот так
Maxim
обрати внимание на volumes
Maxim
добавил kubeconfig.yaml в гист
Maxim
https://gist.github.com/Bregor/dbb337e9a3e7b7ba6274d02e78a305bf#file-kubeconfig-yaml
Denis
Ого, спасибо, не слишком ли hackeable? :)
Maxim
тебе шашечки или ехать?
Denis
Это из за чего такая проблема?
Denis
Мне ехать и быстро ))
Maxim
ну что за вопросы тогда