k8s的坑,从这里开始

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


以前刚接触k8s时踩了不少坑,比如这些:

问题1

1、在master节点使用kubectl命令时,报错:The connection to the server localhost:8080 was refused - did you specify the right host or port?

原因和解决:

执行以下命令配置kubectl,作为普通用户管理集群并在集群上工作:

复制代码
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

另外,kubectl命令需要使用kubernetes-admin来运行,所以如果是在非master节点也要使用kubectl命令,就需要将主节点中的/etc/kubernetes/admin.conf文件拷贝到从节点相同目录下,然后配置环境变量,并source生效:

复制代码
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

问题2

2、在k8s集群添加node节点时,报错:ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

原因和解决:

这个报错,在很多博客都有提到,应该把/proc/sys/net/bridge/bridge-nf-call-iptables文件改成1:

问题3

3、k8s集群添加node,卡着半天不动:

原因和解决:

检查了命令、token,最后发现是api端口问题。

就是添加节点的命令中,master节点的端口用错了,一般是用6443端口,但是如果有自定义改动,要注意端口的变化。

问题4

4、k8s集群节点不够用,想要把pod分发到master节点,死活分发不上去

问题和解决:

用kubeadm 安装的k8s集群默认情况 master节点是不参与pod负载的,就是说pod并不会被调度到master节点上运行,只会调度到work 节点上运行。但是如果资源紧张,需要临时让master接受pod调度,可以去掉master身上的标签:

复制代码
kubectl taint node k8s-master node-role.kubernetes.io/master-   
#k8s-master是在master节点运行kubectl get node命令,看到的master节点的name

如下图:

让 master节点恢复不参与POD负载的命令为

复制代码
kubectl taint node <node-name> node-role.kubernetes.io/master=:NoSchedule`

让 master节点恢复不参与POD负载,并将Node上已经存在的Pod驱逐出去的命令为:

复制代码
kubectl taint nodes <node-name> node-role.kubernetes.io/master=:NoExecute

问题5

5、kubectl describe pod查看pod详情,提示pod not found,如"Error from server (NotFound): pods "prometheus-0" not found"

原因和解决:

看上图,熟悉了k8s命令之后,一眼就看出来问题了,就是命令中没有指定namespace名字。K8S默认是在default的namespace下,如果不指定namespace,就会去default下面找这个pod,如果找不到,就会报错。

所以,要记得指定namespace:

k8s常用命令

可参考链接:https://www.jianshu.com/p/2ded3a8cc788

相关推荐
x-cmd1 小时前
用 Rust 打造 AI 时代的 SQL:把重复任务变成可执行文件
数据库·人工智能·sql·ai·容器·rust·workflow
爱莉希雅&&&18 小时前
K8s NFS+StorageClass+PV/PVC+Deployment 实战笔记
笔记·容器·kubernetes
一位正在转型AI全栈的前端工程师20 小时前
前端转全栈:从 502 到 200,我的第一个 Docker+Nginx+Node.js 项目
docker·容器
维核科技21 小时前
大模型私有化部署:Docker与Kubernetes实战避坑
docker·容器·kubernetes
GlueNa2SiO31 天前
07-Docker Compose多容器编排
笔记·学习·docker·容器
葵续浅笑1 天前
K8s Pod内存居高不下假象排查与解决(JDK17 G1+Arthas实战)
java·容器·arthas
GlueNa2SiO31 天前
01-Docker入门与核心概念
笔记·docker·容器
A-刘晨阳1 天前
Kubernetes 非共享存储详解:emptyDir 与 hostPath 从入门到实践
运维·云原生·容器·kubernetes·hostpath·emptydir
2401_834636991 天前
K8s 控制器全解:Deployment/DaemonSet/Job/CronJob+Service 服务发现实战宝典
容器·kubernetes·服务发现
风曦Kisaki1 天前
# Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
运维·网络·nginx·云原生·容器·kubernetes