Andrey
Andrey
такое "немного магии", конечно возможно. Но последний раз такие эксплойты были много лет назад вроде.
Andrey
нужен fakeroot, вобщем, а в баге они собрались ждать поддержки userns
Andrey
а dind тоже рута просит?
quaternion
привилегированного режима просит
Vlad
dind просит priveleged
Andrey
это ещё хуже тогда
Andrey
Я раньше не задумывался над такими вещами, привык, что в openvz/virtuozzo для контейнеров всё очень секурно (я знаю там только один такой баг, остальное больше DOS атаки).
Andrey
Да и большинство образов, которые я на hub.docker.com видел, от рута работают
Andrey
По дизайну - нет
Dmytro
зависит от точки зрения
Andrey
если бы изоляция контейнера не подразумевалась в дизайне докера, то нахер он нужен и чем он лучше простого chroot?
Pavel
Denis
Подскажите, как можно отдебажить контейнер, если он вести в статусе CrashLoopBackOff ?
Vitaly
kubectl logs и kubectl describe используйте, с ними ситуация яснее станет.
Mikhail [azalio]
Denis
Denis
Народ а у вас к8с кластер живет в отдельном VPC ?если да, то почему?
Anonymous
ху из VPC?
Denis
AWS VPC =)
Andrey
Нужно ли использовать разные кластеры для дев и прод? Или можно на одном в разных пространствах имён?
Stas
Anonymous
Alexander
да, ставил из
helm fetch gitlab/gitlab-omnibus --version 0.1.37 --untar
Andrey
Andrey
Впрочем в интернете похоже много есть на эту тему, буду читать
Andrey
Alexander
гитлаб на 8005 порту слушает? Подозрительно
ставил из
helm fetch gitlab/gitlab-omnibus --version 0.1.37 --untar
и затем менял в gitlab-omnibus/templates/gitlab/gitlab-svc.yaml
- name: web
port: 80
targetPort: workhorse
Anonymous
тогда и раннере нужно поменять порт гитлаба. Он у него в configMaps указывается
Alexander
тогда и раннере нужно поменять порт гитлаба. Он у него в configMaps указывается
спасибо,
вот только не пойму куда тут порт прописать
bash-3.2# cat gitlab-omnibus/charts/gitlab-runner/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "fullname" . }}
labels:
app: {{ template "fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
data:
entrypoint: |
#!/bin/bash
set -xe
cp /scripts/config.toml /etc/gitlab-runner/
# Register the runner
/entrypoint register --non-interactive \
--executor kubernetes \
{{- range .Values.runners.imagePullSecrets }}
--kubernetes-image-pull-secrets {{ . | quote }} \
{{- end }}
# Start the runner
/entrypoint run --user=gitlab-runner \
--working-directory=/home/gitlab-runner
config.toml: |
concurrent = {{ .Values.concurrent }}
check_interval = {{ .Values.checkInterval }}
Anonymous
config.toml: |
concurrent = {{ .Values.concurrent }}
check_interval = {{ .Values.checkInterval }}
Anonymous
вот здесь похоже
Anonymous
там чёто типа coordinatorUrl
Andrey
Anonymous
Anton
Andrey
Andrey
а deployment? там порт объявлен? Напрямую к поду по ip пробовал подключаться, может, не в сервисе дело?
Anton
Anton
Andrey
то есть как?
Andrey
сравните с тем же dns'ом
Anton
у меня проблема не в том, что сервис недоступен, а в том что я не могу его сделать одновременно доступным и по TCP и по UDP. Одна из подсекций секции ports (которая ниже) всегда пропадает после kubectl apply
Anton
то есть вот применяю я тот манифест, что скинул, а на выходе только:
- name: s-tcp
port: 5201
protocol: TCP
targetPort: 5201
Anton
если поменяю блоки местами (перенесу UDP выше), то останется только UDP блок
Andrey
а что пишет kubectl apply?
Andrey
как запускаешь? всё подряд или только сервис?
Anonymous
да вот же
https://github.com/kubernetes/kubernetes/issues/2995
Anton
он пишет, что все хорошо. В общем, я разобрался. Я делал не совсем так, как я описывал. Я редактировал через kubectl edit svc <service name>, и добавлял вручную второй блок. Он не сохранялся. А сейчас я действительно попробовал применить через apply, и все заработало.
Anonymous
И чё прям работает по обоим протоколам?
Anton
теперь я вижу:
s ClusterIP 10.8.241.181 <none> 5201/TCP,5201/UDP
Anton
работает по обоим, да
Anonymous
странно, потомучто в интернетах везде пишут, что это невозможно)
Anton
я тестирую через iperf, в одном поде у меня iperf3 -s, во втором iperf3 -uc s
Anton
то есть второй говорит, шли хосту "s" udp пакеты. но фишка в том, что они сначала договариваются по TCP о чем-то
Anonymous
может поэтому и работает?
Anton
если создать только TCP или только UDP сервис, то "iperf3 -uc" ("u" means UDP) не работает
Anton
"iperf -c" (TCP default) работает если сервис TCP, но не работает если UDP
Anonymous
т.е. работает только iperf по TCP?
Anton
еще раз:
1. iperf3 -c <host> слать хосту TCP пакеты
2. iperf3 -uc <host> слать хосту UDP пакеты
1 — работает если сервис TCP
2 — работает если сервис и TCP и UDP
Anton
причина того, что -uc работает только при условии, что TCP тоже доступен в том, что изначально клиент с сервером о чем-то договариваются по TCP и только потом клиент начинает слать UDP пакеты. Если договоренность по TCP не состоялась, клиент даже не пытается слать UDP
Anton
ну, кстати, может есть какие-то флаги, чтобы заставить
Anton
а вот с LoadBalancer на GKE не прокатило:
cannot create an external load balancer with mix protocols
Anonymous
sudo nmap -p <port> -sU <host>
Anonymous
может он не будет договариваться по tcp и тоже пошлёт)
Alexander
попробуй заэкзекьются в под с раннером и выполни “gitlab-runner register”
не выходит
bash-3.2# kubectl get pods
...
gitlab-gitlab-764bd7665-4hcxr 0/1 Running 10 51m
gitlab-gitlab-runner-f7c85548-sdsqz 0/1 CrashLoopBackOff 13 51m
...
kubectl exec -it gitlab-gitlab-runner-f7c85548-sdsqz /bin/bash
error: unable to upgrade connection: container not found ("gitlab-gitlab-runner")
если смотреть в дашборде, то такой лог у раннера
+ cp /scripts/config.toml /etc/gitlab-runner/
+ /entrypoint register --non-interactive --executor kubernetes
Running in system-mode.
ERROR: Registering runner... failed runner=tQtCbx5U status=couldn't execute POST against http://gitlab-gitlab.default:8005/api/v4/runners: Post http://gitlab-gitlab.default:8005/api/v4/runners: dial tcp 10.233.20.115:8005: i/o timeout
PANIC: Failed to register this runner. Perhaps you are having network problems
сам же gitlab пишет
Unable to mount volumes for pod "gitlab-gitlab-764bd7665-4hcxr_default(05537fb9-423c-11e8-898a-3ebe3629b41e)": timeout expired waiting for volumes to attach/mount for pod "default"/"gitlab-gitlab-764bd7665-4hcxr". list of unattached/unmounted volumes=[registry config]
Readiness probe failed: Get http://10.233.95.11:8005/health_check?token=SXBAQichEJasbtDSygrD: dial tcp 10.233.95.11:8005: getsockopt: connection refused
Back-off restarting failed container
как быть?(
Andrey
Где кубернетс развернут, какая сетка используется?