Andrey
Лепнинка ниче такая)
Andor
ну или может ваще не в файл сохранять? всякие там dynamodb например
Andor
или ваще s3
Andrey
вот именно, кто придумал хранить стейт на фс ? разработчики гуевых приложух для винды ?
Andor
ну или может ваще не в файл сохранять? всякие там dynamodb например
Anton
бери гигабайт и не парь мозг, всё равно в gp2 меньше гигабайта нельзя взять
хотелось еще не быть привязанным к амазону, чтобы один манифест мог деплоить в разные кластера
Andor
или ваще s3
Andor
ну s3 почти везде есть
Andor
его очень много кто поддерживает
Anton
это довольно неприятное ограничение на случай если s3 не оказалось
Andor
тогда и будете решать
Anton
"тогда" уже наступило
Andor
ну а pv у вас на чём?
Andor
тот же ceph умеет же притворятся s3
Anton
пв можно в любой момент подключить к чему угодно и это не повлечет изменений в приложении
Andor
ну блин сделайте под ваши реалии, зачем придумывать что-то ещё?
Andor
может тупо в бд класть, если он несколько килобайт?
Andor
у вас же есть бд?
Andrey
в любой базе, некоторые даже в ampq хранят
Anton
у вас же есть бд?
нет, какая бд :) там нужно хранить несколько чисел
Anton
мои реалии это маленький текстовый файлик и 8 строк кода на его чтение и запись
Andor
любая бд
Anton
поэтому если кто-то потом там увидит бд или s3 то умрет от смеха и напишет, чтобы винили во всем меня
Andor
файлик в данном случае - тоже бд
Andor
ну и конечно надо понимать насколько критична потеря этого файлика
Andor
если не сильно - то и забей
Alexander
При изучение kubernetes столкнулся со следующим Когда создаю под с приватным образом все взлетает ок а если запускаю DeamonSet c приватным образом то кубернетес не может забрать его из регистру. кубернетес 1.9.3
Alexander
Вот про неймспейс похоже в точку. DemonSet в kybe-system а secret в default ушел пробовать
Denis
Ребят подскажите пожалуйста, как правильно организовать взаимодействие сервисов через доменное имя, хочу на выходе внутри пода иметь доступ к example.com, который ведет на опреденный под(сервис) в докере реализовывается с помощью алиасов: networks: net: aliases: - consul - consul.$DOMAIN networks: net: driver: bridge подскажите как это сделать в кубе?
Dmitrii
https://kubernetes.io/docs/concepts/services-networking/service/
Denis
а можно пример? как это делается через сервис?
Anton
для своих приложений делаешь сервис с селектором, котоырй выберет нужные поды по лейблам
Denis
если речь идет про externalNAME, то мне нужен что то вроде internalNAME
Anton
из других приложений тычишь в этот сервис
Anton
придется ознакомится с документаций, ссылку нужную дали
Denis
да имеено так и делаю но заходя внутрь пода я не могу обратится к сервису, пример apiVersion: v1 kind: Service metadata: annotations: kompose.cmd: kompose convert kompose.version: 1.7.0 (HEAD) creationTimestamp: null labels: io.kompose.service: consul name: consul namespace: sso spec: ports: - name: "consul" protocol: TCP port: 8500 targetPort: 8500 type: ExternalName externalName: consul type: NodePort selector: io.kompose.service: consul externalIPs: ["10.226.212.165"] externalName: consul status: loadBalancer: {} он стартует, делает связку со своим нужным подом, но из другого пода обращася к имени consul я не вижу его
Anton
в том же namespace?
Denis
да
Denis
пинг по ip есть
Anton
type: ExternalName не то
Anton
второй сервис же внутри
Maksim
у него вообще два раза type
Maksim
и externalName что-то странное
Maksim
это kompose посторался?
Denis
не уже я пробовал
Anton
type: ClusterIP и правильный selector
Vladyslav
и externalName что-то странное
Не странное, но с nodePort врядли работает
Andor
"пробывал"
Andor
вы реально так это слово произносите?
Maksim
apiVersion: v1 kind: Service metadata: annotations: kompose.cmd: kompose convert kompose.version: 1.7.0 (HEAD) creationTimestamp: null labels: io.kompose.service: consul name: consul namespace: sso spec: ports: - name: "consul" protocol: TCP port: 8500 targetPort: 8500 type: NodePort selector: io.kompose.service: consul status: loadBalancer: {}
Maksim
Это всё что нужно
Anton
kind: Service apiVersion: v1 metadata: name: my-service spec: selector: app: MyApp ports: - name: http protocol: TCP port: 80 targetPort: 9376 - name: https protocol: TCP port: 443 targetPort: 9377 пример по ссылке. type по умолчанию clusterip
Denis
ок, спасибо
Maksim
Ну да) externalName это от headless CNAME сервиса
Maksim
Я выше выложил сервис, должен работать (убрал всё лишнее)
Maksim
NodePort отличается от ClusterIP тем, что на всез нодах, где есть kube-proxy будет настроен проброс рандомного порта в под
Maksim
днс работает?
Maksim
и как ты проверяшь?
Denis
[dlozhkin@dev-kbr01 ForgeRockSSO]$ kubectl get service -n sso NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE bootstrap ClusterIP None <none> 55555/TCP 1m consul NodePort 10.102.125.25 <none> 8500:32011/TCP 1m frontend NodePort 10.105.20.185 10.226.212.165 80:32676/TCP,443:30288/TCP 1m openam ClusterIP 10.97.91.77 <none> 8080/TCP,8443/TCP 1m
Anton
вообще нафига консул внутри к8с? =)
Denis
там переменные хранятся
Anton
в его key:value? только за этим он притянут?
Maksim
а где kube-dns?
Denis
есть все работает
Maksim
дай kube-system
Maksim
и сделай в него nslookup consul.sso.svc.cluster.local
Maksim
и конфиг кублета
Denis
NAME READY STATUS RESTARTS AGE IP etcd-dev-kbr01.mgts.corp.net 1/1 Running 0 5d 10.226.212.117 kube-apiserver-dev-kbr01.mgts.corp.net 1/1 Running 0 5d 10.226.212.117 kube-controller-manager-dev-kbr01.mgts.corp.net 1/1 Running 0 5d 10.226.212.117 kube-dns-6f4fd4bdf-25hlm 3/3 Running 0 5d 10.244.0.184 kube-flannel-ds-4bntd 2/2 Running 0 5d 10.226.212.117 kube-flannel-ds-6znwh 2/2 Running 0 5d 10.226.212.165 kube-proxy-d9kdk 1/1 Running 0 5d 10.226.212.165 kube-proxy-l4bgq 1/1 Running 0 5d 10.226.212.117 kube-scheduler-dev-kbr01.mgts.corp.net 1/1 Running 0 5d 10.226.212.117 kubernetes-dashboard-84d9c99896-5bbrt 1/1 Running 0 5d 10.244.0.183
Maksim
А сервис где?
Denis
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 5d kubernetes-dashboard NodePort 10.105.136.228 10.226.212.117 443:30579/TCP 5d
Maksim
конфу сетей..
Denis
cat flannel-rbac.yaml # Create the clusterrole and clusterrolebinding: # $ kubectl create -f kube-flannel-rbac.yml # Create the pod using the same namespace used by the flannel serviceaccount: # $ kubectl create --namespace kube-system -f kube-flannel.yml --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: flannel rules: - apiGroups: - "" resources: - pods verbs: - get - apiGroups: - "" resources: - nodes verbs: - list - update - watch --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: flannel roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: flannel subjects: - kind: ServiceAccount name: flannel namespace: kube-system
Maksim
это не то
Maksim
нужно конфа сетей. что ты используешься для сервисов