k8s运维常用命令
我们在创建PV的时候指定的该目录,要提前创建,并且该目录要是个共享目录且需要有对应的权限,我们再介绍部署MySQL服务的时候有详细介绍,可。eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。导致的kubelet挂掉了。解决方案:先让docker自己清理一下镜像文件。删除该名称空间下所有Pod,k8s会自动创建。排查资源和异常原因,防止新
·
文章目录
- 1.常用命令
- 2.常见问题
- 2.1 主机中存在该目录还提示No such file or directory
- 2.2 k8s的node节点状态NotReady
- 2.3 执行kubeadm reset时报:etcdserver: re-configuration failed due to not enough started members
- 2.4 k8s join User “system:anonymous“ cannot get resource “configmaps“ in API group ““ in the namespace
- 2.5 Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list resource "configmaps" in API group "" in the namespace "kube-system"
- 2.6 dashboard-metrics-scraper报错
- 2.7 pod状态Evicted
1.常用命令
- 1.通过资源清单 nginx.yaml 创建服务
kubectl apply -f nginx.yaml
- 2.查看指定名称空间下的资源
kubectl get pod -n kube-system
kubectl get svc -n kube-system
- 3.进入容器内部
kubectl exec -it <pod_name> /bin/bash -n <namespace>
- 4.查看Pod的描述信息
kubectl describe pod <pod_name> -n <namespace>
- 5.查看所有名称空间下的资源
kubectl get svc --all-namespaces
kubectl get pod -A
- 6.查看pod的实时日志
kubectl logs -f <podName>
- 7.根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效
kubectl delete -f demo-deployment.yaml
- 8.查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
kubectl get pod -o wide
- 9 批量删除状态Evicted的Pod
kubectl get pods -n <namespace> | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n <namespace>
2.常见问题
2.1 主机中存在该目录还提示No such file or directory
我们在创建PV的时候指定的该目录,要提前创建,并且该目录要是个共享目录且需要有对应的权限,我们再介绍部署MySQL服务的时候有详细介绍,可 参考。
2.2 k8s的node节点状态NotReady
通过命令查看日志
kubectl describe nodes <node_name>
这个问题明显是Docker ImageGC
的问题。应该是内存不够了。导致的kubelet挂掉了。但是查看df -h
。磁盘空间还是够的。
查看kubelet日志
journalct
journalctl -u kubelet | grep -i garbage
解决方案:先让docker自己清理一下镜像文件。然后重启kubelet
和docker
2.3 执行kubeadm reset时报:etcdserver: re-configuration failed due to not enough started members
解决措施:
执行如下两条命令
rm-rf /etc/kubernetes/*
rm-rf /root/.kube/
然后再次执行即可
2.4 k8s join User “system:anonymous“ cannot get resource “configmaps“ in API group ““ in the namespace
参考这里
2.5 Error: configmaps is forbidden: User “system:serviceaccount:kube-system:default” cannot list resource “configmaps” in API group “” in the namespace “kube-system”
执行命令:
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
2.6 dashboard-metrics-scraper报错
删除该名称空间下所有Pod,k8s会自动创建。
2.7 pod状态Evicted
eviction,即驱赶的意思,意思是当节点出现异常时,kubernetes将有相应的机制驱赶该节点上的Pod。
多见于资源不足时导致的驱赶。
kubectl describe pod {pode_name} -n {namespace}
发现是磁盘满了
解决方案
排查资源和异常原因,防止新的驱赶产生。
使用如下命令删除旧驱赶的遗留
kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted")) | "kubectl delete pods \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n 1 bash -c
df -h //查看服务器空间
du -h --max-depth=1 //查看当前目录,哪个文件占用最大
du -sh * //查看当前目录下各文件及文件夹占用大小
如何清理Linux服务器磁盘空间
kubectl get pods -n {namespace} | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n {namespace}
{namespace} 需要根据实际情况 换成自己的
更多推荐
已为社区贡献1条内容
所有评论(0)