кубера в хетснере на дедиках, а там связь в кластере по всвичу(такая услуга которая даёт связь по влану)?
Я тут просто испытываю переодические боли из-за потери связи, качество канала что-то испортилось. Хотел поинтересоваться у всех ли так?
У меня такой, но он свежий, я в него потихоньку мигрирую дерьмо со старого кубера с другого ДЦ, и в нем кроме кафки пока ниче нет. Пока вроде ничего не отрыгивало
у тебя etcd внешний?
Свой, kubeadm-овский
k get pod -A -owide | grep apiserver апи сервер не рестартится переодически от потери связи?
а мастеров у тебя сколько?
У всех такая история кто в хетснере кластер крутит
значит они засранцы)
3 мастера, рестарты есть, но это было при инициализации кластера
# k get pod -A -owide | grep apiserver kube-system kube-apiserver-master136 1/1 Running 1 (60m ago) 4d22h 10.0.179.136 master136 <none> <none> kube-system kube-apiserver-master137 1/1 Running 4 (39m ago) 2d15h 10.0.179.137 master137 <none> <none> я про вот эти рестарты
Я про них же. Пижжу, есть какие-то приколы оказывается. Цилиум контроллер рестартится иногда из-за недоступности аписервера. Бле, по ходу говна мы там поедим. Хорошо, что это не продукшон
я вот уже ем)), сейчас переделываю систему балансировки между апи серверами, они у меня хоть не одновременно рестартятся, значит наверное прокатит))
Я все куболеты на локальный nginx посадил
хапрокси же лучше, там проверки можно делать), в nginx или мутить сторонний модуль или платный
А какие проверки мы хотим от аписервера? Мне достаточно tcp check-а
хер там, хапрокся не видит потери tcp например при рестарте апи option httpchk GET /healthz http-check expect status 200
ну я кароч не стал мудрить и спер прям с кубоспрея: $ cat /etc/nginx/nginx.conf user nginx; pid /run/nginx.pid; error_log stderr notice; worker_processes 2; worker_rlimit_nofile 130048; worker_shutdown_timeout 10s; events { multi_accept on; use epoll; worker_connections 16384; } stream { upstream k8s_apiservers { least_conn; server 10.90.10.1:6443; server 10.90.10.2:6443; server 10.90.10.3:6443; } server { listen 127.0.0.1:6445; proxy_pass k8s_apiservers; proxy_connect_timeout 1s; proxy_timeout 24h; } }
это более убогий вариант чем у меня
global user haproxy group haproxy defaults mode http log global retries 2 timeout connect 300000ms timeout server 300000ms timeout client 300000ms frontend kubernetes bind 127.0.0.1:6443 option tcplog mode tcp default_backend kubernetes-master-nodes backend kubernetes-master-nodes mode tcp balance source option tcp-check option httpchk GET /healthz http-check expect status 200 default-server inter 10s downinter 5s rise 2 fall 1 server master136 10.0.179.136:6443 check fall 1 rise 2 server master137 10.0.179.137:6443 check fall 1 rise 2
между регионами? я просто vswtich не юзаю, всё поверх внешних адресов =)
раньше было даже между странами, но Германия достала лагать, сейчас полностью в Финляндии, там все кроме одной ноды в одном DC, но даже между нодами одного DC бывают обрывы, права сильно реже
я стараюсь внешко не использовать, вопервых нет бродкаста и мультикаста со всеми вытекающими, во вторых не люблю высовывать во внешку то что и по локалке пашет)
а пробовал сравнивать это именно внутрянка сбоит?
да, это именно всвич гад, но не всегда, иногда это сопровождается с косяками и внешней сети
а это между разными регионами? Или бывает внутри одного тоже?
Чаще между разными DC, но вот буквально сегодня был косяк в пределах одного DC
там есть и haproxy в кубспреи
ты забыл, что у тебя не платный nginx
не забыл. а к чему ты это?
я сейчас попробовал вот такой таймаут внедрить default-server inter 80ms downinter 1s rise 2 fall 1 А сколько у тебя в кубспрее стоит?
к этому https://habr-com.cdn.ampproject.org/c/s/habr.com/ru/amp/publications/769394/ еще один человек открыл глаза
ты мне льстишь (хотя с другой стороны это можно за оскорбление принять ^_^ ), кубспрей не мой и там совсем примитивно . Сейчас попробую найти
ну ты меня понял))
не видел в кубспреи энвоя , хотя я не искал
apiVersion: v1 kind: Pod metadata: name: {{ loadbalancer_apiserver_pod_name }} namespace: kube-system labels: addonmanager.kubernetes.io/mode: Reconcile k8s-app: kube-haproxy annotations: haproxy-cfg-checksum: "{{ haproxy_stat.stat.checksum }}" spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet nodeSelector: kubernetes.io/os: linux priorityClassName: system-node-critical containers: - name: haproxy image: {{ haproxy_image_repo }}:{{ haproxy_image_tag }} imagePullPolicy: {{ k8s_image_pull_policy }} resources: requests: cpu: {{ loadbalancer_apiserver_cpu_requests }} memory: {{ loadbalancer_apiserver_memory_requests }} {% if loadbalancer_apiserver_healthcheck_port is defined -%} livenessProbe: httpGet: path: /healthz port: {{ loadbalancer_apiserver_healthcheck_port }} readinessProbe: httpGet: path: /healthz port: {{ loadbalancer_apiserver_healthcheck_port }} {% endif -%} volumeMounts: - mountPath: /usr/local/etc/haproxy/ name: etc-haproxy readOnly: true volumes: - name: etc-haproxy hostPath: path: {{ haproxy_config_dir }} https://github.com/kubernetes-sigs/kubespray/blob/release-2.23/roles/kubernetes/node/templates/manifests/haproxy.manifest.j2
Почитаю, интересно
kubernetes.auth.basic.password
Промазал 😁
Ой, извиняюсь
Обсуждают сегодня