Andrey
Лепнинка ниче такая)
Andor
Andor
ну или может ваще не в файл сохранять? всякие там dynamodb например
Andor
или ваще s3
Andrey
вот именно, кто придумал хранить стейт на фс ? разработчики гуевых приложух для винды ?
Anton
Andor
ну или может ваще не в файл сохранять? всякие там dynamodb например
Andor
или ваще s3
Andor
ну s3 почти везде есть
Andor
его очень много кто поддерживает
Anton
это довольно неприятное ограничение на случай если s3 не оказалось
Andor
тогда и будете решать
Anton
"тогда" уже наступило
Andor
ну а pv у вас на чём?
Andor
тот же ceph умеет же притворятся s3
Anton
пв можно в любой момент подключить к чему угодно и это не повлечет изменений в приложении
Andor
ну блин сделайте под ваши реалии, зачем придумывать что-то ещё?
Andor
может тупо в бд класть, если он несколько килобайт?
Andor
у вас же есть бд?
Andrey
в любой базе, некоторые даже в ampq хранят
Anton
мои реалии это маленький текстовый файлик и 8 строк кода на его чтение и запись
Andor
любая бд
Anton
поэтому если кто-то потом там увидит бд или s3 то умрет от смеха и напишет, чтобы винили во всем меня
Andor
файлик в данном случае - тоже бд
Andor
ну и конечно надо понимать насколько критична потеря этого файлика
Andor
если не сильно - то и забей
Alexander
При изучение kubernetes столкнулся со следующим
Когда создаю под с приватным образом все взлетает ок
а если запускаю DeamonSet c приватным образом то кубернетес не может забрать его из регистру.
кубернетес 1.9.3
Dmitry
Alexey
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
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 будет настроен проброс рандомного порта в под
Denis
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
нужно конфа сетей. что ты используешься для сервисов