1. 程式人生 > >kubernetes叢集使用kubectl logs 無法檢視node節點pod日誌問題

kubernetes叢集使用kubectl logs 無法檢視node節點pod日誌問題

kubernetes叢集使用kubectl logs 無法檢視node節點上pod日誌問題

最近在學習安裝使用kubernetes叢集,先把叢集安裝中遇到的一些困難記錄下來方便以後檢視,避免下次再次遇到相同的問題又得重新查詢。

使用了三臺服務安裝kubernetes叢集,其中一臺騰訊雲伺服器,二臺阿里雲伺服器

# 111.230.133.xxx master   伺服器主節點
# 120.230.12.xxx slave1
# 111.230.12.xxx slave2 

其中kubernetes叢集的安裝是使用kubeadm 方式安裝的。因為需要上google,download image和kubernetes軟體包,需要翻牆,因此使用july917部落格中

july部落格 中事先使用proxy下載好的打包成(kubernetes-all-1.8.tar.gz)軟體包,裡面裡面包含配置檔案、Docker軟體包、kubernetes軟體包以及下面的映象。

# docker_soft:docker安裝所需要軟體包
# images:映象檔案
# k8s_soft:k8s軟體包
# yaml:部署時所需要的配置檔案

軟體包下載的地址是july917b部落格提供的百度雲盤的下載地址 http://pan.baidu.com/s/1slOCHop 密碼:cm1o。然後參照上面的安裝配置kubernetes叢集。

叢集安裝成功後我以為一切正常。可以正常使用。
獲取節點:

這裡寫圖片描述

獲取所有的pods:

這裡寫圖片描述

一切正常。我以為一切安裝成功後,萬事大吉時當我參考jimmysong.io的kubernetes-handbook安裝traefik報錯時,想檢視pod日誌報錯問題,卻發現只能檢視主節點上的pod日誌卻無法檢視其它node節點的日誌。

# kubectl logs kube-proxy-69qt8 檢視pod日誌 從節點無法檢視,而在主機節點上的pods使用這個命令後卻可以檢視。

後面經過@宋淨超和@張傑兩位大佬的知道可能是網路問題。缺少br_netfilter模組。導致網路問題不正常。有從網上查詢部落格。Cizixs[kubernetes 簡介:service 和 kube-proxy 原理](kubernetes 簡介:service 和 kube-proxy 原理)介紹如下:

NOTE: kube-proxy 要求 NODE 節點作業系統中要具備 /sys/module/br_netfilter 檔案,而且還要設定 bridge-nf-call-iptables=1,如果不滿足要求,那麼 kube-proxy 只是將檢查資訊記錄到日誌中,kube-proxy 仍然會正常執行,但是這樣通過 Kube-proxy 設定的某些 iptables 規則就不會工作。

檢視自己的電腦發現自己的電腦上壓根就沒有這個檔案。後面@張傑大佬說,linux核心版本太低需要升級核心版本。

# [root@localhost ~]# uname -sr
Linux 3.10.0-327.el7.x86_64

於是參照andQ的部落格把linux核心升級了3.10.0-693.el7.x86_64。然後執行如下命令:

# modprobe br_netfilter
# sysctl net.bridge.bridge-nf-call-iptables=1

重啟kubernetes集群后發現可以使用kubectl logs 檢視node節點上pod的日誌。

致謝:宋淨超 、張傑

參考: