命令参数了解

Basic Commands (Beginner);
create  从文件或stdin创建资源
expose  为deployment,pod创建Service.
run     Run a particular image ori the cluster
set    Set specific features on objectsBasic Commands (Intermediate):
get    最基本的查询命令。如 kubectl get rs,kubectl get deploy,
explain   查看资源定义。如kubect1 explain replicaset
edit    使用系统编辑器编辑资源。如kubectl edit deploy/foo
delete     删除指定资源,支持文件名、资源名、label selector
Deploy commands:
rollout   Deployment,Daemonset的升级过程管理(查看状态、操作历史。暂停升级、恢复升级、回滚等)
rolling-update    客户端滚动升级,仅限ReplicationController
scale    修改Deployment,ReplicaSet,·ReplicationController,Job的实例数
autoscale   为Deploy,RS,RC配置自动伸缩规则(依赖heapster和hpa)Cluster Management Commands:
certificate     Modify certificate resources.
cluster-info    查看集群信息
top    查看资源占用率(依赖heapster)
cordon    标记节点为unschedulable
uncordon    标记节点为schedulable
drain    驱逐节点上的应用,准备下线维护
taint    修改节点taint标记
Troubleshooting and Debugging Commands:
describe    查看资源详情
logs    查看pod内容器的日志
attach     Attach到pod内的一个容器··在指定容器内执行命令
port-forward     为pod创建本地端口映射
proxy    为Kubernetes API server创建代理
cp    容器内外/容器间文件拷贝Advanced Commands:
apply    从文件或stdin创建/更新资源
patch    使用strategic merge patch语法更新对象的某些字段
replace    从文件或stdin更新资源
convert    在不同API版本之间转换对象定义
settings Commands:
label    给资源设置label
annotate    给资源设置annotation
completion      获取shell自动补全脚本(支持bash和zsh)other Commands:
api-versions     Print the supported API versions on the server, in the form of "group/version"
config      修改kubect1配置(kubeconfig文件),如context
help        .Help about any command
version     查看客户端和Server端K8s版本

技巧

kubectl写yaml太累,找样例太麻烦?
用run命令生成
kubect1 run --image=nginx my-deploy -o yam1 --dry-run > my-deploy.yaml
用get命令导出
kubectl get statefulset/foo -o=yaml --export> new.yaml
Pod亲和性下面字段的拼写忘记了
kubectl explain pod.spec.affinity.podAffinity

异常排查

master异常

APIServer、ETCD异常: 无法创建、更新、删除资源对象,节点正常工作。已有资源对象正常工作,不受影响Controller异常:deployment、rs、ds等对象操作请求处理正常,但实际未生效Service关联的后端pod变化,但endpoint不更新Scheduler异常:Pod长时间Pending,且无调度失败event信息
Master组件状态查询: kubectl get cs
进程不存在
明确组件生命周期管理方式
故障检测方式是否有效( livenessProbe、restartPolicy )重新启动进程进程crash:  分析日志组件功能异常:  分析日志、检查依赖组件是否正常

节点异常原因排查

节点状态查询:kubectl get nodes
常见异常现象
√节点状态为NotReady
√调度到该节点上的Pod显示NodeLostUnkonwn。Pending等状态
常见故障
kubelet进程异常
未安装cni插件
Docker异常
磁盘空间不足
内存不足定位方式
kubectl describe node查看异常事件
service status查看系统进程状态
journalctl查看系统组件日志t
op查看系统cpu、内存
du、df查看磁盘使用情况

应用异常原因排查

应用模型异常已存在的POD数超过resource-quota限制: kubectl describe quota -n ${ns}待创建的POD不满足admission controller陈制: 查看kube-apiserver enable-admission-plugins参数启用了哪些ac
DaemonSet找不到符合要求的节点kubect describe ds -n,$(ns)查看ds的nodeSelector查看节点taints
StatefulSet: podManagementPolicy 、serviceName、volumeClaimTemplatesPOD实例异常
状态检查:kubectl get/describe pod-
Pending: 可用资源不足: describe pod可看到调度失败event、不满足亲和性策略、节点有taintsWaiting: 镜像下载失败 、imagePullPolicy配置是否正确配置的imagePullSecret无法通过认证。查看环境是否存在可用的dockerconfigison类型的secretCrashBackoff: kubectl logs查看容器日志、kubectl/docker exec登录容器验证功能检查pod配置是否正确:command、liveness、readiness

Service访问异常原因排查

通过域名访问Service,nslookup判断域名解析是否正常
没有Endpointkubectl -n ${ns} get endpoints ${service-name}kubectl -n ${ns] get pods --selector=${service-selector}查看pod status是否为ready状态查看service port定义与pod定义是否匹配
Endpoint访问不通
kube-proxy是否运行正常,依赖的conntrack是否安装
查看kube-proxy配置参数,确认mode类型,查看转发规则是否正确userspace:iptables-save | grep ${servicename}KUBE-PORTALS-CONTAINER、KUBE-PORTALS-HOSTiptables:iptables-save | grep ${servicename}KUBE-SVC-xXx、KUBE-SEP-XXXipvs:ipvsadm -ln

pod服务异常排查

1、查看Service的后端 Endpoint是否正常

kubectl get endpoints  <service name>
查看某个服务的后端Endpoint列表,如果列表为空,则可能因为:Service的 Label Selector与 Pod的 Label不匹配;后端Pod一直没有达到Readv状态(通过kubectl get pods进一步查看Pod的状态); Service的 targetPort端口号与Pod 的containerPort不一致等。

2.查看Service的名称能否被正确解析为ClusterlP地址

可以通过在客户端容器中ning <service name>,<namespace>.svc进行检查,
如果能够得到Service的 ClusterIP地址,则说明DNS服务能够正确解析Service的名称;如果不能得到Service的 ClusterIP地址,则可能是因为Kubernetes集群的 DNS服务工作异常。

3.查看kube-proxy 的转发规则是否正确

我们可以将 kube-proxy服务设置为IPVS 或 iptables负载分发模式。
对于IPVS负载分发模式,可以通过 ipvsadm工具查看Node上的IPVS 规则,查看否正确设置Service ClusterIP的相关规则。对于 iptables负载分发模式,可以通过查看Node上的 iptables规则,查看是否正置 Service ClusterIP的相关规则。

k8s-某视频课命令问题排查了解相关推荐

  1. 高级转录组分析和R语言数据可视化课程全部转为视频课

    常规转录组是我们最常接触到的一种高通量测序数据类型,其实验方法成熟,花费较低,是大部分CNS必备的技术,现在就如做个PCR一样常见.而且分析思路简洁清晰,是入门生信,学习生信分析思路和数据可视化的首选 ...

  2. ElasticSearch看完狂神说视频课的总结

    文章目录 视频课 ElasticSearch的3个网站URL 遇到的问题和解决 1.elasticsearch.bat闪退 2.访问http://127.0.0.1:5601/app/dev_tool ...

  3. 吴恩达老师深度学习视频课笔记:逻辑回归公式推导及C++实现

    逻辑回归(Logistic Regression)是一个二分分类算法.逻辑回归的目标是最小化其预测与训练数据之间的误差.为了训练逻辑回归模型中的参数w和b,需要定义一个成本函数(cost functi ...

  4. 【视频课】StyleGAN人脸生成与年龄表情编辑:原理与实践

    前言 要问当前人脸图像领域最火的技术是什么?当然是假人脸的伪造生成与各种人脸属性编辑,下面这些图都是生成的人脸图,是不是足够以假乱真?反正通过肉眼我是看不出真假的. 另一方面,这几年里人脸属性编辑的技 ...

  5. 【视频课】模型优化拆分!分别学习模型剪枝与模型量化理论与实践

    前言 好的模型结构是深度学习成功的关键因素之一,不仅是非常重要的学术研究方向,在工业界实践中也是模型是否能上线的关键.对各类底层深度学习模型设计和优化技术理解的深度是决定我们能否在深度学习项目中游刃有 ...

  6. 【视频课】永久免费!5小时快速掌握Pytorch框架入门及实战

    前言 PyTorch是深度学习的主流框架之一,新手入门相对容易.为了帮助初学者解决PyTorch入门及实践的问题,有三AI推出<深度学习之PyTorch-入门及实战>课程,课程将算法.模型 ...

  7. 【视频课】言有三每天答疑,38课深度学习+超60小时分类检测分割数据算法+超15个Pytorch框架使用与实践案例助你攻略CV...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

  8. 【视频课】零基础免费38课时深度学习+超60小时CV核心算法+15大Pytorch CV实践案例助你攻略CV...

    计算机视觉中大大小小可以包括至少30个以上的方向,在基于深度学习的计算机视觉研究方向中,图像分类,图像分割,目标检测无疑是最基础最底层的任务,掌握好之后可以很快的迁移到其他方向,比如目标识别,目标跟踪 ...

  9. 【视频课】8小时系统性地掌握深度学习视频分类与行为识别理论+实践

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  10. 【视频课】模型剪枝+模型量化+知识蒸馏典型实践!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

最新文章

  1. 最新数据分析教程资源合集(案例、数据集、SQL教程、分析样板、面经、简历、PY教程... )...
  2. 配置Fedora15 x86_32
  3. C语言学习笔记 (005) - 二维数组作为函数参数传递剖析
  4. [Database] 数据库范式理论
  5. JS重点语法及常用对象总结
  6. 如何隐藏storyboard中的top bar
  7. 清空shell控制台内容_RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台
  8. Mac解压Windows 压缩文件(.zip格式)乱码问题
  9. Kvaser怎么使用虚拟驱动?Kvaser Leaf Light HS v2
  10. Sniffer Pro
  11. Spring Boot + WebSocket实现网页在线实时聊天
  12. 高考数学必考知识点高中数学重点知识归纳
  13. todd li 保留_用Todd Motto揭开JavaScript神秘面纱
  14. leetcode 罗马数字与整数的转换算法
  15. jQuery常用API(六)
  16. 苹果开发者注册了邓白氏编码不能用,查询时提示该组织不存在怎么办?
  17. 从消防水管喝水mysql_再见MYSQL - 06 - 查询性能优化
  18. eclipse如何attach source?
  19. Mac OS命令行清洗硬盘空间
  20. [T-ARA][TIAMO]

热门文章

  1. 前端面试系列-JavaScript作用域和作用域链
  2. 李宏毅学习笔记42.More about Domain Adaptation. Part I. Domain Adaptation
  3. DTAS 国产三维尺寸公差分析软件尺寸链计算几何数据导入应用
  4. scratch躲避球
  5. python求方程最小值_python topk()函数求最大和最小值实例
  6. sublime text3 unicode 中文转换
  7. gazebo publish pose
  8. SCI Translate 11安装教程
  9. psql屏幕输出全部结果_液晶电视无法开机,是电源板问题还是屏幕问题,自己动手维修...
  10. MT7628实现Amazon alexa语音控制