Anonymous
а есть чатик разработчиков kubernetes в тележке?
A
Читал это, но насколько правильно серифы от етсд туда запихивать, и потом как их считать, тк в values хелма нет такой настройки. Получается все передопачивать
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?
Andrey
weldmeup
сервис active(running)
A
weldmeup
Anonymous
почему кубер не убил эти поды?
Rainbow
docker ps -a
тоже самое покажет
A
Anonymous
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
поконтейнерно ?
weldmeup
ладно попробую всё вернуть обратно без ceph - такие ошибки похоже что-то очень частное
G72K
A
не знаю, оно само))
Уже сейчас уже такой фичи нет в новых версиях, тк хипстер деприкейтед, вместо него сервер-метрик, но с ним графиков нет
Anonymous
A
Anonymous
Anonymous
A
Andrey
Ребят, а к кубере можно просто создать dns A запись на внутреннем DNS?
Valeriy
Andrey
Теперь другой вопрос. Можно ли сделать чтобы ingress слушал и по 80 порту без SSL и по 443 с SSL ?
Stanislav
Как минимум, nginx-ingress делает это по-умолчанию
Stanislav
Или речь не о "слушать и http и https", а о "не редиректить http на https"?
Stanislav
Тогда в аннотации ставим nginx.ingress.kubernetes.io/ssl-redirect: "false"
Stanislav
А указываешь, какой сертификат использовать?
Andrey
не, мне надо другое. Мне надо чтобы мой ингресс слушал и отвечал и по 80 и по 443
Stanislav
Он слушает по-умолчанию оба порта.
Никита
Stanislav
А вот поведение отдельного сервиса определяется уже другими настройками
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
самоподписаный сертификат тут чреват, приложения могут ругаться
Andrey
Stanislav
Либо таки свой CA, чей корневой сертификат разбросан по всем местам, откуда можно попасть на https, где будет сгенерён сертификат, либо какой-нибудь другой сертификат, хотя бы от lets encrypt
Stanislav
Можно вообще взять сертификат от фронта, если имя хоста такое же
Andrey
Andrey
Ну у меня есть внутренний СА. Я могу с него выписать серт. Но ведь внутрь контейнеров все равно придется прокидывать его, да?
Stanislav
да
Stanislav
внутрь тех, кто ходит по https