Anonymous
а есть чатик разработчиков kubernetes в тележке?
A
Читал это, но насколько правильно серифы от етсд туда запихивать, и потом как их считать, тк в values хелма нет такой настройки. Получается все передопачивать
A
в хелм чарте вроде есть
Победил, добавлением сертов от етсд в секрет Прометея
A
Надо посмотреть как это автоматизировать, а то вручную же не будешь добавлять...
A
Причем key доступен только от рута, так что так просто в скрипт не запихать, не секюрно
A
Как лучше это сделать подскажите, знающие люди
weldmeup
Как бороться с такой штукой кроме как systemctl restart kubelet
weldmeup
The connection to the server 192 . 168 . 122 . 180 : 6443 was refused - did you specify the right host or port?
weldmeup
сервис active(running)
A
Как лучше это сделать подскажите, знающие люди
Самый лучший способ конечно вообще сделать что бы без https, но не знаю возможно ли такое...
A
The connection to the server 192 . 168 . 122 . 180 : 6443 was refused - did you specify the right host or port?
Нужно пользоваться kubectl от непривелигированного пользователя
weldmeup
Нужно пользоваться kubectl от непривелигированного пользователя
нужно в принципе или чтобы такого не случалось ?
Anonymous
почему кубер не убил эти поды?
Rainbow
почему кубер не убил эти поды?
для истории, иначе не понять что там случилось
Rainbow
docker ps -a тоже самое покажет
Andrey
почему кубер не убил эти поды?
А как в дашборд вывести параметры cpu и memory?
Etki
А как в дашборд вывести параметры cpu и memory?
скорее всего нет компонента, отвечающего за сбор метрик, раньше это был heapster, а сейчас видимо все еще тоже heapster
weldmeup
разбираться почему оно упало?
1 watcher.go:208] watch chan error: rpc error: code = Canceled desc = stream terminated by RST_STREAM with error code: CANCEL W1208 14:02:54.062179 1 reflector.go:270] storage/cacher.go:/volumeattachments: watch of *storage.VolumeAttachment ended with: Internal error occurred: rpc error: code = Canceled desc = stream terminated by RST_STREAM with error code: CANCEL W1208 14:02:54.062211 1 reflector.go:270] storage/cacher.go:/mutatingwebhookconfigurations: watch of *admissionregistration.MutatingWebhookConfiguration ended with: Internal error occurred: rpc error: code = Canceled desc = stream terminated by RST_STREAM with error code: CANCEL
weldmeup
сначала сыпет в лог потом падает
weldmeup
после того как другой kube-controller-manager накатил
weldmeup
и растут рестарты
weldmeup
NAME READY STATUS RESTARTS AGE coredns-86c58d9df4-jtnpr 1/1 Running 0 3h31m coredns-86c58d9df4-mlqb8 1/1 Running 0 3h31m etcd-master 1/1 Running 63 3h31m kube-apiserver-master 1/1 Running 55 3h31m kube-controller-manager-master 1/1 Running 20 167m kube-flannel-ds-amd64-g58bq 1/1 Running 0 3h29m kube-proxy-hz5qp 1/1 Running 0 3h31m kube-scheduler-master 1/1 Running 25 3h31m
weldmeup
как правильно дебажить кубер ?
weldmeup
kubectl logs kube-apiserver-master -n kube-system ?
weldmeup
поконтейнерно ?
A
поконтейнерно ?
Да, поподово только
weldmeup
ладно попробую всё вернуть обратно без ceph - такие ошибки похоже что-то очень частное
A
не знаю, оно само))
Уже сейчас уже такой фичи нет в новых версиях, тк хипстер деприкейтед, вместо него сервер-метрик, но с ним графиков нет
Никита
спасибо что предупредили, не буду обновляться значит))
Лучше собраться и дописать необходимый функционал. Ишья висит уже с полгода со статусом критикал, уж скоро третий человек возьмётся делать, а воз и ныне там.
Никита
Andrey
Ребят, а к кубере можно просто создать dns A запись на внутреннем DNS?
Valeriy
Ребят, а к кубере можно просто создать dns A запись на внутреннем DNS?
Когда сервис объявляешь - считай запись во внутреннем DNS создаешь.
Andrey
Когда сервис объявляешь - считай запись во внутреннем DNS создаешь.
Не, мне надо домен в другой зоне, нежели внутренняя в кластере. Но я вроде нашел решение https://stackoverflow.com/questions/40589364/create-specific-a-record-entry-to-kubernetes-local-dns
Andrey
Теперь другой вопрос. Можно ли сделать чтобы ingress слушал и по 80 порту без SSL и по 443 с SSL ?
Stanislav
Как минимум, nginx-ingress делает это по-умолчанию
Stanislav
Или речь не о "слушать и http и https", а о "не редиректить http на https"?
Andrey
Как минимум, nginx-ingress делает это по-умолчанию
ingress-controller, слушает да. Но когда я создаю KindIngress, он попадает в конфиг ingress-controller на порт 80
Stanislav
Тогда в аннотации ставим nginx.ingress.kubernetes.io/ssl-redirect: "false"
Stanislav
А указываешь, какой сертификат использовать?
Andrey
не, мне надо другое. Мне надо чтобы мой ингресс слушал и отвечал и по 80 и по 443
Andrey
А указываешь, какой сертификат использовать?
я пока разбираюсь как вообще контроллируется на каком порту будет висеть мой ингресс
Stanislav
Он слушает по-умолчанию оба порта.
Stanislav
А вот поведение отдельного сервиса определяется уже другими настройками
Andrey
Он слушает по-умолчанию оба порта.
ну нет же. Это контроллер слушает оба. А ингрессы которые я создаю, почему то попадают в ингресс контроллер на 80 порт
Stanislav
А секция tls в описании ингресса есть?
Stanislav
что-то типа: spec: tls: - hosts: - www.kd.domain.ru secretName: wildcard-kd-na-tls
Andrey
Ааааа, все. Разобрался
Andrey
У меня все ingress создавались как: "http": { "paths": [ { и мне сейчас просто нужно их продублировать как: "tls": { "paths": [ {
Stanislav
Я не дублирую
Stanislav
Пути - в http и рядом секция tls без путей
Stanislav
Чисто для привязки сертификата
Stanislav
Вот кусок реального конфига: apiVersion: extensions/v1beta1 kind: Ingress metadata: name: rest-api annotations: nginx.ingress.kubernetes.io/ssl-redirect: "true" kubernetes.io/ingress.class: "nginx" spec: tls: - hosts: - rest-api.kd.domain.ru secretName: wildcard-kd-na-tls rules: - host: rest-api.kd.domain.ru http: paths: - path: /mail backend: serviceName: mail-api servicePort: 9090 - path: /images backend: serviceName: images-api servicePort: 9090 - path: / backend: serviceName: website servicePort: 80
Andrey
А секция tls без sercretName не работает?
Stanislav
хз, я сразу сертфикат привязал - на некоторых сервисах ещё и авторизация сертификатом есть
Stanislav
wildcard-kd-na-tls kubernetes.io/tls 2 131d
Andrey
У меня вообще стремно как-то реагирует. Я беру конфиг, просто меняю http на tls, апплаю. Потом смотрю че заапплаилось, а там вообще ни одного path нету и всей секции tls по сути нету
Stanislav
# kubectl describe secret/wildcard-kd-na-tls Name: wildcard-kd-na-tls Namespace: default Labels: <none> Annotations: <none> Type: kubernetes.io/tls Data ==== tls.crt: 6908 bytes tls.key: 3272 bytes
Stanislav
То есть, имена файлов - именно такие, иначе не работает
Andrey
ок, понял. Спасибо! Сейчас попробую selfsigned ему сунуть
Stanislav
Можешь попробовать сразу разобраться, как с его CA работать. У меня CA свой, так что я не разбирался
Andrey
У меня на самом деле стремный кейс. Есть фронт, который использует server side rendering. Т.е. первый зарос от клиента он рендерит сам в html, а потом просто идет общение клиента с апишкой. Так вот когда он рендерит, во все апишки он бегает по сути с сервера "через наружу", от чего у меня сильно горит. В данном конфиге можно выкинуть как минимум 1 nginx из цепочки. Вот теперь думаю как это красиво обойти. Пока решил внутри кластера переопределить IP апишки с внешнего на ингрессовский. Но тут наткнулся на то что у меня SSL offloading делается на внешнем nginx, не на ingress. А если я зарулю все запросы изнутри на ingress, то на 443 порту получаю болт. Вот думаю сейчас сделать так чтобы все ingress слушали и 80 без ssl для внешних запросов с балансера и 443 порт для запросов изнутри кластера для тех доменов, для которых я переопределил IP.
Stanislav
самоподписаный сертификат тут чреват, приложения могут ругаться
Stanislav
Либо таки свой CA, чей корневой сертификат разбросан по всем местам, откуда можно попасть на https, где будет сгенерён сертификат, либо какой-нибудь другой сертификат, хотя бы от lets encrypt
Stanislav
Можно вообще взять сертификат от фронта, если имя хоста такое же
Andrey
Ну у меня есть внутренний СА. Я могу с него выписать серт. Но ведь внутрь контейнеров все равно придется прокидывать его, да?
Stanislav
да
Stanislav
внутрь тех, кто ходит по https