跳转到主要内容

运维常用排除方法

主机运维

# 测试磁盘写入速度
dd if=/dev/zero of=/home/testfile bs=1G count=1 oflag=direct

# 测试磁盘读取速度
dd if=/home/testfile of=/dev/null bs=1G count=l iflag=direct

# 自定义主机名称与域名
cat /etc/hosts

# 查看DNS服务器
cat /etc/resolv.conf

# 网络与端口相关
# 使用curl 测试网络连通性
curl ip:port

# 使用ip地址连接时携带主机头
curl -H "host:www.iovhm.com" ip:port

# 显示详细http请求
curl -vvv ip:port

# 测试端口开放情况
telnet ip port

# 查看主机开放端口
netstat -antlp |grep <port>


#主机性能相关
# 磁盘查看
df -h

# 内存查看
free -h

K8S常见故障

更多命令: https://qq829.cn/book/books/k8s/page/k8s-v12015

# 确定kubelet、docker运行是否正常

systemctl status docker -l
systemctl kubelet docker -l

journalctl -xeu kubelet


# 确定master主机和节点状态

kubectl cluster-info

kubectl get nodes


# 查看kube-system部署的容器是否正常,对应于rancher,既为system项目

kubectl get po -n kube-system

# 对显示异常的pod查看错误

kubectl describe po -n kube-system traefik-6fd8z


# kube-system命名空间(对应于rancher为system项目)POD解释

# 软件交换机,用于服务间的网络通信,服务不通大概会和他有关系
calico-node

# 内部NDS服务器,ping服务的时候提示找不到主机,那基本就是DNS坏了
coredns

# k8sd数据持久化
etcd

# k8s控制器
kube-controller-manager

# k8s代理程序
kube-proxy

# 入口网关
traefik


更多k8s命令

# 查看集群信息
kubectl cluster-info

# 查看集群节点
kubectl get nodes

# 删除节点
kubectl delete node node42.vpclub.io

# 查看所有的namespace(对应于rancher,既为项目项目下面的明明空间)
kubectl get ns

# 查看pod信息
kubectl get pods -n  your-ns-name

# 删除 pod
kubectl delete pod nginx-3654852276-2dt73  -n  your-ns-name

# 获取发布部署
kubectl get deployments  -n   your-ns-name

# 删除deployment
kubectl delete deployment nginx  -n   your-ns-name

# 详细日志调试工具
kubectl describe pods  podname -n   your-ns-name

# 进入容器
kubectl exec -it <nginx-webapp-2067515279-1z0lb> /bin/bash  -n   your-ns-name

# 查看已经部署的yml配置信息
kubectl get deploy NAME -o yaml   your-ns-name

# 强行删除
kubectl delete pod <pod名> --grace-period=0 --force   your-ns-name

# 为node增加label
kubectl label nodes 190.vpclub.io <label>

# 删除node的label,既在label后面加 - 
kubectl label nodes 190.vpclub.io <label>-

# 修改一个label ,需要增加参数 --overwrite
kubectl label nodes 190.vpclub.io role=apache --overwrite

# 节点不参与调度,同理,删除污点为在后面加 -
# 节点不参与调度并立即驱离已经存在的POD
kubectl taint nodes 190.vpclub.io node-role.kubernetes.io/master=:NoExecute

# 节点不参与调度,已经被调度的不受影响
kubectl taint nodes 190.vpclub.io node-role.kubernetes.io/master=:NoSchedule

# 尽可能不调度到
kubectl taint nodes 190.vpclub.io node-role.kubernetes.io/master=:PreferNoSchedule

# 删除污点
kubectl taint nodes 190.vpclub.io node-role.kubernetes.io/master:NoSchedule-