l1njan
G72K
Roman
Maksim
А что за мода на CoreOS пошла?)
Roman
l1njan
apply the ClusterRole and ClusterRoleBinding specs
не помогло, логи пода выводят ту же ошибку. centos 7, selinux off
кластер и нода - та же машина. разворачиваю так:
kubeadm reset; rm -rf /var/etcd
kubeadm —pod-network-cidr=192.168.0.0/16 init
kubectl apply -f https://docs.projectcalico.org/v2.6/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml
kubectl taint nodes —all node-role.kubernetes.io/master-
kubectl apply -f https://rawgit.com/kubernetes/ingress/master/examples/deployment/nginx/kubeadm/nginx-ingress-controller.yaml
подскажите, пожалуйста, где ошибся. мб в версиях?
Maksim
Maksim
Maksim
а уде потом по документации вычитаь что нужно калико для работы (какие права) и установить ровно их. (Излишние права в проде это плохой тон и потенциальная дыра)
l1njan
ух. я уже размечтался, что сейчас с полпинка k8s разверну для тестов. благодарю, постараюсь разобраться
Maksim
kubectl apply -f {{site.url}}/{{page.version}}/getting-started/kubernetes/installation/rbac.yaml
Maksim
В этом yamle описаны правила для калико
Maksim
почитай его, там скорее всего есть имя пользователя...
Maksim
и ещё как ты логинешь пользователей? ПО токенам?
l1njan
пока никак. я пытаюсь заставить nginx-ingress работать
Maksim
я не знаю как работает твоя тулза еплоя
Maksim
не..
Maksim
все что касается аписервера является пользователем
Maksim
в том числе и внутренние (kubelet controller и т.п.)
Maksim
Все пользователя получают данные от АПИ сервера в три этапа
Maksim
1. Аутентификация (Определения логина и группы)
Maksim
2. Авторизация (Определения Ролевой модели (над какими объектами, и что может данный пользователь (группа)
Maksim
3. "Модульный контроль" (А эта фича вообще доступна/Включена)
Maksim
Так получает доступ к данным АПИсервера все, без исключения
Maksim
Я бы выключил rbac авторизацю пока что
Maksim
у апи сервера есть ключик —authirization=rbac удали его
Maksim
*И тут Остапа Понесло
l1njan
эта трехэтапная модель - модель RBAC?
Maksim
RBAC этолько второй этап
Maksim
Это полноя подель контролля пользователей в АПИсервере
l1njan
Maksim
а вот не знаю) я этой тулзой не пользуюсь
l1njan
спасибо, попробую без RBAC)
Роман
Есть такая опция hostNetwork: true. Как-то можно указать сетевой интерфейс, через который будет ходить трафик?
Anton
он же сделает по сути тоже самое что и docker run -net host. тоесть процесс будет на хостовой сетевой порты открывать
Роман
Anton
я думаю на этом уровне докеру пофиг уже
Anton
в приложении может это можно сделать или в entrypoint, но хз как вы будете обрабатывать ситуацию когда под переедет на другой хост, где нужных сетевух не будет.
Anton
я только на днях первый кластер с kubespray задеплоил и не знаю как раньше было. и вижу что вообще нифига не знаю как calico устроен и как ноды взаимодействуют между собой. поэтому я вообще не понимаю о котором ip речь идет
G72K
Роман
G72K
G72K
это от прлиожения зависит, в общем и целом man 2 bind
Роман
Я хочу сеть пустить по внутренней сети через свитч. Оно сейчас у меня в проде так и работает.
Maksim
Denis
Подскажите пожалуйста, кто хорошо разбирается с limits/requests (Resource Quotas)
на пальцах, чем limits от requests отличается?
Роман
Роман
Там даже не vlan, а физическая сеть между серверами.
Artem
Maksim
Denis
те если не будет места (по реквестам) на сервере, он выкинет ошибку? или он все таки по лимитам выкинет ошибку?
не совсем ясен этот момент, несколько раз упирались в ошибку (insufficient cpu), но из доки не совсем ясно, это из-за лимитов или все таки реквестов 🙂
Artem
если ресурсов будет недостаточно на всех нодах, то под будет висеть в ожидании ресурсов
Artem
это может быть видно по kubectl describe
Anonymous
FYI https://groups.google.com/forum/#!topic/kubernetes-dev/QWIzhD3JhhE
Konstantin
В продолжение темы про requests и limits получается, что requests это чисто логическая вещь и не на что не влияет?
Алексей
В продолжение темы про requests и limits получается, что requests это чисто логическая вещь и не на что не влияет?
Простой пример. Есть одна нода с одним процессором.
Все поды запущены на ней. соответственно, вы не сможете запустить больше чем у вас есть CPU.
Конечно можно выделять по 1% и запустить 100 подов, но нужно учесть, что есть ещё запущеные поды системные.
У меня в google cloud выходило на базовой конфигурации с 1 процессором ~60% CPU занято под системные поды.
посмотреть текущее распределение на ноде можно
kubectl describe node-1
В конце есть очень наглядное представление о том сколько какой под запросил и какой лимит. И общее состояние по ноде.
Konstantin
Спасибо за комментарий. Где посмотреть и как установить это все понятно. Переформулирую вопрос, зачем указывать requests?
Konstantin
Logan
лимитами - нет. а вот ресурсами - не влезет
Logan
лимиты на 10 ЦПУ означают, что более 10 ЦПУ контейнеры гарантированно не получат
Konstantin
Т.е. получается лимит ограничивает только под, а реквест ограничает под внутри ноды?
Logan
нет
Logan
лимит ограничивает под сверху
Logan
а реквест гарантирует ресурсы снизу
Konstantin
Да, но при этом при лимит может быть оверселинг, а при реквесте нет. И когда добавляется под на ноду, реквест ресурсов по каким параметрам проиходит, по реквестам? лимитам?
Artem
а еще это необходимо, чтобы настроить горизонтальное масшабирование)
Logan
Logan
https://coreos.com/blog/kubernetes-1.8-announcement
по-моему - восхитительно
Anonymous
по памяти лучше всего делать request=limit чтобы не возникало ситуаций "кубер думает что места полно и шедулит под на эту ноду, а по факту там oom-killer лютует уже вовсю"
по процессору в принципе некритично, максимум что будет это сервисы будут тормозить что можно обнаружить кучей инструментов
если сделать requests=limits (для cpu и mem) то под получает более приоритетный статус и в случае переполнения памяти его казнят последним по сравнению с другими плебеями, но в 1.8 это делать необязательно так как там добавили отдельную рукоятку для выставления приоритетов
Anonymous
еще упомяну что, естественно, лимиты ставятся на контейнер и суммируются для всего пода, и на этом закончу краткое изложение официальной доки кубернетеса 🙂
Anonymous
а, еще из того что в доке нет: все контейнеры написаны на разных языках и разными людьми, и очень мало из них умеют ограничивать себя выделеной памятью (из-за докеровской архитектуры стандартными средствами в контейнере видна общая память а не та которая выделена докеру)
так что, кроме выставления лимитов, надо обязательно искать пимпочку для сервиса которая ограничивает жор памяти
например, для монгодб есдинственный вариант - подкрутить кеш wiredtiger в конфиге, для приложений написаных на java обязательно задание мемори хипа через флаги и тп
а раббитэмкью например корректно сам определеяет и ему норм
в общем, если этого не сделать то рано или поздно приложуха превысит mem limits и сам же докер ее пристрелит
𝚔𝚟𝚊𝚙𝚜
https://habrahabr.ru/company/flant/blog/339120/
Konstantin