66271
01.11.2017
10:50:14
убрал flannel, оставил дефолтовый calico - все взлетело
Maksim
01.11.2017
10:50:51
А с каких пор calico дефолтовый? Оо
66271
01.11.2017
10:52:17
у kubespray
Maksim
01.11.2017
10:52:23
ммм
Google
Maksim
01.11.2017
10:52:40
вот по этому я и не люблю все эти кубеадм и кубеспреи
66271
01.11.2017
10:53:21
все ручками на баш скриптах ?
Maksim
01.11.2017
10:54:45
почему?
Paul
01.11.2017
11:26:03
почему?
а какой сейчас вариант развертывания куба – основной?
66271
01.11.2017
11:27:39
on google container engine
Maksim
01.11.2017
11:29:10
Разве?
Каждый делает так как он хочет, и считает нужным
моё мнение что кубеадм и куберспрей ограничивают тебя и убирают гибкость системы
Я разворачиваю ансиблём
вернее да же контралирую
ещё есть ironcon puppet и еже с ними
Это unix way
делай так как считаешь правильным и привычным
Google
Oleg
01.11.2017
11:30:55
Anton
01.11.2017
11:33:39
По идее с калико поверх L3 все должно работать с включённым ipip
Alexandr
01.11.2017
12:01:14
Доброго времени суток, кто трогал envoy для трассировки приложений??
Владимир Калинин
01.11.2017
17:20:06
А как можно новую ноду в кластере сделать основной? что бы на нее переехали аписервер, шедулер и т д?
Mikhail
01.11.2017
17:54:32
Поднять там апи шедулер контроллер
Изменить у кубелетов адрес апи
Проверить
Погасить старый
Denis
01.11.2017
22:17:20
Karey
01.11.2017
22:24:22
Вряд ли) Но может кто не смотрел - https://www.youtube.com/watch?v=YkOY7DgXKyw
Artemiy
02.11.2017
05:09:43
Ребят, привет, вы как редис в кубе кластеризовали? santinel ?
Eugene
02.11.2017
05:45:26
Ignite
Artemiy
02.11.2017
05:47:10
никаких проблем с подключением ? он полностью совместим на уровне апи?
Eugene
02.11.2017
05:47:23
Неа
Но и sentinel не совместим с редисом, если об этом был вопрос
Artemiy
02.11.2017
05:50:20
есть ли какие-то прокси решения? типа с прокси клиент работает как с обычным редисом, а он там сам уже роутит на мастера текущего запросы? и промоутит слейвы при фэйле?
не хотелось бы сервисы переписывать
Eugene
02.11.2017
05:51:57
Есть dynomite от netflix(shared nothing) и codis
Но они не все запросы поддерживают
Artemiy
02.11.2017
05:54:13
спасибо большое, посмотрю
Google
Eugene
02.11.2017
05:54:54
Но если сессии хранить и как мемкеш юзать то ignite самое простое решение
Artemiy
02.11.2017
05:55:44
ещё такой вопрос, если redis-cluster использовать. там же 3 мастера минимум. и ключи по слотам на разные мастера распихиваются. будут ли работать у клиентов запросы типа получения всех ключей? или нужна на стороне клиента поддержка redis-cluster?
Zloy Dobriy
02.11.2017
06:38:56
З мастра? Редиса. Норм.
Antony
02.11.2017
06:43:50
Artemiy
02.11.2017
07:27:07
спасибо ?
Andrey
02.11.2017
07:29:48
Есть редис кластер. у которого есть и sentinel и обычный сервис, который всегда смотрит на мастера и еще сервис. который всегда смотрит на слейвы. Взаимодействуя с kubernetes api вешает и читает лейблы. НО! Там жуткий косяк со сменой мастера и мы сейчас переписываем логику sidecar контейнера. (Уже переделали с kubectl на curl) - так как kubectl выжирал много проца, когда много веток.
Alexandr
02.11.2017
07:37:36
Andrey
02.11.2017
07:44:44
к сожалению, мы не занимаемся разработкой, а инфраструктурой и клиенту нужен именно редис :)
Nick
02.11.2017
08:32:58
Pavel
02.11.2017
08:40:16
Алексей
02.11.2017
08:47:42
Anton
02.11.2017
09:11:16
такой вопрос по helm возник.
допустим я хочу переиспользовать описание одного контейнера в куче деплойментов разных приложения и поддерживать описание этого контейнера в одном месте.
и не вижу чет простого варианта как я могу везде просунуть свой контейнер в поды
можно делать helm fetch из своего репо в charts/ и потом использовать include. но нужно следить самому за обновлениями своего репо
Mikhail
02.11.2017
09:39:58
я правильно понимаю что через kubectl нельзя получить всех мастеров в кластере?
Anton
02.11.2017
09:41:15
через label?
Vitaliy
02.11.2017
10:03:48
Rustam
02.11.2017
10:08:44
ну или kubectl get no -l "kubernetes.io/role=master"
Mikhail
02.11.2017
10:09:26
Rustam
02.11.2017
10:09:47
ну значит надо проставить лейблы вручную
Google
Mikhail
02.11.2017
10:10:29
это ясно, что я могу вручную все сделать )
хотелось kubectl get masters )
Айбелив
02.11.2017
10:14:57
Vitaliy
02.11.2017
12:43:04
подскажите, а вообще есть способ в деплойменте смонтировать несколько ресурсов в один каталог? к примеру configmap + secret. конечно файлы не будут пересекаться
Maksim
02.11.2017
12:44:18
через subPath
но если файлов много, то задача не из простых
Vitaliy
02.11.2017
12:46:32
это создает каталог. а хотелось бы в одном каталоге файлы из разных ресурсов
/dir/secret.file
/dir/configmap.file
Maksim
02.11.2017
12:47:55
можно и отдельные файлы через subPath
указывай как mountpint и subpath файло, и он будет монтировать файл в файл
Alexey
02.11.2017
12:49:32
Виталий, типа такого тебе нужно:
volumeMounts:
- name: config-volume
mountPath: /etc/haproxy/haproxy.cfg
subPath: haproxy.cfg
монтирует отдельные файлы
Vitaliy
02.11.2017
12:55:18
ок, тестирую. огромное спасибо
работает.
Oleg
02.11.2017
12:58:40
подскажите, а вообще есть способ в деплойменте смонтировать несколько ресурсов в один каталог? к примеру 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
конфиг nginx в ConfigMap
Alexey
02.11.2017
13:09:22
конфиг nginx в ConfigMap
такая портянка, а на вопрос не отвечает)
как вы в папку /etc/nginx/conf.d ещё один файл примонтируете, учитывая что он в другом конфиг-мапе.
Или ещё кейс, у вас в конфиг-мапе несколько файлов, а монтировать нужно только один.
Решение - использовать subPath
Anton
02.11.2017
13:10:58
но если файлов много, то задача не из простых
в helm кстати как то так делаю в deployment
volumes:
- name: projected-config-mount
projected:
sources:
- configMap:
name: {{ .Release.Name }}-static
{{- range $path, $bytes := .Files.Glob "ssl/*" }}
- secret:
name: {{ $root.Release.Name }}-ssl
items:
- key: {{ $path | base }}
path: {{ $path }}
{{- end }}
{{- range $path, $bytes := .Files.Glob "static/some/*" }}
- configMap:
name: {{ $root.Release.Name }}-static-some
items:
- key: {{ $path | base }}
path: some/{{ $path | base }}
{{- end }}
и аналогично набиваю configmap \ secret
сколько бы много файлов не было, уже не моя забота становится
Maksim
02.11.2017
13:11:35
Вопрос как смонтировать и секрет и конфиг в Одну папку
Google
Anton
02.11.2017
13:11:41
и можно подкидывать файлы, если вдруг
Maksim
02.11.2017
13:11:45
твой шаблон нифига не отвечает)
Anton
02.11.2017
13:11:52
отвечает ;)
описание projected volume же
Maksim
02.11.2017
13:12:30
и как они встанут в один моунт поинт?
Anton
02.11.2017
13:12:47
уже встали с этим описанием
Maksim
02.11.2017
13:13:05
плкажи mountPath
Anton
02.11.2017
13:14:32
spec:
containers:
- name: some
volumeMounts:
- name: projected-config-mount
mountPath: {{ .Values.nginx.configPath }}
readOnly: false
https://kubernetes.io/docs/concepts/storage/volumes/#projected
Paul
02.11.2017
13:15:40
коллеги, я правильно понимаю, что сайдкар имеет доступ к диску основного контейнера? или нет?
Alexey
02.11.2017
13:23:45
Paul
02.11.2017
13:24:11
ceph можно монтировать в оба контейнера, я правильно помню?
Alexey
02.11.2017
13:26:15
цеф можно монтировать кому угодно
Artemiy
02.11.2017
13:37:52
Помимо цефа read write many что поддерживает?
В гугл облаке их диски только readwriteonce поддерживают, думаю как обойти
Vitaliy
02.11.2017
13:39:36
NFS:)
Maksim
02.11.2017
13:41:07