Mikhail [azalio]
Разные сети, адрес один
Mikhail [azalio]
Только если анонсить его в трёх местах
Andrey
надо пошагово смотреть. Это локальный комп что-ли?
ubuntu 16.04 cloud, ВМка в опенстеке, kubespray v2.2.1 взлетает на ура
𝚔𝚟𝚊𝚙𝚜
Alik
Привет, товарищи! Кто-нибудь деплоил spring boot приложение с gce-ingress балансером?
Etki
Можно сразу задавать конкретные вопросы
Andrey
убрал flannel, оставил дефолтовый calico - все взлетело
Maksim
А с каких пор calico дефолтовый? Оо
Andrey
у kubespray
Maksim
ммм
Maksim
вот по этому я и не люблю все эти кубеадм и кубеспреи
Andrey
все ручками на баш скриптах ?
Maksim
почему?
Logan
почему?
а какой сейчас вариант развертывания куба – основной?
Andrey
on google container engine
Maksim
Разве?
Maksim
Каждый делает так как он хочет, и считает нужным
Maksim
моё мнение что кубеадм и куберспрей ограничивают тебя и убирают гибкость системы
Maksim
Я разворачиваю ансиблём
Maksim
вернее да же контралирую
Maksim
ещё есть ironcon puppet и еже с ними
Maksim
Это unix way
Maksim
делай так как считаешь правильным и привычным
Oleg
убрал flannel, оставил дефолтовый calico - все взлетело
) у меня наоборот с calico не взлетело)
Anton
По идее с калико поверх L3 все должно работать с включённым ipip
Alexandr
Доброго времени суток, кто трогал envoy для трассировки приложений??
Владимир
А как можно новую ноду в кластере сделать основной? что бы на нее переехали аписервер, шедулер и т д?
Mikhail [azalio]
Поднять там апи шедулер контроллер
Mikhail [azalio]
Изменить у кубелетов адрес апи
Mikhail [azalio]
Проверить
Mikhail [azalio]
Погасить старый
Karey
Вряд ли) Но может кто не смотрел - https://www.youtube.com/watch?v=YkOY7DgXKyw
Artemiy
Ребят, привет, вы как редис в кубе кластеризовали? santinel ?
Eugene
Ignite
Artemiy
никаких проблем с подключением ? он полностью совместим на уровне апи?
Eugene
Неа
Eugene
Но и sentinel не совместим с редисом, если об этом был вопрос
Artemiy
есть ли какие-то прокси решения? типа с прокси клиент работает как с обычным редисом, а он там сам уже роутит на мастера текущего запросы? и промоутит слейвы при фэйле?
Artemiy
не хотелось бы сервисы переписывать
Eugene
Есть dynomite от netflix(shared nothing) и codis
Eugene
Но они не все запросы поддерживают
Artemiy
спасибо большое, посмотрю
Eugene
Но если сессии хранить и как мемкеш юзать то ignite самое простое решение
Artemiy
ещё такой вопрос, если redis-cluster использовать. там же 3 мастера минимум. и ключи по слотам на разные мастера распихиваются. будут ли работать у клиентов запросы типа получения всех ключей? или нужна на стороне клиента поддержка redis-cluster?
Zloy-Dobry
З мастра? Редиса. Норм.
Anton
есть ли какие-то прокси решения? типа с прокси клиент работает как с обычным редисом, а он там сам уже роутит на мастера текущего запросы? и промоутит слейвы при фэйле?
есть еще twemproxy, он правда с мастер слейвом вроде не умеет работать, да и вообще для кеширования больше, но умеет размазывать данные по нескольким серверам
Artemiy
спасибо 👍
Andrey
Есть редис кластер. у которого есть и sentinel и обычный сервис, который всегда смотрит на мастера и еще сервис. который всегда смотрит на слейвы. Взаимодействуя с kubernetes api вешает и читает лейблы. НО! Там жуткий косяк со сменой мастера и мы сейчас переписываем логику sidecar контейнера. (Уже переделали с kubectl на curl) - так как kubectl выжирал много проца, когда много веток.
Andrey
к сожалению, мы не занимаемся разработкой, а инфраструктурой и клиенту нужен именно редис :)
Anonymous
используйте apache ignite - легок в настройке масштабируем, SQL99
Гыгы, в Сбере работаешь? Или прям из гридгейна?
Алексей
Ребят, привет, вы как редис в кубе кластеризовали? santinel ?
https://github.com/CommercialTribe/kube-redis пока что единственное реально рабочее решение
Anton
такой вопрос по helm возник. допустим я хочу переиспользовать описание одного контейнера в куче деплойментов разных приложения и поддерживать описание этого контейнера в одном месте. и не вижу чет простого варианта как я могу везде просунуть свой контейнер в поды
Anton
можно делать helm fetch из своего репо в charts/ и потом использовать include. но нужно следить самому за обновлениями своего репо
Mikhail [azalio]
я правильно понимаю что через kubectl нельзя получить всех мастеров в кластере?
Anton
через label?
CrusaderX
я правильно понимаю что через kubectl нельзя получить всех мастеров в кластере?
Пожалста kubectl get no -o json | jq -r '[.items[] | select(.metadata.labels["kubernetes.io/role"]=="master") | { name:.metadata.name }]'
Rustam
ну или kubectl get no -l "kubernetes.io/role=master"
Mikhail [azalio]
ну или kubectl get no -l "kubernetes.io/role=master"
$ kubectl get no -l "kubernetes.io/role=master" No resources found.
Rustam
ну значит надо проставить лейблы вручную
Mikhail [azalio]
это ясно, что я могу вручную все сделать )
Mikhail [azalio]
хотелось kubectl get masters )
Салтыдык
$ kubectl get no -l "kubernetes.io/role=master" No resources found.
лейблы могут быть не такими, у меня (1.7.0) — node-role.kubernetes.io/master: ""
Vitaliy
подскажите, а вообще есть способ в деплойменте смонтировать несколько ресурсов в один каталог? к примеру configmap + secret. конечно файлы не будут пересекаться
Maksim
через subPath
Maksim
но если файлов много, то задача не из простых
Vitaliy
это создает каталог. а хотелось бы в одном каталоге файлы из разных ресурсов
Vitaliy
/dir/secret.file /dir/configmap.file
Maksim
можно и отдельные файлы через subPath
Maksim
указывай как mountpint и subpath файло, и он будет монтировать файл в файл
Alexey
Виталий, типа такого тебе нужно: volumeMounts: - name: config-volume mountPath: /etc/haproxy/haproxy.cfg subPath: haproxy.cfg
Alexey
монтирует отдельные файлы
Vitaliy
ок, тестирую. огромное спасибо
Vitaliy
работает.
Oleg
подскажите, а вообще есть способ в деплойменте смонтировать несколько ресурсов в один каталог? к примеру configmap + secret. конечно файлы не будут пересекаться
вот как я делаю cat «EOF | kubectl create -f - apiVersion: v1 kind: Namespace metadata: name: mysite —- apiVersion: v1 kind: ConfigMap metadata: name: mysite-config namespace: mysite data: default.conf: | upstream node { # CHANGE ME server YOUR-GITHUB-USERNAME.github.io; } server { listen 80; server_name _; root /usr/share/nginx/html; location / { proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; # CHANGE ME proxy_set_header Host YOUR-GITHUB-USERNAME.github.io; proxy_pass http://node; proxy_redirect off; port_in_redirect off; } } —- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mysite-deployment namespace: mysite spec: replicas: 1 template: metadata: labels: app: mysite spec: containers: - image: nginx:1.13.6-alpine imagePullPolicy: Always name: mysite ports: - containerPort: 80 volumeMounts: - name: mysite-configs mountPath: /etc/nginx/conf.d # Load the configuration files for nginx volumes: - name: mysite-configs configMap: name: mysite-config —- apiVersion: v1 kind: Service metadata: name: mysite-service namespace: mysite spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: mysite —- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: mysite-ingress namespace: mysite annotations: kubernetes.io/tls-acme: "true" kubernetes.io/ingress.class: "nginx" spec: tls: - hosts: # CHANGE ME - myname.com secretName: mysite-tls rules: # CHANGE ME - host: myname.com http: paths: - path: / backend: serviceName: mysite-service servicePort: 80 EOF
Oleg
конфиг nginx в ConfigMap
Alexey
конфиг nginx в ConfigMap
такая портянка, а на вопрос не отвечает) как вы в папку /etc/nginx/conf.d ещё один файл примонтируете, учитывая что он в другом конфиг-мапе. Или ещё кейс, у вас в конфиг-мапе несколько файлов, а монтировать нужно только один. Решение - использовать subPath