作者前言
本文章為記錄使用k8s遇到的問題和解決方法,文章持續更新中…
目錄
- 作者前言
- 正常配置ingress,但是訪問錯誤
- 添加工作節點報錯
- 安裝k8s報錯
- 使用kubectl命令報錯
- container沒有運行
- 安裝會出現kubelet異常,無法識別
- 刪除k8s集群
- 訪問dashboard報錯
- k8s服務器重啟后kubectl命令使用不了
- k8s手動卸載不干凈
正常配置ingress,但是訪問錯誤
curl: (7) Failed connect to test.com:8080; Connection refused
在/etc/hosts加下記錄
ip 域名
添加工作節點報錯
error execution phase kubelet-start: error uploading crisocket: Unauthorized To see the stack trace
rm -rf $HOME/.kube/config
kubeadm reset
安裝k8s報錯
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR Port-10250]: Port 10250 is in use
[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...
To see the stack trace of this error execute with --v=5 or higher先刪除文件
rm -rf /etc/kubernetes/kubelet.conf
rm -rf /etc/kubernetes/pki/ca.crt
lsof -i :10250
kill -9 進程號
使用kubectl命令報錯
The connection to the server 本機ip:6443 was refused - did you specify the right host or port?排錯思路
1、集群硬件時間和系統時間不同步
hwclock和data查看后修改2、查看端口是否被占用或被防火墻攔截
netstat -antup | grep 端口號
firewalld --list-zones
iptables -nL3、更改主機名了、重啟服務器了
hostnamectl set-hostname 原名
重啟kubelet服務4、查看服務是否正常,重啟服務
kubelet、containerd、docker等
container沒有運行
container runtime is not running: output: time="2023-08-11T15:37:57+08:00" l解決:
vim /etc/containerd/config.toml
#disabled_plugins = ["cri"]
安裝會出現kubelet異常,無法識別
--node-labels 字段問題,原因如下。
將 --node-labels=node.kubernetes.io/node='' 替換為 --node-labels=node.kubernetes.io/node= 將 '' 刪除
刪除k8s集群
先停服
systemctl stop kubelet etcd docker containerd卸載k8s
kubeadm reset -f刪除k8s相關目錄
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd卸載k8s軟件包
yum -y remove kubeadm-1.xxx kubelet-1.xxx kubectl-1.xxx 更新yum源
yum clean all
yum -y update
yum makecache
訪問dashboard報錯
網頁提示信息Client sent an HTTP request to an HTTPS server.
原因:
因為直接使用ip:端口的方式是http協議
解決方法:
訪問需要加上https
https://ip:端口
如果還是無法訪問提示此報錯
原因:被瀏覽器安全阻攔了
點擊頁面空白處,鍵盤輸入thisunsafe就可以正常連接了
k8s服務器重啟后kubectl命令使用不了
重啟前需要配置自啟動
systemctl enable docker &&systemctl start docker
systemctl enable kubelet && sytemctl start kubelet
systemctl enable containerd && sytemctl start containerd
systemctl daemon-reload重啟后kubectl命令不了,一般重啟器kubelet服務就可以了
sytemctl restart kubelet
k8s手動卸載不干凈
使用以下命令進行操作
kubeadm reset -f