您的当前位置:首页 >IT科技 >K8S学习,你需要掌握的知识! 正文
时间:2025-11-05 15:52:52 来源:网络整理编辑:IT科技
1、K8S命令概述在学习K8s基础命令前,了解和学习docker命令是很有必要的,kubectl和docker很多命令都有相通之处。复制docker ps #查看所有up状态容器docker ps -

在学习K8s基础命令前,知识了解和学习docker命令是学习需掌很有必要的,kubectl和docker很多命令都有相通之处。知识
复制docker ps #查看所有up状态容器docker ps -a#查看所有状态的学习需掌容器docker inspect containerid#查看容器详情docker images #查看容器镜像docker start/stop/restart containerid #启动/停止/重启容器docker exec -it containerid bash #进入容器docker exec containerid bash -c uptime #容器外执行命令docker rmi imageid #删除镜像docker rm containerid #删除容器1.2.3.4.5.6.7.8.9. K8S常用命令;
查看配置
复制kubectl get deployments.apps nginxtest-xxx -oyaml #查看deployment资源kubectl get pods nginxtest-xxx -oyaml #查看pod资源配置1.2. 资源限制查看是否有资源限制
复制kubectl describe node 192.168.1.2Capacity:
cpu: 16ephemeral-storage: 524030980Ki
hugepages-1Gi: 0 hugepages-2Mi: 0memory: 82320508Ki
pods: 253Allocatable:
cpu: 15100m
ephemeral-storage: 520373252Ki
hugepages-1Gi: 0 hugepages-2Mi: 0memory: 79101052Ki
pods: 2531.2.3.4.5.6.7.8.9.10.11.12.13.14.capacity代表减去系统预留的资源总量。
Allocatable可分配给K8S资源的学习需掌总量。
pod资源限制,知识防止单个服务占用资源过高影响其他pod,学习需掌达到limits数值后会oom重启。知识
复制kubectl get pods nginx-test -oyaml | grep -A 6resources
resources:
limits:
cpu: "5"memory: 5000Mi
requests:
cpu: 55m
memory: 100Mikubectl --help 多用help1.2.3.4.5.6.7.8.通过副本扩容实现流量分摊,知识避免单个节点负载过高,学习需掌建议资源中增加反亲和性,知识达到不同副本调度到不同node
复制kubectl scale deployment nginx-test --replicas=2 #副本扩容kubectl edit deployment nginx-test #直接编辑修改spec.replicas标签扩容1.2. 进入pod 复制kubectl exec -it podname bash #或者sh-n指定名字空间
kubectl exec nginx-965048598-jt28d -n test uptime #不进入容器,学习需掌只获取命令输出1.2.3. pod删除操作 复制kubectl delete pods nginx-test-6fc6d8666b-mhl48 #常规删除kubectl delete pod -l app=test #基于标签删除,批量操作效率高kubectl delete pods nginx-test -n dev --grace-period=0 --force #强制删除,没有terminationGracePeriodSeconds 30s的时间1.2.3.还可以通过kubectl scale命令将副本缩为0的方式删除pod
pod污点对于设置了污点的服务,普通pod无法调用到此节点,只有增加了Tolerations容忍配置才可以。企商汇
复制[root@wpseco-node-1 log]# kubectl describe node 192.168.0.1 | grep TaintsTaints:
kubectl taint node 192.168.0.1 test-access-node=:NoSchedule --overwrite=true #污点添加kubectl taint node 192.168.0.1 test-access-node:NoSchedule- #污点删除1.2.3.4.其中[effect] 可取值:
NoSchedule :一定不能被调度(新来的不要来,在这的就别动了)
PreferNoSchedule:尽量不要调度(尽量不要来,除非没办法)
NoExecute:不仅不会调度,还会驱逐Node上已有的Pod
pod文件拷贝 复制kubectl cp my_item.tar.gz redis-6c98cb5b5f-nxb59:/tmp/ #宿主机拷贝到容器内kubectl cp redis-6c98cb5b5f-nxb59:/tmp/start.sh ./start.sh #pod内文件拷贝到宿主机1.2. 静态pod静态pod 是由 kubelet 管理的,只在特定node上存在的pod;静态pod总是由kubelet创建的,并且只在kubelet所在的Node上运行。静态pod 不能通过 api-server来管理,无法和 RC,RS,Deployment或者 DaemonSet进行关联;并且 kubelet无法对静态pod 进行健康检查。
静态pod资源文件默认存放路径/etc/kubernetes/manifests,也可以直接查看kubelet启动参数staticPodPath: /etc/kubernetes/manifests配置确定。
复制kubectl exec -it kafka-1-192.168.0.1 -c kafka sh #进入静态pod-c #po有多个容器要加-c指定 kubectl logs kafka-1-192.168.0.1 -c kafka1.2.3.处理K8S环境问题,首先要了解pod的生命周期和pod的状态

常见状态原因
ImagePullBackOff 镜像拉取失败,网络不通,镜像名称有误或者镜像仓库认证失败都可能有这个报错。CrashLoopBackOff 探针检测失败,IT技术网服务对网络或者其他pod服务有依赖等,此外宿主机上的安全软件可能也会导致容器无法正常启动。Pending 一般是调度失败,pod没有可调度的节点,常见原因:节点有污点,不满足节点亲和性,或者节点处于notready状态。Evicted 当节点内存、磁盘或者cpu资源不足时,K8s 会按照 QoS 等级对节点上的某些 Pod 进行驱逐,释放资源保证节点可用性,kubelet可以配置内存,cpu和磁盘的驱逐阈值。Terminating pod删除后超过terminationGracePeriodSeconds参数时间还处于Terminating状态可能是存在节点故障,和master节点失联,可以检查节点状态或者尝试重启kubeletCompleted 此状态通常是job类的pod执行完成了正常退出容器。Init:Error pod初始化失败,可以查看init pod的日志定位。问题定位经常需要使用如下命令:
复制kubectl logs -fpodname
kubectl logs -f -l app=nginx-test #多副本情况下,可以看到所有pod日志kubectl describe pods podname #pod启动日志kubectl describe node 192.168.0.1 #节点状态日志kubectl get events #查看集群事件系统服务查看
systemctl status kubelet/docker/etcd
系统服务日志查看
journalctl -xeukubelet/docker
--since指定时间1.2.3.4.5.6.7.8.9.10. K8S学习资料https://kubernetes.io/zh-cn/docs/home/
网站模板一加3手机电池性能考察(一加3手机电池续航能力评估)2025-11-05 15:40
如何在Fedora或CentOS上使用Samba共享文件夹2025-11-05 15:25
MySQL大表如何DDL,你学会了吗?2025-11-05 14:57
如何为Linux系统中的SSH添加双重认证2025-11-05 14:30
又一款开源的数据库管理神器,简约大气,非常好用!2025-11-05 14:02
在SpringBoot中通过Canal实现MySQL与Redis的数据同步2025-11-05 13:57
阿里面试:为什么MySQL不建议使用Delete删除数据?2025-11-05 13:35
索泰660雷霆怎么样?(一款性能强劲的游戏显卡)2025-11-05 13:22
你真的可以讲明白MVCC多版本控制机制吗?2025-11-05 13:13
探索以典藏摄影为主题的艺术之美(传承与展示——典藏摄影的无限魅力)2025-11-05 15:34
SQL和Python,哪个更容易自学?哪个更适合数据工作的编程新手?2025-11-05 15:33
Redis类型(Type)与编码(Encoding)2025-11-05 15:26
向量数据库简介和五个常用的开源项目介绍2025-11-05 14:51
台电耳机R98(带你感受音乐的细腻与动感)2025-11-05 14:27
戴尔数据泄露影响近五千万用户2025-11-05 14:16
高效利用内存资源:掌握Redis内存管理与淘汰策略2025-11-05 13:49
如何在Linux上使用NMAP安全扫描工具?2025-11-05 13:47
面条数据线的优势与适用场景(揭秘面条数据线的独特设计及高速传输特性)2025-11-05 13:37
基于Spring boot轻松实现一个多数据源框架2025-11-05 13:33