Nik
Не получается собрать кубы через kubeadm. [kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10255/healthz' failed with error: Get http://localhost:10255/healthz: dial tcp 127.0.0.1:10255: getsockopt: connection refused. не может достучаться до kubelet.
Nik
Делаю просто kubeadm init
Sergey
своп\иптаблес
Nik
своп выключен
Nik
sudo iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy DROP) target prot opt source destination DOCKER-USER all -- 0.0.0.0/0 0.0.0.0/0 DOCKER-ISOLATION all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain DOCKER (1 references) target prot opt source destination Chain DOCKER-ISOLATION (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-USER (1 references) target prot opt source destination RETURN all -- 0.0.0.0/0 0.0.0.0/0
Andrey
Как насчёт "посмотреть логи"?
Andrey
journalctl -u kubelet -e
Nik
там обрезки гошныл логов
Nik
failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "systemd" is different from docker cgroup driver: "cgroupfs"
Nik
последнее
Andrey
Какие параметры командной строки переданы?
Andrey
systemctl status kubelet
Andrey
cgroup driver неправильный стоит.
Nik
Process: 28612 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255)
Nik
cgroup driver неправильный стоит.
пойду посмотрю кто это вообще аткой
Andrey
пойду посмотрю кто это вообще аткой
systemctl cat kubelet Там написан будет оверрайд файл, там что-то неправильно прописано явно.
Nik
# /etc/systemd/system/kubelet.service [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=http://kubernetes.io/docs/ [Service] ExecStart=/usr/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target # /etc/systemd/system/kubelet.service.d/10-kubeadm.conf [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true" Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin" Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local" Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt" Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0" Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki" ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS
Denis
Всем привет! Подскажите можно как то в k8s открыть определенный диапозон портов у пода в спеке? чет не могу найти инфу по этому вопросу
Lucky SB
используй сервис
Andrey
# /etc/systemd/system/kubelet.service [Unit] Description=kubelet: The Kubernetes Node Agent Documentation=http://kubernetes.io/docs/ [Service] ExecStart=/usr/bin/kubelet Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target # /etc/systemd/system/kubelet.service.d/10-kubeadm.conf [Service] Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true" Environment="KUBELET_NETWORK_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin" Environment="KUBELET_DNS_ARGS=--cluster-dns=10.96.0.10 --cluster-domain=cluster.local" Environment="KUBELET_AUTHZ_ARGS=--authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt" Environment="KUBELET_CADVISOR_ARGS=--cadvisor-port=0" Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" Environment="KUBELET_CERTIFICATE_ARGS=--rotate-certificates=true --cert-dir=/var/lib/kubelet/pki" ExecStart= ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf И поправь Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" на cgroupfs. Или вообще стереть можно, вроде, он дефолтовый такой. systemctl daemon-reload systemctl restart kubelet
Nik
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf И поправь Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd" на cgroupfs. Или вообще стереть можно, вроде, он дефолтовый такой. systemctl daemon-reload systemctl restart kubelet
взлетел, но орет на сетку. Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Nik
взлетел инит
Nik
спасиб!
Andor
надо overrides править
Andrey
спасиб!
Не за что. Внимательно изучите, как все компоненты control plane взаимодействуют друг с другом. Когда ночью кластер упадёт, времени спрашивать и читать в интернете не будет.
Andrey
никогда не правь эти файлы, плохой совет
Ты ведь понимаешь, что это и есть override файл?
Mikhail [azalio]
разве?
я тоже так всегда считал, есть другие мнения да?
Andrey
Это override, но, наверное, лучше второй создать, в лексиграфическом порядке они накладываются. There are two methods of overriding vendor settings in unit files: copying the unit file from /lib/systemd/system to /etc/systemd/system and modifying the chosen settings. Alternatively, one can create a directory named unit.d/ within /etc/systemd/system and place a drop-in file name.conf there that only changes the specific settings one is interested in. Note that multiple such drop-in files are read if present, processed in lexicographic order of their filename.
Siarhei
Делал все по офф доке
перед джойном нодов надо установить любой плагин CNI, как только он поднимется (я юзаю Flannel) проерить что мастер стал ready, затем джойнить ноды.
Andrey
man systemd.unit
Denis
используй сервис
А можно плиз пример? У меня есть подозрение что k8s не поддерживает диапозоны портов
Andrey
@Andorka Его можно спокойно менять. 1. Он является systemd override'ом; 2. Он находится в списке conffiles deb пакета, поэтому при апдейте у пользователя спросит, что с этим делать, а не просто перетрётся. # cat /var/lib/dpkg/info/kubeadm.conffiles /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Andor
ок, спасибо
Andrey
хм, всегда это делал через /etc/systemd/.../чотатам.overrides.d/
В доке не вижу волшебного слова overrides в названии директорий. Я не уверен, работает ли это вообще, честно говоря.
Andor
ну в 7 центоси точно работало
Andrey
Я понял, гляну, спасибо.
Denis
используй сервис
походу непашет
Denis
https://github.com/kubernetes/kubernetes/issues/23864
Andrey
А зачем port range нужен? Как в этот под внешние сервисы ходить планируют?
Denis
А зачем port range нужен? Как в этот под внешние сервисы ходить планируют?
Там нужно FTP_PASSIVE_PORTS: 60000 60100 указать. Для этой вот цели
Andrey
Там нужно FTP_PASSIVE_PORTS: 60000 60100 указать. Для этой вот цели
Выделяйте виртуалку и делайте hostNetwork: true не вижу чистых решений.
Denis
Выделяйте виртуалку и делайте hostNetwork: true не вижу чистых решений.
А если я к примеру helm-ом буду этот сервис ставить и через range эти порты создам? у кубернетиса есть интерсено лимиты на открытые порты?
Andrey
А если я к примеру helm-ом буду этот сервис ставить и через range эти порты создам? у кубернетиса есть интерсено лимиты на открытые порты?
Думаю, с производительностью не будет проблем, 100 сервисов - это не особая проблема. Вопрос только в том, что все они разные хостнеймы будут иметь.
Mikhail [azalio]
https://www.spinnaker.io - использует кто? Норм? Или хотите съехать куда-нибудь?
Mikhail [azalio]
(думаю что использовать для CI/CD)
Eduard
(думаю что использовать для CI/CD)
Что собирать будешь и в какой вид?
Mikhail [azalio]
Что собирать будешь и в какой вид?
ну пока у меня ожидается пачка го приложений. В какой вид - не ясен вопрос.
bebebe
и не факт что потом будет приятно
Mikhail [azalio]
Код где храните?
в гите. Гитлабе.
Eduard
в гите. Гитлабе.
Тык встроенный CI
Eduard
Нафига платное облачное хрень?
Andor
autodevops кстати стейбл вроде стал
Andor
с 11 версии
Mikhail [azalio]
Тык встроенный CI
я про него знаю. Мне надо понять какие есть альтернативы.
Andor
(то есть уже целую неделю)
Mikhail [azalio]
Нафига платное облачное хрень?
Spinnaker is an open source говорят
Etki
У него хранилище должно быть в S3 или аналоге (лол)
Etki
Из интересных аналогов GoCD, и его кажется допилили до стадии нормальной автоматизации https://docs.gocd.org/current/advanced_usage/pipelines_as_code.html
Eduard
autodevops кстати стейбл вроде стал
Нифига. Он собирает один из 50 проектов
Eduard
я про него знаю. Мне надо понять какие есть альтернативы.
Просто встроенным в докер собирай, не мучай себя
Mikhail [azalio]
Просто встроенным в докер собирай, не мучай себя
что встроенным в докер? У меня есть коммит, мне надо собрать образ докера, провести его через тестинг, выложить на 1/5 например в кубер, посмотреть за мониторингом, выложить на все остальное. А если что-то пошло не так, откатить. Желательно без моего участия 🙂
Алексей
тогда хз. я недавно обновлял - пришлось руками поды убивать по одному
решение есть. Нужно доавить либо в env переменную которая будет меняться какждый раз при выкате либо нужно, чтобы при выкате имидж менялся. В общем я по первому пути пошёл - всё работает, поды перекатываются по очереди.
bebebe
У него хранилище должно быть в S3 или аналоге (лол)
можно отучить, это только на первый взгляд
Etki
minio с ограниченным функционалом?
bebebe
Spinnaker is an open source говорят
да, но нет, по факту его пилят гугл+нетфликс особо не обращая внимание на комьюнити
Mikhail [azalio]
можно отучить, это только на первый взгляд
s3 аналог не проблема для меня в принципе.
Denis
Думаю, с производительностью не будет проблем, 100 сервисов - это не особая проблема. Вопрос только в том, что все они разные хостнеймы будут иметь.
kind: Service apiVersion: v1 metadata: name: my-service spec: ports: - name: ftp1 protocol: TCP port: 6001 targetPort: 6001 - name: ftp2 protocol: TCP port: 6002 targetPort: 6002 Если же таким образом создам порты . Теоритически все должно быть ок