Maxim
во времена 1.1
Maxim
но по-моему он в итоге запылился и слился
Etki
в текущей доке есть (хотя, возможно, просто не выкинули) http://kubernetes.io/docs/user-guide/configuring-containers/#environment-variables-and-variable-expansion
Maxim
https://github.com/kubernetes/kubernetes/blob/v1.3.6/docs/design/expansion.md#in-a-pod-building-a-url
Maxim
как-то странно
Maxim
где-то евалится, а где-то нет
Михаил
я пожалуй повторю свой вопрос. Кто-то юзал OpenShift?
Denis
Denis
Михаил
Ivan
вообще k8s начинался не с OpenShift http://queue.acm.org/detail.cfm?id=2898444
Denis
Евгений в @docker_ru интересную ссылку подкинул)
Denis
Это смотрели?
https://habrahabr.ru/post/301370/
Maxim
немного трешовато
Maxim
тогда уж сразу патроны лучше брать
Maxim
https://github.com/zalando/patroni
Eugene
Насчет patroni, наткнулся тут еще на похожий инструмент:
https://github.com/sorintlab/stolon
Eugene
сам не пробовал, если что
Maxim
дада, столон еще
Maxim
спасибо
Maxim
гуглил вот его
Eugene
не за что )
Алексей
#whois
▫Какой у вас проект или где работаете?
Altoros
▫В чём вы специалист?
все, что касается инфраструктуры - специализировался на web backend, monitoring, сейчас на private PaaS (Cloud Foundry)
▫Чем можете быть интересны или полезны сообществу?
могу рассказать про PaaS в целом
▫Чем интересно сообщество вам?
послушать про k8s
▫Откуда вы?
Архангельск
▫Как узнали про группу?
от @DenisIzmaylov
Алексей
Всем привет!
Denis
Парни, без шуток, Алексей - очень крутой и однажды невероятно сильно спас меня при решении проблем с Concourse и Docker! 👍🎉💪
Denis
Алексей, познакомьтесь, кстати, с Максимом @pipopolam - он гуру Kubernetes с over 10 летним опытом (не только K8s, конечно же), человек фантастического терпения и заботы о своих коллегах. :) Я бы рассказал, как он меня спасал трое суток подряд не отходя ни минуту от чата, но это уже было бы совсем перебором. :))
Maxim
ну вот так сходу взял и спалил
Denis
I'm sorry :)
Алексей
) история чата выдаёт
Denis
Короче, Максим - человек-Kubernetes, изучивший все его исходники (кмк), просто-таки Кубернатор :))
Алексей
это замечательно!
Алексей
я тут год назад искал информацию о размере деплойментов kubernetes в production
Алексей
кто знает сейчас наибольший размер в физических машинах?
Maxim
наибольший размер чего?
Алексей
кластера Kubernetes в prod
Maxim
последняя желтизна была про две тысячи нод
Maxim
в KubeWeekly четыре выпуска назад
Алексей
это физических или виртуальных?
Maxim
а какая разница в данном контексте?
Maxim
что так две тыщи kubelet'ов, что эдак
Алексей
управляемый объем ресурсов, приложений
Maxim
виртуалки
Maxim
вот статья: https://cncf.io/news/blogs/2016/08/deploying-1000-nodes-openshift-cncf-cluster-part-1
Maxim
я попутал с недосыпу
Maxim
про две тысячи было в kubernetes.slack.com
Maxim
там на гугломощностях собирались делать
Maxim
но не знаю, сделали ли
Алексей
а, знаю этот кластер
Алексей
там Intel отдал 1к железных серверов cncf для тестов
Maxim
https://github.com/kubernetes/kubernetes/pull/31622
Maxim
феликса прессуют
Maxim
xiang90 прибежал, как обычно
M
а claimRef: работает у кого-нибудь?
M
или кто как привязывает pvс к pv ?
Maxim
А в чем проблема с клеймами?
M
ну как конкретному pvc указать юзать конкретный pv
M
я сейчас попробовал claimref и у меня pvc висят в pending
M
cat ./storagemaster/pv*.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: masterstor
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
claimRef:
namespace: master
name: masterstor
nfs:
path: /srv/masterstor
server: 10.100.60.42
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: masterstor
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
Maxim
Так не там указал-то
M
kubectl get pv |grep master
masterstor 10Gi RWX Released master/masterstor 15m
M
а pvc в master в pending
M
а что не указал?
Maxim
```kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: data-redis-0
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
app: redis```
Maxim
Selector
Maxim
Он должен с лейблом pv совпасть
Maxim
>
Maxim
```apiVersion: v1
kind: PersistentVolume
metadata:
name: redis
labels:
app: redis
...```
M
пасиб, попробую через лейбл
M
error validating "./storagetest/pvc.yaml": error validating data: found invalid field selector for v1.PersistentVolumeClaimSpec
M
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: teststor
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
selector:
matchLabels:
app: teststor
M
это у меня 1.2.4 селекторы не поддерживает или я туплю где-то?
Maxim
чот вроде все ок
Maxim
в 1.2 работало
Maxim
@exename
$ kubectl get pvc --namespace=bots -o jsonpath='{.items[0].spec.selector}'
map[matchLabels:map[app:redis]]%
Maxim
но сейчас в 1.3 формат немного другой
Maxim
а хотя не
Maxim
все так же
Maxim
$ kubectl get pvc --namespace=bots data-redis-0 -o jsonpath='{.spec.selector}'
matchLabels:<key:"app" value:"redis" > %
Михаил
так, мб тут всё таки появились ковырявшие OpenShift? или хотя бы объясните мне суть ClusterIP в kubernates
Maxim
суть ClusterIP в kubernetes очень проста
у тебя есть поды и сервисы
поды "настоящие", они оседают на routable-адресах, которые выдает CNI, или фланель, или докер демон, запущенный с --networking
а сервисы - "эфемерные", они гребут адреса из рейнджа, который выдает аписервер ключем --service-cluster-ip-range
и вот эти адреса не терминируются вообоще нигде, у них нет "физического" воплощения
весь роутинг этих адресов ложится на плечи iptables и внешнего лоад-балансера (если ты в амазоне или gce)