Size: a a a

Kubernetes — русскоговорящее сообщество

2020 March 13

AK

Andrey Klimentyev in Kubernetes — русскоговорящее сообщество
crash
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Семён
crush based log rotation
trust based health checks
faith based security policies
Multi-cluster downtime via single point of failure
источник

L

Lucky SB in Kubernetes — русскоговорящее сообщество
уффф. секунд 10 соображал при чем тут crush map И ротация логов. и вообще почему в чатике куба про цеф говорят
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Dmitriy Onishko
Проблема была в nodelocaldns-config.yml разобрался.
подробней плиз. Интересно жеж
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Sergey
Коллеги подскажите плиз как готовите пхп приложения в кубы? Под с двумя контейнерами nginx + fpm с исходниками и шаренный том?
а я просто собираю два образа, один для nginx другой для php.
Все что php копирую в php, всю статику в nginx.
Но там нюансы могут быть, от приложения зависит.

Что-то делать во время старта пода, мне не очень нравится подход.
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
подробней плиз. Интересно жеж
Попробую :) сборка kubespray: nodelocaldns это тот же CoreDNS которому монтируется конфиг из конфигмапа c forward на сервайс основного CoreDNS
там мы имеем вот такую запись:
Corefile: |
   cluster.local:53 {
       errors
       cache {
           success 9984 30
           denial 9984 5
       }
       reload
       loop
       bind 169.254.25.10
       forward . 10.233.0.3 {
           force_tcp
       }
       prometheus :9253
       health 169.254.25.10:9254
   }

cluster.local подставляется из ansible vars
у меня есть зона к примеру test.local на которой висят другие инстансы
поэтому можно создать еще один блок с test.local:53 {
либо для ленивых поправить cluster.local:53 на local:53 так все что заканчивается на local улетает на основной CoreDNS
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
Dmitriy Onishko
Попробую :) сборка kubespray: nodelocaldns это тот же CoreDNS которому монтируется конфиг из конфигмапа c forward на сервайс основного CoreDNS
там мы имеем вот такую запись:
Corefile: |
   cluster.local:53 {
       errors
       cache {
           success 9984 30
           denial 9984 5
       }
       reload
       loop
       bind 169.254.25.10
       forward . 10.233.0.3 {
           force_tcp
       }
       prometheus :9253
       health 169.254.25.10:9254
   }

cluster.local подставляется из ansible vars
у меня есть зона к примеру test.local на которой висят другие инстансы
поэтому можно создать еще один блок с test.local:53 {
либо для ленивых поправить cluster.local:53 на local:53 так все что заканчивается на local улетает на основной CoreDNS
Далее в основном CoreDNS делаем вот такую бороду
Corefile: |
   .:53 {
       errors
       health
       ready
       kubernetes cluster.local in-addr.arpa ip6.arpa {
         pods insecure
         upstream /etc/resolv.conf
         fallthrough in-addr.arpa ip6.arpa
       }
       prometheus :9153
       forward . /etc/resolv.conf {
         prefer_udp
       }
       cache 30
       loop
       reload
       loadbalance
   }
   test.local {
     errors
     cache 30
     reload 10s
     file /etc/coredns/external.db
   }
 external.db: |
   @   IN  SOA   test.local. admin.test.local.  (
                   2020031350  ; Serial
                   1800        ; Refresh
                   900         ; Retry
                   604800      ; Expire
                   86400 )     ; Negative Cache TTL
       IN  NS    ns1

   db1.test.local.         IN  A   172.17.0.5
   db2.test.local.         IN  A   172.17.0.6
   cc-node1.test.local.    IN  A   172.17.0.1
   cc-node2.test.local.    IN  A   172.17.0.4
   cc-node3.test.local.    IN  A   172.17.0.8
   cc-node4.test.local.    IN  A   172.17.0.13
   live.test.local.        IN  A   172.17.0.2
   dev.test.local.         IN  A   172.17.0.3

и в деплойменте
в volume монтируем external.db
volumes:
       - name: config-volume
         configMap:
           name: coredns
           items:
           - key: Corefile
             path: Corefile
           - key: external.db
             path: external.db
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
По сути получаем один единственный DNS сервер для всего зоопарка. Без всяких bind nsd и подобных.
источник

VY

Victor Yagofarov (Na... in Kubernetes — русскоговорящее сообщество
>и в деплойменте
в volume монтируем external.db

и слетает оно вроде при следующем прогоне kubespray, если не править там файлы деплоймента
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
Victor Yagofarov (Nas_tradamus)
>и в деплойменте
в volume монтируем external.db

и слетает оно вроде при следующем прогоне kubespray, если не править там файлы деплоймента
ну для себя я уже ansible модифицировал, если меня пустят сделать Merge Requests то вопрос решится для всех
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
темболее там
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
items: задумка была монтировать не только Corefile
источник

VY

Victor Yagofarov (Na... in Kubernetes — русскоговорящее сообщество
я nodelocaldns вынес в отдельный helm chart у себя
источник

DO

Dmitriy Onishko in Kubernetes — русскоговорящее сообщество
Victor Yagofarov (Nas_tradamus)
я nodelocaldns вынес в отдельный helm chart у себя
тоже думал об этом, но решил всю цепочку пересыпать
А никто не вкурсе в кубер можно монтирвать файлы как configmap только из consul?
источник

VY

Victor Yagofarov (Na... in Kubernetes — русскоговорящее сообщество
Dmitriy Onishko
тоже думал об этом, но решил всю цепочку пересыпать
А никто не вкурсе в кубер можно монтирвать файлы как configmap только из consul?
источник

DK

Dmitry Kudlatsky in Kubernetes — русскоговорящее сообщество
Добрый день, кто-нибудь мб юзает\щупал traefik v2.xx+?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
@nv30over просил сообщить, если найду даш, который понравится.

Поробовал openshift-console (https://github.com/openshift/console). Довольно неплох.
quay.io/openshift/origin-console:latest не завелся (4.6.0 и v3.11.0 нормально работали)
Интерфейс понравился больше чем у octant, k8dash.

Удобен в настройке, так как понимает что запущен внутри куба, и идет по дефолтным путям за секретами. Ему достаточно указать нужный serviceAccountName в поде и разрешить automountServiceAccountToken(он как правило разрешен по дефолту) и все. Тот же octant ищет kubeconfig, и ему нужен секрет именно в таком формате, с другой стороны octant предназначен для локального использования, а не для запуска в кластере.

С ограниченными правами работает по лучше чем k8dash, единственный нюанс, нужно догадаться перейти на /search/ns/нужный-ns. По умолчанию он тебя кидает на default ns, права на которые ты можешь не иметь. Также есть странность, что он некоторую инфу не может отобразить о кластере, даже с полными правами (cluster-admin): http://dl4.joxi.net/drive/2020/03/13/0030/2608/1985072/72/0fdf573211.jpg

Интерфейс выглядит так: http://dl4.joxi.net/drive/2020/03/13/0030/2608/1985072/72/6d53512a73.jpg

Всякие штуки для дебага в нем делать достаточно удобно. Как замена kubectl для прогеров думаю сойдет.
То что он из проекта openshift, и в кластере нативного куба наверное могут быть какие-то баги, но в целом все работает. Видно, что некоторые запросы возвращают 404 ошибку. Но вроде он умный и просто не показывает меню, для объектов, которые не смог вытащить из куба или на них нету прав. Например под ограниченной учеткой нет меню со списком нод.

На ранчер я конечно посмотрю, но пока openshift-console мой выбор
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
@nv30over просил сообщить, если найду даш, который понравится.

Поробовал openshift-console (https://github.com/openshift/console). Довольно неплох.
quay.io/openshift/origin-console:latest не завелся (4.6.0 и v3.11.0 нормально работали)
Интерфейс понравился больше чем у octant, k8dash.

Удобен в настройке, так как понимает что запущен внутри куба, и идет по дефолтным путям за секретами. Ему достаточно указать нужный serviceAccountName в поде и разрешить automountServiceAccountToken(он как правило разрешен по дефолту) и все. Тот же octant ищет kubeconfig, и ему нужен секрет именно в таком формате, с другой стороны octant предназначен для локального использования, а не для запуска в кластере.

С ограниченными правами работает по лучше чем k8dash, единственный нюанс, нужно догадаться перейти на /search/ns/нужный-ns. По умолчанию он тебя кидает на default ns, права на которые ты можешь не иметь. Также есть странность, что он некоторую инфу не может отобразить о кластере, даже с полными правами (cluster-admin): http://dl4.joxi.net/drive/2020/03/13/0030/2608/1985072/72/0fdf573211.jpg

Интерфейс выглядит так: http://dl4.joxi.net/drive/2020/03/13/0030/2608/1985072/72/6d53512a73.jpg

Всякие штуки для дебага в нем делать достаточно удобно. Как замена kubectl для прогеров думаю сойдет.
То что он из проекта openshift, и в кластере нативного куба наверное могут быть какие-то баги, но в целом все работает. Видно, что некоторые запросы возвращают 404 ошибку. Но вроде он умный и просто не показывает меню, для объектов, которые не смог вытащить из куба или на них нету прав. Например под ограниченной учеткой нет меню со списком нод.

На ранчер я конечно посмотрю, но пока openshift-console мой выбор
Вот тут не хватает ролевой модели. Чтобы каждый разраб видел в консоли то, на что прав хватает.
источник

TL

Timofey Larkin in Kubernetes — русскоговорящее сообщество
*в дэшборде
источник

AS

Alexey Shanko in Kubernetes — русскоговорящее сообщество
Dmitry Kudlatsky
Добрый день, кто-нибудь мб юзает\щупал traefik v2.xx+?
Да
источник