Pavel
У меня сейчас в кубере крутится прометеус и там разница между container_memory_usage_bytes и container_memory_working_set_bytes чуть ли не в 2 раза иногда
Sergey
порешали?
вродь да:)
Pavel
Ну, inactive же учитывается к общему лимиту.
Ага, в итоге ООМ учитывает total_inactive_file или нет, в этом и самый главный вопрос, тащем-то 🙂 Но думаю, попробую опытным путем посмотреть.
Andrey
Ага, в итоге ООМ учитывает total_inactive_file или нет, в этом и самый главный вопрос, тащем-то 🙂 Но думаю, попробую опытным путем посмотреть.
Учитывает, конечно. Но триггернёться он только в том случае, если ядро не успеет file backed страницы сбросить на диск по какой-то причине.
Andrey
Active/inactive используется для приоритезации page reclaim'а, но если anomymous mappings будут поджимать, то file mappings с силой тысячи солнц полетят на диск.
Andrey
И в случае конкретной cgroup-ы с лимитом это тоже будет так?
Да, судя по интернету и моим тестам, алгоритм локально в cgroup'е работает с её лимитами.
Andrey
И в случае конкретной cgroup-ы с лимитом это тоже будет так?
2.5 пункт в той же доке, что ты уже смотрел, про memcg.
Pavel
2.5 пункт в той же доке, что ты уже смотрел, про memcg.
О точно, а я ее бегло посмотрел и упустил самое важное 🙂 Спасибо
Andrey
О точно, а я ее бегло посмотрел и упустил самое важное 🙂 Спасибо
А насчёт того, можно ли верить limit_in_bytes в плане алертов и рисования графиков, пойду схожу в IRC к людям, что разрабатывали это. Они добрые, вроде.
Beats
Привет коллеги! Есть кто сможет за деньги настроить CI/CD с gitlab на GKE?
Konstantin
Привет коллеги! Есть кто сможет за деньги настроить CI/CD с gitlab на GKE?
в инфе группы Вакансии и поиск работы: @devops_jobs
Vadim
upwork же
Gleb
привет. у меня на проде Azure кубер создает деплоймент, но этот деплоймент не создает replica set
Gleb
как это отдебажить, учитвыая, что это azure kubernetes? какие логи я могу посмотреть?
Mikhail [azalio]
kubectl describe deploymentname?
Gleb
OldReplicaSets: <none> NewReplicaSet: <none>
Gleb
¯\_(ツ)_/¯
Gleb
Replicas: 2 desired | 0 updated | 0 total | 0 available | 0 unavailable
Andrey
Логи kube-controller-manager.
Gleb
ага, тока это AKS, я хз как их достать. ща почитаю доку
Gleb
они в GKE и EKS доступны? логи контроллер менеджера
Gleb
https://docs.microsoft.com/en-us/azure/aks/view-master-logs
Valerii
есть тысяча способов как изменить yaml - начиная от темплейтов, заканчивая sed. Все способы плохие по своему
Учитывая, что в Gitlab все эти переменные заданы, в итоге получилось вот так: sed "s/CONTAINER_IMAGE:CI_COMMIT_SHA/$CI_REGISTRY\/$CI_PROJECT_NAMESPACE\/$CI_PROJECT_NAME:$CI_COMMIT_SHA/g" dev.yaml | kubectl apply --record=true -f - где CONTAINER_IMAGE:CI_COMMIT_SHA просто строка, после image:, т.е. в самом yaml - image: CONTAINER_IMAGE:CI_COMMIT_SHA
Rainbow
envsubst вместо sed... лучше
Valerii
Жаль только в kubectl rollout history deployment/ в CHANGE-CAUSE теперь только kubectl apply —record=true —filename=-`
Rainbow
Вместо rollout можно просто запускать pipeline прошлого релиза
Valerii
envsubst вместо sed... лучше
Я ориентировался на https://kubernetes.io/docs/reference/kubectl/cheatsheet/ # Update a single-container pod's image version (tag) to v4 kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
Valerii
Вместо rollout можно просто запускать pipeline прошлого релиза
Хочется использовать kubectl rollout undo deployment/x --to-revision y
Rainbow
это для тех, кто любит потными ладошками делать kubectl edit
Valerii
cat template.yml | envsubst | kubectl apply -f - выглядит шикарно
Вообще да, спасибо, попробую. Да и откатывать можно запуском предыдущего pipeline, конечно. Хотелось использовать именно нативный кубовый откат.
Rainbow
pipeline сейчас же не знает какая ревизия была прошлая kubectl rollout undo deployment/x —to-revision а если просто откатывать на прошлую, то двойной запуск pipeline приведёт к разным результатам - плохо
Rainbow
У меня на deploy публикуется ссылка отката в telegram bot, чтобы не вспоминать если что. Сообщение отправляется одной строкой curl
Rainbow
* не ссылка отката, просто на pipeline, где можно перезапустить deploy.
Rainbow
статика html/css/js собирается с каждой ветки на свой поддомен, ссылка тоже публикуется в телеге. Обожаю статику, с api так сложнее. И телега рулит, что одним curl можно публиковать команде уведомления.
Gleb
Логи kube-controller-manager.
````E0806 14:01:58.269297 1 reflector.go:205] k8s.io/kubernetes/cmd/kube-scheduler/app/server.go:594: Failed to list *v1.Pod: Get https://hcp-kubernetes.51632707.svc.cluster.local:443/api/v1/pods?fieldSelector=spec.schedulerName%3Ddefault-scheduler%2Cstatus.phase%21%3DFailed%2Cstatus.phase%21%3DSucceeded&limit=500&resourceVersion=0: net/http: TLS handshake timeout 0806 14:01:58.269583 1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:87: Failed to list *v1.ReplicationController: Get https://hcp-kubernetes.5b307.svc.cluster.local:443/api/v1/replicationcontrollers?limit=500&resourceVersion=0: net/http: TLS handshake timeout```
Gleb
чот прям жоско сломалось что-то в ажуре
Gleb
ага, только это ажур, а логи kube-scheduler
Gleb
че делать-то
Gleb
в смысле я в саппорт написал
Gleb
но походу тут тоьлко один выход - делать еще один кластер
Juriy
всем привет
Juriy
подскажите плиз кто вкурсе
Juriy
есть у меня вольюм вот такой
Juriy
volumes: - name: shared-files emptyDir: {}
Juriy
подключенно к нему два контейнера в поде
Juriy
и беда печаль от юзера www-data не может че то писать туда
Juriy
куда копнуть?
Slava
accessMode в PV
Игорь
Всем привет, как лучше поднимать kubernetes в разных датацентрах? Использовать несколько кластеров или можно настроить один распределенный? Можно ли настроить рабочий вариант 3 мастера с 3 нодами размазанными по 3 разным датацентрам?
Juriy
accessMode в PV
то есть я так понимаю надо создать PersistentVolume и задать ReadWriteMany а потом его подключить к поду?
Slava
да, через pvc
Juriy
а для чего нужен emptyDir: {}
Juriy
?
Slava
хз, если честно)
Valerii
Хотя что я туплю, у нас такая же функциональность реализована из коробки самим Gitlab + его нативной интеграцией со слаком :)
Игорь
несколько кластеров
А какие подводные камни в одном распределенном?
Игорь
И на что это повлияет, кроме как на немного более длительную синхронизацию? Какие в связи с этим вылезут косяки?
Михаил
и вариант, что в одном дц весь прод, а в другом нифига вполне себе актуальный
Михаил
Он разве размазывает по ртт, а не по ресурсам?
по ресурсам. ну и у тебя получится, что все сконцентрировано на одной ноде в одном дц
Игорь
Почему так получится-то?
rus
Несколько докладов по k8s со swampUP 2018 swampUP 2018 | Kubernetes, Openshift awesomeness with Artifactory - Red Hat https://www.youtube.com/watch?v=ZKe-F20wB1U swampUP 2018 | DevOps with Azure, Kubernetes, and Helm - Jessica Deen https://www.youtube.com/watch?v=TeyCIM3drb4 swampUP 2018 | Kubernetes, OpenShift Awesomeness with Artifactory - Burr Sutter https://www.youtube.com/watch?v=75vjL9qe1kI swampUP 2018 | Managing artifacts cross multiple Kubernetes clusters https://www.youtube.com/watch?v=WBBCgFVOfuQ swampUP 2018 | Kubernetes is hard! Lessons learned taking JFrog apps to Kubernetes - Eldad Assis https://www.youtube.com/watch?v=o4PRs0gpl18
Gleb
друзья, а яправильно понимаю, что в кластерах с RBAC (oauth на Azure Active Directory) не получится сделать дешборд, в который люди логинятся?
Gleb
сделал kubeconfig, а оно Not enough data to create auth info structure.
Gleb
External identity providers or certificate-based authentication are not supported at this time.
Gleb
а берер токена с таким RBAC нет. единственный вариант, получается, тем, кто хочет дешборд - создавать свой собственный сервисаккаунт с такими же ролями?
Gleb
ну или сделать сервисаккаунт с read привелегиями всего и через oauth прокси выставить, чтобы могли только читать все кроме секретов
Elenhil
Ребят. Хочу потыкать кубер с нуля. Какую впску для этого лучше взять? Какие минимальные требования для например двухнодового кластера?