运维常用排除方法
主机运维
# 测试磁盘写入速度
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-