Maksim
да
Volodymyr
да
ну вот я описываю anchor: &anchor "что-то там" потом: name: *anchor ругается unknown field "anchor" in io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress;
Maksim
стоп а что ещё за anchor в кубере?
Volodymyr
yaml
Maksim
при чём тут yaml и поле ancord
Maksim
yaml это язык манифестов
Volodymyr
конфиги куба на ямле
Volodymyr
ок?
Maksim
ну да, только при чём тут anchor
Volodymyr
якорь
Volodymyr
хотите я назову его ass? %)
Volodymyr
https://en.wikipedia.org/wiki/YAML#Advanced_components
Volodymyr
там еще есть references %)
Maksim
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kubernetes-dashboard namespace: kube-system labels: k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: selector: matchLabels: k8s-app: kubernetes-dashboard template: metadata: labels: k8s-app: kubernetes-dashboard annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: containers: - name: kubernetes-dashboard image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.3 resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 100m memory: 300Mi requests: cpu: 100m memory: 100Mi ports: - containerPort: 9090 livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 30 timeoutSeconds: 30 tolerations: - key: "CriticalAddonsOnly" operator: "Exists"
Maksim
Это yaml который кушает кубер
Volodymyr
так тут нет якорей
Volodymyr
Maksim
сорки, моя не понимать что такое анкор...
Maksim
скорее всего оно вообще не понимает расширения yaml
Etki
ну вот я описываю anchor: &anchor "что-то там" потом: name: *anchor ругается unknown field "anchor" in io.k8s.kubernetes.pkg.apis.extensions.v1beta1.Ingress;
видимо он пытается смаппить поле anchor в структуру Ingress и не находит его там
Etki
т.е. видимо сам якорь-то резолвится, но anchor остается в структуре и из-за этого не десериализуется, потому что десериализатор выбрасывает ошибку при встрече незнакомого поля (а не просто игнорирует его)
Artemiy
ребят, может кто поделится ссылкой на issues, по поводу баги, из-за которой initContainers при kubectl apply не обновляются ?
Artemiy
починили это в 1.8 ?
G72K
аннотации? или нативные инит контейнеры
G72K
кажется только аннотация не работала
G72K
(ну и при любом раскладе, обновления init container не вызывает пересоздания подов в deployment)
Vitaliy
кстати, вопрос в воздух... разумно ли ожидать что при проблемах с kubectl apply обновление бинарника kubectl решит проблему или там все глубоко переплетено?
Etki
зависит от проблем
Etki
но kubectl делает минимальную работу по доставке yaml до самого кубера, так что маловероятно
Vitaliy
ясно, я так и ожидал. спасибо
Anton
по мониторингу вопрос, развернул prometheus, тот обнаружил таргеты с метриками: kubernetes-apiservers, kubernetes-nodes, kubernetes-service-endpoints. попробовал несколько дашбордов в grafana для k8s, всем на cAdvisor опираются. Кто подскажет для этих изкоробки k8s метрик (apiserver/nodes) дашборд?
Роман
по мониторингу вопрос, развернул prometheus, тот обнаружил таргеты с метриками: kubernetes-apiservers, kubernetes-nodes, kubernetes-service-endpoints. попробовал несколько дашбордов в grafana для k8s, всем на cAdvisor опираются. Кто подскажет для этих изкоробки k8s метрик (apiserver/nodes) дашборд?
- job_name: 'kubernetes-cadvisor' tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token scheme: https kubernetes_sd_configs: - role: node relabel_configs: - action: labelmap regex: __meta_kubernetes_node_label_(.+) - target_label: __address__ replacement: kubernetes.default.svc:443 - source_labels: [__meta_kubernetes_node_name] regex: (.+) target_label: __metrics_path__ replacement: /api/v1/nodes/${1}:4194/proxy/metrics
Anton
не, cAdvisor я разберусь как поставить =)
Роман
А что там за метрики?
Anton
у apiserver /metrics
Anton
у каждой ноды: https://kubernetes.default.svc:443/api/v1/nodes/<nodename>/proxy/metrics
Anton
такая информация по нодам есть например # HELP kubelet_docker_operations Cumulative number of Docker operations by operation type. # TYPE kubelet_docker_operations counter kubelet_docker_operations{operation_type="create_container"} 14 kubelet_docker_operations{operation_type="info"} 1 kubelet_docker_operations{operation_type="inspect_container"} 65 kubelet_docker_operations{operation_type="inspect_image"} 33 kubelet_docker_operations{operation_type="list_containers"} 555904 kubelet_docker_operations{operation_type="list_images"} 20622 kubelet_docker_operations{operation_type="remove_container"} 4 kubelet_docker_operations{operation_type="start_container"} 14 kubelet_docker_operations{operation_type="stop_container"} 11 kubelet_docker_operations{operation_type="version"} 67883
Роман
у apiserver /metrics
Это эндпоинты.
Роман
Попробуй дашборды с id: 2, 162, 704, 22, 747, 737
Anton
ок =) спасибо
Anton
я чет про cadvisor не пойму, его функциональность встроена в к8с?
Роман
В кубере вся документация ниже 1.8 теперь считается устаревшей. Но на 1.8 страшно пока переходить...
Maksim
оо
Anton
да, разобрался уже куда спрятали: # This is required for Kubernetes 1.7.3 and later, where cAdvisor metrics # (those whose names begin with 'container_') have been removed from the # Kubelet metrics endpoint. This job scrapes the cAdvisor endpoint to # retrieve those metrics. # # In Kubernetes 1.7.0-1.7.2, these metrics are only exposed on the cAdvisor # HTTP endpoint; use "replacement: /api/v1/nodes/${1}:4194/proxy/metrics" # in that case (and ensure cAdvisor's HTTP server hasn't been disabled with # the --cadvisor-port=0 Kubelet flag).
Lev
давно
Роман
Да. 5 дней назад.
Maksim
давно
5 дней...как давно то....
Logan
для кубера это, считай, эпоха
Logan
вечность
Pavel
Роман
Что-то надоело мне, что glusterfs постоянно эндпоинт отваливается. В логах - всё нормально. Никаких сообщений. Просто пропадает и всё... Хочу что-то по типу облака. Чтобы монтировать, как hostPath, но каталоги меж собой синхронизировались автоматом при изменении файлов. Кто-нибудь делал что-то подобное? Файлов не много - буквально 200 метров. Нужна высокая доступность. И сравнительно быстрая синхронизация при изменении.
Maksim
для кубера это, считай, эпоха
Пфф я работаю в крупном ентерпрайз, для нас 5 дней это меньше мгновения........
Роман
Я не верил)
Maksim
Зато тут тепло и мухи не летают)
Роман
Так что - всё-таки ceph?
Роман
Или cephfs?
Logan
ceph, без fs
Logan
обязательно обдумайте резервное копирование. Я вот не обдумал и теперь мучаюсь
Роман
Поскольку у меня чуть чуть файлов - бэкапится просто rsync'ом. Или там подводные камни есть?
Logan
Поскольку у меня чуть чуть файлов - бэкапится просто rsync'ом. Или там подводные камни есть?
а как вы будете бэкапить рсинком что-то из RBD-устройства, которое у вас уже подмонтировано?
Logan
дважды один девайс смонтировать вы не сможете
Maksim
А смысл бекапить на ceph..если делать толерантность 1 то всё живёт при смерти 1 osd
Maksim
можно повысить до 2х.... и мы живём при 2х мёртвых osd
Maksim
или глубина репликации 2 и 3 соответвенно
Роман
Ой. Вот это и плохо! Я не смогу в два пода смонтировать девайс?
Maksim
Ой. Вот это и плохо! Я не смогу в два пода смонтировать девайс?
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
Роман
Выходит, что ceph мне не подходит(
Роман
а мне кто-нибудь объяснит ЗАЧЕМ?!
У меня поды с пхп. Иногда пользователь загружает свою аватарку, например. Подов у меня несколько, так как нагрузка большая. Картинки отдаёт nginx, в него тоже смонтирован волюм - ему и RO достаточно. Но пхп может любой под писать в этот волюм.
Михаил
s3 либы есть под любой сторадж
Михаил
Это локально?
нет, это делают нормальные люди для хранения статики