k8s 問題跟進

2021-10-01 10:53:21 字數 2684 閱讀 5998

大多數情況下,問題大多出在pod本身,我們可以按照如下命令進行分析定位問題

#kubectl get pod     #檢視是否存在不正常的pod

#kubectl describe pod podname -n kube-system

#journalctl -u kubelet -n 1000 > a.txt #檢視kubelet日誌,將最新的100天輸出到a.txt

#kubectl logs pod podname -n kube-system

#docker ps -a #可以檢視到已經掛掉的容器相關資訊

#docker logs crash_docker_id #檢視已經掛掉容器的log

1. 很多pod一直處於建立中,如下圖

#kubectl describe pods corends-5644d7b6d9-v98km -n kube-system
logs:   networkplugin cni failed to set up pod "nginx-pod-c9f8889f9-zrpg4_default" network: failed to set bridge addr: "cni0" already has an ip address different from 10.224.2.1/24
解決辦法:

#rm -rf /var/lib/cni/flannel/* && rm -rf /var/lib/cni/networks/cbr0/*

#ip link delete cni0 #非常重要

#kubeadm reset

#kubeadm join

ps:無論是master還是node,如果reset之後, init 或者join之前,都需要將cni0(ip link delete)重新刪除一下

2. flannel pod執行一段時間(幾個小時到一天之間)後,就出現崩潰問題,如下圖所示

通過檢視pod,出現下圖所示問題:

#kubectl describe pod kube-flannel-ds-amd64-wsxrq -n kube-system
檢視另外乙個pod,出現的問題:

最開始根據log查詢對應的方法,都沒有解決,直到發現有時pod會提示oomkilled(這個狀態應該不易被抓獲),基本上可以確認是flannel資源耗盡所致,現在將資源增加

#wget 

#vim kube-flannel.yml #修改resource的值,如下

resources:

requests:

cpu: "200m"

#初始值是50m

memory: "250mi"

#初始值為100mi

limits:

cpu: "200m"

#初始值是50m

memory: "250mi"

#初始值為100mi

#kubectl delete kube-flannel.yml

其它關於 flannel 網路問題:詳情檢視

3. 子節點上使用kubectl問題

log:  the connection to the server localhost:8080 was refused - did you specify the right host or port?
出現這個問題的原因是kubectl命令需要使用kubernetes-admin來執行,

解決方法如下,將主節點中的【/etc/kubernetes/admin.conf】檔案拷貝到從節點相同目錄下,然後如提示配置環境變數:

your kubernetes control-plane has initialized successfully!

to start using your cluster, you need to run the following as a regular user

:

mkdir -p $home/.kube

sudo cp -i /etc/kubernetes/admin.conf $home/.kube/config

sudo chown $(id -u)

:$(id -g) $home/.kube/config

另外一種解決辦法:

#echo "export kubeconfig=/etc/kubernetes/admin.conf" >> ~/.bash_profile

#source ~/.bash_profile

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s 多租戶 k8s 基礎介紹

備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...

k8s集群部署 docker部署k8s安裝篇

1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...