Aleksandr
может кто-то обладает даром ясновидения и знает что я упускаю? =)
Andor
tcpdump?
Dmitrii
Ребята, а как в Kubertenes организуется аггрегация логов? Есть готовые механизмы? Или может быть рецепты для сращивания с ELK?
Sergey
можно и fluentd гугол в помощь
Nikolay
Ребята, а как в Kubertenes организуется аггрегация логов? Есть готовые механизмы? Или может быть рецепты для сращивания с ELK?
Советую filebeat, можно как daemonset прикрутить, можно на хосты. Можно side-car для нужных подов.
Dmitrii
Советую filebeat, можно как daemonset прикрутить, можно на хосты. Можно side-car для нужных подов.
Спасибо. Главное, что надо было понять — что в кубере нет этого "из коробки". Сам ELK у меня уже поднят и работает — значит, буду прикручивать к нему. Спасибо.
Nikolay
Спасибо. Главное, что надо было понять — что в кубере нет этого "из коробки". Сам ELK у меня уже поднят и работает — значит, буду прикручивать к нему. Спасибо.
Есть два важных момента: - можно только нужных контейнеров логи забирать, указывая path с регэкспом. - второе, нужно не забыть про symlinks:true , потому что в /var/log/containers симлинки)
Lex
привет, поднял тестовый стенд, но kube-proxy не может вытащить данные для работы, вот что в логах на всех kube-proxy: E0421 17:17:12.577220 1 reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:86: Failed to list *core.Service: Unauthorized E0421 17:17:12.577624 1 reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:86: Failed to list *core.Endpoints: Unauthorized
Lex
кто знает как победить?
Lex
сервис аккаунта не было, создал, ща буду посмотреть
Lex
все то же самое
Lex
при попытке применить этот yaml выдает: error: error validating "addons/kube-proxy-rbac.yaml": error validating data: [ValidationError(ClusterRoleBinding): unknown field "apiGroup" in io.k8s.api.rbac.v1beta1.ClusterRoleBinding, ValidationError(ClusterRoleBinding.roleRef): missing required field "apiGroup" in io.k8s.api.rbac.v1beta1.RoleRef]; if you choose to ignore these errors, turn validation off with —validate=false
Andor
Это на какой версии?
Sergey
а откуда куда данные хотите вытаскивать
Lex
1.10.1
Lex
хм, применил еще раз и применилось
Lex
но прокси так и не работает
Lex
:(
Lex
ща перегенерю сертификаты, кажется нашел, у меня для kube-proxy в сертификате common_name=system:kube-proxy
Lex
попробую с common_name=kube-system:kube-proxy
Lex
есть еще вот такой вот биндинг, его разве не достаточно? $ kubectl get clusterrolebindings system:node-proxier -o yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: annotations: rbac.authorization.kubernetes.io/autoupdate: "true" creationTimestamp: 2018-04-20T20:23:23Z labels: kubernetes.io/bootstrapping: rbac-defaults name: system:node-proxier resourceVersion: "96" selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/system%3Anode-proxier uid: acc5fed4-44d8-11e8-9b2e-12f98ec592fa roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: system:node-proxier subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: system:kube-proxy
Mikhail [azalio]
а запускаете вы как kube-proxy?
Lex
как статик pod: apiVersion: v1 kind: Pod metadata: name: kube-proxy namespace: kube-system spec: hostNetwork: true containers: - name: kube-proxy image: gcr.io/google-containers/hyperkube-amd64:{{ k8s_hyperkube_tag }} command: - /hyperkube - proxy - --cluster-cidr={{ k8s_cluster_cidr }} - --hostname-override={{ ansible_fqdn }} - --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig - -v=2 securityContext: privileged: true volumeMounts: - mountPath: /etc/kubernetes/kube-proxy.kubeconfig name: kube-proxy-kubeconfig readOnly: true - mountPath: /etc/kubernetes/ssl name: kubernetes-ssl readOnly: true - mountPath: /etc/ssl/certs name: etc-ssl-certs readOnly: true - mountPath: /usr/share/ca-certificates name: usr-share-certs readOnly: true volumes: - hostPath: path: /etc/kubernetes/kube-proxy.kubeconfig name: kube-proxy-kubeconfig - hostPath: path: /etc/kubernetes/ssl name: kubernetes-ssl - hostPath: path: /etc/ssl/certs name: etc-ssl-certs - hostPath: path: /usr/share/ca-certificates name: usr-share-certs
Lex
--- apiVersion: v1 kind: Config clusters: - cluster: certificate-authority: /etc/kubernetes/ssl/ca.pem server: https://{{ k8s_api_endpoint }} name: {{ k8s_cluster_name }} contexts: - context: cluster: {{ k8s_cluster_name }} user: kube-prioxy name: default current-context: default users: - name: kube-proxy user: client-certificate: /etc/kubernetes/ssl/kube-proxy.pem client-key: /etc/kubernetes/ssl/kube-proxy-key.pem
Etki
используйте, пожалуйста, сервисы вроде pastebin / x-paste / etc для длинных конфигов
Lex
хорошо, простите
Mikhail [azalio]
/etc/kubernetes/ssl/kube-proxy.pem а тут у вас и ключ и серт как я понимаю и все там верно.
Lex
cn: system:kube-proxy
Lex
хм, а не в этом ли проблема: - name: kube-proxy или это имя ни на что не влияет и не уходит api серверу?
Mikhail [azalio]
не должно
Mikhail [azalio]
в логах апи сервера нет подсказок?
Lex
ща буду смотреть, учитывая, что этот кластер Я задрачивал долго Я решил его снести и сделать с нуля, минут 15 и будет новый кластер, на нем и посмотрю
Lex
и еще, у меня докер 1.13.1-0~ubuntu-xenial, у для него надо с форвардингом приседать?
Mikhail [azalio]
проще проверить чем запомнить )
Lex
ну он filter FORWARD в DROP ставит
Mikhail [azalio]
ну вот - значит нужны?
Lex
ага
Lex
значит нужно
Sergey
может лучше докер запускать с iptables=false
Lex
может, но это уже когда стенд разверну, тогда и буду тестить
Lex
и да, есть смысл обновлять докер 1.13.1 и до какой версии если да?
Sergey
может, но это уже когда стенд разверну, тогда и буду тестить
это точно надо делать, ибо файрволом рулит кубпрокси
Sergey
и да, есть смысл обновлять докер 1.13.1 и до какой версии если да?
для каждого релиза кубера есть список из рекомендованых версий докера
Lex
не подскажешь где найти этот список?
Lex
Я видел только не ниже какой-то версии и все
Sergey
https://kubernetes.io/docs/getting-started-guides/scratch/#docker
Sergey
ща
Denis
Я видел только не ниже какой-то версии и все
On each of your machines, install Docker. Version v1.12 is recommended, but v1.11, v1.13 and 17.03 are known to work as well. Versions 17.06+ might work, but have not yet been tested and verified by the Kubernetes node team
Sergey
какой релиз у тебя?
Sergey
1.10?
Denis
Я видел только не ниже какой-то версии и все
https://kubernetes.io/docs/setup/independent/install-kubeadm/#installing-docker
Sergey
ну тебе уже ответили
Lex
ок, у меня 1.13, емнип именно с докером на staging кластере проблем не было, так что живем
Lex
1.10?
ага, 1.10.1 если быть точнее
Sergey
ну с 1.13 проблем не наблюдал
Sergey
ну плюс
Sergey
set --iptables=false so docker will not manipulate iptables for host-ports (too coarse on older docker versions, may be fixed in newer versions) so that kube-proxy can manage iptables instead of docker. --ip-masq=false if you have setup PodIPs to be routable, then you want this false, otherwise, docker will rewrite the PodIP source-address to a NodeIP. some environments (for example GCE) still need you to masquerade out-bound traffic when it leaves the cloud environment. This is very environment specific. if you are using an overlay network, consult those instructions.
Sergey
ага, 1.10.1 если быть точнее
ты сам кластер собираешь?
Lex
да
Sergey
cri-containerd не пробовал?
Denis
cri-containerd не пробовал?
Это что такое?
Lex
неа, думал, но отсутсвие адекватных пакетов меня парит
Lex
это рантайм контейнерный
Lex
замена раздутому докеру
Sergey
Это что такое?
это от докер ато, что надо для работы в кубере
Sergey
лишнее выброшено
Sergey
замена раздутому докеру
это от докера просто кусок докера )
Lex
сначала с этим стендом закончу, потом уже буду тестить cri-containerd
Lex
там еще cri-o есть
Sergey
там еще cri-o есть
он вроде к конкретной версии кубера хорошо привязан
Sergey
ну и cri-containerd постабильнее будет
Lex
ахз, Я пока туда вообще не лезу, оно ж бета по самое не балуй
Sergey
ну cri-containerd - это containerd с совместимым апи cri
Lex
ты сам кластер собираешь?
мне ж надо это дерьмо с hashicorp vault скрестить, у меня vault сертификаты генерит, туда-же секреты писать, а после тестов туда будут еще и инстансы из aws ags ходить и сами себе секреты вытягивать с сертификатами при скейлинге