Silver 👻
А, тогда ок
Silver 👻
У меня мелочевка
Dmytro
туториал по хелму? у них неплохая дока же, и как пример для старта своего приложения глянуть какой-то чарт попроще из комьюнити, где один деплоймент один сервис
тут у них и примеры есть https://github.com/kubernetes/helm/tree/master/docs/examples/nginx но там сразу развернутый пример с post install хуками и т.п. - для начала может быть не очень
Silver 👻
Вот и я натыкался на уж большего расширенные вещи какие-то. Нет чтоб что-то совсем простое. Дальше можно и по доке
Dmytro
сейчас попробую найти какой-то чарт попроще
Dmytro
вот неплохой пример https://github.com/kubernetes/charts/tree/master/stable/selenium/templates по сути можно смотреть только на два файла hub-deployment.yaml и hub-service.yaml остальные деплойменты тут - это отдельные приложения и в самом простом случае их не будет
Dmytro
и тут нет создания конфигмапа или секретов
Dmytro
в качестве создания секрета неплохой пример вот в монго чарте https://github.com/kubernetes/charts/blob/master/stable/mongodb/templates/secrets.yaml и тут можно глянуть как ссылаться на значения из созданного секрета https://github.com/kubernetes/charts/blob/master/stable/mongodb/templates/deployment.yaml#L42 по сути там все просто как табуретка valueFrom - secretKeyRef - name: MONGODB_PASSWORD valueFrom: secretKeyRef: name: {{ template "mongodb.fullname" . }} key: mongodb-password
Silver 👻
Спасибо большое
Dmytro
пример entrypoint.sh в котором генерируется конфиг из env переменных: #!/bin/sh set -o errexit set -vx cat << EOF > /opt/newrelic-redis/config/newrelic_plugin.yml # Please make sure to update the license_key information with the # license key for your New Relic account. # newrelic: # # Update with your New Relic account license key: # license_key: ${NEW_RELIC_LICENSE_KEY:?} # # Set to '1' for verbose output, remove for normal output. # All output goes to stdout/stderr. # #verbose: 1 # # Agent Configuration: # agents: # this is where configuration for agents belongs redis: instance_name: ${REDIS_NAME:?} url: redis://${REDIS_HOST:?}:${REDIS_PORT:?} database: db0 EOF exec "$@" >&2
Dmytro
пример как весь конфигмап прокинуть через values - т.е. это файл configmap.yaml в составе хелм чарта apiVersion: v1 kind: ConfigMap metadata: name: "{{ .Release.Name }}-mongodb-config" labels: app: {{ .Release.Name | quote }} data: mongod.conf: | {{ toYaml .Values.configmap | indent 4 }}
Dmytro
т.е. в values.yaml это выглядит вот так по дефолту: # If you run mongod in a container (e.g. lxc, cgroups, Docker, etc.) that does not have access to all # of the RAM available in a system, you must set storage.wiredTiger.engineConfig.cacheSizeGB to a value # less than the amount of RAM available in the container. The exact amount depends on the other processes # running in the container. # # See https://docs.mongodb.com/manual/faq/storage/ # # Entries for the MongoDB config file configmap: storage: dbPath: /data/db net: port: 27017 # replication: # replSetName: rs0 # storage: # wiredTiger: # engineConfig: # cacheSizeGB: 0.2 при установке чарта можно туда засунуть все что надо
Dmytro
и еще такой кейс когда нужно какие-то файлы статические в кконтейнер закинуть и они одинаковые для всех инсталляций чарта: # This is a simple example of using a config map to create a single page # static site. apiVersion: v1 kind: ConfigMap metadata: name: stack-templates labels: app: aws-resources {{ include "common_labels" . }} data: {{ (.Files.Glob "stacks/*.yaml").AsConfig | indent 2 }}т.е. тут хелм возьмет все файлы (нерекурсивно!) из папки stacks/ которая должна лежать рядом с папкой templates/ внутри чарта и создаст из них конфигмап
Dmytro
думаю что дя старта хватит, дальше если будут вопросы - пиши
Arty
Приветствую. А подскажите пожалуйста, можно ли в метаданных хранить кастомную информацию о поде? Мне нужно как-то хранить данные о том, кто и почему создал под
Silver 👻
В лейбах можно хранить что угодно.
Andrey
Кто-нибудь юзает metallb (L2)? Не сталкивались с проблемой проброса реального ip клиента в контейнер? Это вообще возможно? :)
Andrey
В данном случае кластер в офисе. Проблема в том что xff прокидывается, но ip из кластерной сети, причём заканчивается на 0 (10.5.64.0) - странно вообще. Кейс, думаю, подходящий для metallb. Суть в том что external lb получает external ip от metallb, а далее стандартная работа ингресс
Igor
Коллеги, привет всем! Кто-нибудь поднимал стенделоун кластер kubernetes для работы с несекьрными докер-регистри?
Igor
Пытаюсь запуллить образ через kubectl, но стабильно падаю с ошибкой x509: certificate is not valid for any names
Igor
Хотя docker pull на том же сервере работает корректно (с прописанным insecure-registry в конфигах)
Andrey
у вас эта сетка для чего? поди сервис на этом ip и висит
Andrey
ingress
Andrey
Нет, сервис в сети 10.5.65 а дёргаю в офисе из сети 192.168. т.е. ожидаю в real ip увидеть 192.168. адрес. Сеть 10.5. - внутренняя для k8s
Andrey
у вас скорее всего несколько хопов от клиента до реального приложения в контейнере. посмотрите, кто у вас на этом ip работает через kubectl get services —all-namespaces
Andrey
а xff только на одном, либо затирается, либо пишется несколько ip а приложение берёт последний
Andrey
На первом шаге он вероятно не предаётся вообще. Грешу на metallb, пока не до конца разобрался в его работе
Andrey
а ingress какой используется?
Andrey
ну и http или https
Andrey
если https - то metallb просто не может xff вставлять
Andrey
он же не может шифрованный трафик модифицировать
Andrey
я вообще склоняюсь к тому, что это не задача metallb, он не должен работать на уровне протокола приложения
Igor
Хотя docker pull на том же сервере работает корректно (с прописанным insecure-registry в конфигах)
@ фикс: Достаточно инсекьюр-регистри указать на каждом сервере, участвующем в кластере kubernetes.
Igor Garnyshev
Коллеги, кто k8s поднимал на baremetal на 2 и более DataCentrs?
Harry
Пока только внутри одного. Но, думаю, все решается ВПН-ом, нет?
Andrey
я вообще склоняюсь к тому, что это не задача metallb, он не должен работать на уровне протокола приложения
Ак он же просто даёт ip 192.168. для external lb. В данном случае я пробую с traefik. Какой стек рекомендовали бы использовать в локальной сети?
Denis
Народ, подскажите пожалуйста, как из кубера можно выгрузить конфиг-spec в формат yaml? забыл как делал
Stanislav
-o yaml
Denis
о точняк. спасибо
Eduard
Мне кажется, или этот вопрос стабильно раз в неделю появляется?
Denis
Народ а после установки кубспреем кластера , конф для kubectl как замутить?
Gleb
Товарищи. В СПБ организуем второй митап по kubernetes. Ссылки для регистрации: meetup: https://bit.ly/2H3nMEK timepad: https://bit.ly/2JceP11
Anton
Народ а после установки кубспреем кластера , конф для kubectl как замутить?
Возьми с мастера, там же kubectl работает, конфигурация там есть
Anonymous
Народ а после установки кубспреем кластера , конф для kubectl как замутить?
kubectl config --kubeconfig=k8s set-cluster k8s --server=$API_URL --insecure-skip-tls-verify" kubectl config --kubeconfig=k8s set-credentials admin --username=$USERNAME --password=$PASSWORD" kubectl config --kubeconfig=k8s set-context default --cluster=k8s --namespace=default --user=$USERNAME" kubectl config --kubeconfig=k8s use-context default"
Denis
👍
Sergey
Ребят а кто может кратенько обьяснить что такое containerd для k8s?
Sergey
можно и не кратенько😁
Harry
Демон, который управляет контейнерами на нодах кластера. Это совсем кратко если
Sergey
т.е докер будет создавать, а containerd управлять? замена kubectl? или это какой то промежуточный контролирующий демон
Mikhail
https://kubernetes.io/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/
Mikhail
Вот тут по полочкам всё
Sergey
https://containerd.io
Sergey
я тут читаю, и пока чет не сильно понятно:)
Sergey
спасибо
Dmitry
Коллеги, добрый день Какая сейчас дока наиболее актуальна для ручного подъема куберов?
Mikhail
bare metal?
Dmitry
да
Mikhail
Какой хост?
Mikhail
ОС + версия
Mikhail
Ubuntu 18.04 https://tutorials.ubuntu.com/tutorial/install-kubernetes-with-conjure-up 16.04 https://habr.com/company/southbridge/blog/334846/ Но сначала нужно прикинуть архитектуру нормально. И на 18.04 не стоит использовать btrfs и zfs как хранилище, только dir. Первые два сломаны, баги
Andor
Conjure-up ставит кубер только с фланнель, без вариантов
Andor
Либо я не доискал
Mikhail
Я не пробовал иное, но выбрать можно
Andor
Кубеадм можно из снап поставить
Алексей
а какая разница с чем он его ставит?
Алексей
ну вынесите фланел при желании и воткнете что нить еще
Denis
Мужики подскажите куда копать или где ошибаюсь Есть такой deployment: https://anotepad.com/notes/9ix3hd Под не может резолвить сервисы nslookup kubernetes Server: (null) Address 1: ::1 localhost Address 2: 127.0.0.1 localhost Другие поды работаю нормально. Задеплоил тестовый deployment https://kubernetes.io/docs/concepts/workloads/controllers/deployment/ и там все нормально. Куда копать нужно?
Mikhail
Кубеадм можно из снап поставить
На 18.04 херова гора преград была разного характера. Не вышло нормально поставить и настроить, пришлось накатывать 16.04 на виртуалку и ставить всё там
Andor
Эээээ
Andor
Какие там могут быть преграды?
Mikhail
Не, пакет я поставил, хех
Mikhail
Потом при настройке
Mikhail
Я уже не помню
Andor
Ну нетплан
Andor
Остальное всё то же