Maksim
в композе возможно в кубеке можно использовать entrypoint который по апи может проверить готовность сервисов джоб и т.п
Артем
Maksim
Артем
Artem
пишите оператор :)
Maksim
https://github.com/stackanetes/kubernetes-entrypoint
Maksim
У опенстака подсмотри ентрипоинт контейнер) весьма хорошо работает-)
Maksim
пример ямла-)
Maksim
initContainers:
- command:
- kubernetes-entrypoint
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: INTERFACE_NAME
value: eth0
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
- name: DEPENDENCY_SERVICE
value: mariadb
- name: DEPENDENCY_JOBS
- name: DEPENDENCY_DAEMONSET
- name: DEPENDENCY_CONTAINER
- name: DEPENDENCY_POD_JSON
- name: COMMAND
value: echo done
image: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
imagePullPolicy: IfNotPresent
name: init
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: keystone-api-token-6hddp
readOnly: true
Артем
Что то в виде этого сработает?
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
labels:
app: myapp
annotations:
pod.beta.kubernetes.io/init-containers: '[
{
"name": "init-myservice",
"image": "busybox",
"command": ["sh", "-c", "until nslookup myservice; do echo waiting for myservice; sleep 2; done;"]
},
{
"name": "init-mydb",
"image": "busybox",
"command": ["sh", "-c", "until nslookup mydb; do echo waiting for mydb; sleep 2; done;"]
}
]'
spec:
containers:
- name: myapp-container
image: busybox
command: ['sh', '-c', 'echo The app is running! && sleep 3600']
Maksim
И кстати нет Сервис резолвиться всегда, внезависимости от наличия ендпоинтов под оный) Так что правильно сделать запрос в апи k8s и проверить статус сервиса
Maksim
ЧТо бы гарантировать правильную работу, для бд нужно писать readness пробу, а в апп делать инит контейнер, который проверяет статус сервиса.
Maksim
либо в ините делать тестовый коннект
Rainbow
а можно просто падать пока база не будет доступна. 0 кода
Maksim
Не факт что это правельный подход-)
Артем
Да, спасибо тоже вариант. Буду разбираться
Rainbow
ну я это и имел в виду, всегда есть рединесс
Семён
Просто если заваливать хелсчек - кубер будет лишние разы рестартить под бессмысленно и беспощадно
Maksim
Реаднесс не означает гарантировный старт приложения после базы…
Maksim
Реаднесс лишь даст отсутвие ендпоинтов у сервиса
ᴅⁱᵐⁱᴅʳ0ˡ
Всем привет
ᴅⁱᵐⁱᴅʳ0ˡ
Подскажите как образ докера перенести на кубер?
Stefan
чтоб кубер его загрузил
Maksim
через регистр…. как и в любое другое место
ᴅⁱᵐⁱᴅʳ0ˡ
Maksim
делаешь приват регистр пушишь туда образы
Maksim
и в image пишешь свой образ
Maksim
кубик его пулит и запускает
Maksim
для правильного пулла используешь imagePullSecret
ᴅⁱᵐⁱᴅʳ0ˡ
А если нет регистра
Maksim
делаешь.
Maksim
его сделать то…. docker run -p 5000:5000 registry:2
Maksim
ну или делаешь архив образа через docker save
и на каждой ноде делаешь docker load и docker tag
Maksim
что бы кубик увидел что образ уже есть на ноде и не полез его пулить
Maksim
в imagePullPolicy тогда лучше всего написать Never
ᴅⁱᵐⁱᴅʳ0ˡ
ок, вроде понял) спасибо
𝚔𝚟𝚊𝚙𝚜
А еще есть всякие kubernetes.statefulset.name, kubernetes.node.name, о которых docker просто не знает
engelbart
Подскажите плиз с проблемкой. Я беру самый настоящий чарт из github.com/helm/charts
stable/elasticsearcg
ставлю там xpackEnabled: true
и получаю в логах
uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.IllegalArgumentException: unknown setting [xpack.monitoring.collection.enabled] please check that any required plugins are installed, or check the breaking changes documentation for removed settings
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:163) ~[elasticsearch-6.6.1.jar:6.6.1]
Incognito
xpack же платный и его надо ставить отдельно
Incognito
Incognito
вот же
https://opendistro.github.io/for-elasticsearch/
AWS анонсировали выпуск в опенсорс «Open Distro for Elasticsearch» — дистрибуции Elasticsearch с набором компонентов, которых так не хватало в опенсорсном Elasticsearch:
* Security — поддержка разных аутентификаций, rbac на разных уровнях, шифрование трафика и аудит;
* Event Monitoring & Alerting — создание оповещений по данным в индексам;
* Deep Performance Analysis — API для получения метрик производительности кластера;
* SQL Support — поддержка создания запросов к данным с помощью SQL;
Zhyhanov
Ребят такой вопрос, я могу по https мастера по порту 6443 стучаться на апишку кубера ?
Anonymous
Приветствую. Кто успешно боролся с connect: no route to host port 10250
Denis
Подскажите как правильно пробросить coredns-service через LoadBalancer на metallb? или есть другие варианты?
Denis
Denis
Incognito
Denis
Zhyhanov
Да для получения информации о деплойментах, разработчикам засунуть в свою приложуху.
Denis
tls_config:
ca_file: /etc/prometheus/ca.crt
bearer_token_file: /etc/prometheus/token
Denis
ВОт как-то так выглядело и ходил через 6443 порт
Alisher
Коллеги! Есть проблема никак не могу понять в чем:
curl http://domain.com/.well-known/acme-challenge/_selftest отрабатывает, а kube-lego пишет
error while authorizing: reachability test failed: Get http://domain.com/.well-known/acme-challenge/_selftest: dial tcp x.x.x.x:80: getsockopt: connection refused
Alisher
В чем может быть проблема?
Rainbow
kube-lego deprecated
Alisher
Rainbow
https://cert-manager.readthedocs.io
Alisher
Denis
только там в послендних версиях наворотили они. Доку повнимательнее читайте
Incognito
я дальше 0.6 не полез
Alisher
ok
Alisher
пытаюсь разобраться
Nazar
Как получить айпишник кластера в шаблоне хелма, что то типа { .Cluster.IP }?)
Alisher
в общем разницы нет connect: connection refused
Rainbow
ingress нормально настроен?
Alisher
Alisher
если открыть,и принять саомподписанный сертификат, то открывает
Rainbow
Вбить домен браузере
Rainbow
По 80 порту
Alisher
по 80 нет. только https
Stefan
Alisher
в том, что сертификат не letsencrypt, а самоподписанный
Stefan
и погляди че пишет в kubectl describe certificate