Сейчас очень популярна тема DevOps, а сайты о поиске работы пестрят вакансиями, в названии, которых фигурирует сочетание DevOps.
На самом деле такой специальности как DevOps инженер не существует, так как она бы подрывала саму идею DevOps, выделяя отдельных специалистов, которые занимаются DevOps. В том время как сама методология наоборот предлагает разнопрофильным специалистам (Dev, QA, OPS, SE тд) погружаться в задачи и проблемы друга, то есть всем вместе заниматься задачами, включая смежные сферы.
Найти все PV с определённым именем PD:
1 kubectl get pv -ogo-template='{{range .items}}{{$pd := index .spec.gcePersistentDisk "pdName"}}{{$pd}}{{"\t"}}{{index .spec.claimRef "name"}}{{"\n"}}{{end}}' --all-namespaces | grep restore
Как-то Prometheus, запущенный в Kubernetes, свалился вот с такой ошибкой:
caller=repair.go:39 component=tsdb msg="found healthy block" Перезапуск POD’ов помогал, но через некоторое время он снова падал с такими же симптомами.
Целый день потратил на то, чтобы понять, в чём дело - исследовал базу, пытался найти в ней ошибки и починить PV. Однако решение оказалось тривиальным - случайно глянул на график использования оперативной памяти, который показал, что она закончилась. И после увеличения memory limits POD с Prometheus снова работал.
Хотелось настроить service discovery для GCE (Google Compute Engine) в Prometheus с использованием внешнего IP адреса для опроса метрик, а не внутреннего, который испльзуется по-умолчанию. В официальной документации было не всё очевидно в этом плане, по-крайней мере для меня :)
Итак, кусок конфигурации для включения GCE Service Discovery в настройках Prometheus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - job_name: '<your_job_name>' scrape_interval: 30s metrics_path: /metrics scheme: http gce_sd_configs: - project: "<your_project_name>" zone: "<your_zone_name>" filter: "<your_filter>" refresh_interval: 30s relabel_configs: - source_labels: ['__meta_gce_public_ip'] # Опрашивать метрики через публичный IP target_label: __address__ replacement: $1:9100 # Указать порт nodeexporter'а, так как при использовании внешнего адреса директива port: не используется - source_labels: [__meta_gce_instance_name] # Видеть имя инстанса в лейблах при выполнении запросов target_label: instance