阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

K8S学习你需要掌握的知识!

335次阅读
没有评论

共计 3548 个字符,预计需要花费 9 分钟才能阅读完成。

导读 通过 kubectl 命令可以操作和管理 K8S 资源,对于初学者可以在掌握 K8S 基础命令的基础上再去学习 K8s 的原理和架构,那么 K8S 常用的命令有哪些呢?来看一下吧。
1、K8S 命令概述

在学习 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 #删除容器 

K8S 常用命令;
K8S 学习你需要掌握的知识!

2、K8S 集群资源操作
    1、集群资源查看
kubectl get cs  #集群健康情况
kubectl version  #K8S 集群版本查看
kubectl get node #查看集群节点
kubectl get pods -o wide -A #查看所有命命空间 pod
    -n  #后跟指定命名空间
    --all-namespaces #等同于 -A
kubect get deployments -A
kubectl get svc,ep -A  #查看 svc 和 endpoints
    2、标签查看
kubectl get pod --show-labels #查看 pod 标签
kubectl get node --show-labels  #查看 node 标签 
    3、资源配置查看

查看配置

kubectl get deployments.apps nginxtest-xxx -oyaml #查看 deployment 资源
kubectl get pods nginxtest-xxx  -oyaml #查看 pod 资源配置 
    4、资源限制

查看是否有资源限制

kubectl describe node 192.168.1.2Capacity:
  cpu:                16
  ephemeral-storage:  524030980Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             82320508Ki
  pods:               253
Allocatable:
  cpu:                15100m
  ephemeral-storage:  520373252Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             79101052Ki
  pods:               253

capacity 代表减去系统预留的资源总量。

Allocatable 可分配给 K8S 资源的总量。

pod 资源限制,防止单个服务占用资源过高影响其他 pod,达到 limits 数值后会 oom 重启。

kubectl get pods  nginx-test -oyaml  | grep -A 6   resources
    resources:
      limits:
        cpu: "5"
        memory: 5000Mi
      requests:
        cpu: 55m
        memory: 100Mikubectl --help 多用 help
3、K8S 运维场景
    1、副本扩容

通过副本扩容实现流量分摊,避免单个节点负载过高,建议资源中增加反亲和性,达到不同副本调度到不同 node

kubectl scale deployment nginx-test --replicas=2   #副本扩容
kubectl edit deployment nginx-test #直接编辑修改 spec.replicas 标签扩容 
    2、进入 pod
kubectl exec -it podname bash  #或者 sh
-n 指定名字空间
kubectl exec nginx-965048598-jt28d -n test uptime  #不进入容器,只获取命令输出 
    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 的时间 

还可以通过 kubectl scale 命令将副本缩为 0 的方式删除 pod

    4、pod 污点

对于设置了污点的服务,普通 pod 无法调用到此节点,只有增加了 Tolerations 容忍配置才可以。

[root@wpseco-node-1 log]# kubectl describe node 192.168.0.1  | grep Taints
Taints:             
kubectl taint node 192.168.0.1 test-access-node=:NoSchedule --overwrite=true  #污点添加
kubectl taint node 192.168.0.1   test-access-node:NoSchedule-   #污点删除

其中 [effect] 可取值:

    NoSchedule:一定不能被调度(新来的不要来,在这的就别动了)
    PreferNoSchedule:尽量不要调度(尽量不要来,除非没办法)
    NoExecute:不仅不会调度,还会驱逐 Node 上已有的 Pod
    5、pod 文件拷贝
kubectl cp my_item.tar.gz redis-6c98cb5b5f-nxb59:/tmp/   #宿主机拷贝到容器内
kubectl cp redis-6c98cb5b5f-nxb59:/tmp/start.sh  ./start.sh  #pod 内文件拷贝到宿主机 
    6、静态 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 kafka
4、K8S 问题定位

处理 K8S 环境问题,首先要了解 pod 的生命周期和 pod 的状态

K8S 学习你需要掌握的知识!

常见状态原因

    ImagePullBackOff 镜像拉取失败,网络不通,镜像名称有误或者镜像仓库认证失败都可能有这个报错。
    CrashLoopBackOff 探针检测失败,服务对网络或者其他 pod 服务有依赖等,此外宿主机上的安全软件可能也会导致容器无法正常启动。
    Pending 一般是调度失败,pod 没有可调度的节点,常见原因:节点有污点,不满足节点亲和性,或者节点处于 notready 状态。
    Evicted 当节点内存、磁盘或者 cpu 资源不足时,K8s 会按照 QoS 等级对节点上的某些 Pod 进行驱逐,释放资源保证节点可用性,kubelet 可以配置内存,cpu 和磁盘的驱逐阈值。
    Terminating pod 删除后超过 terminationGracePeriodSeconds 参数时间还处于 Terminating 状态可能是存在节点故障,和 master 节点失联,可以检查节点状态或者尝试重启 kubelet
    Completed 此状态通常是 job 类的 pod 执行完成了正常退出容器。
    Init:Error pod 初始化失败,可以查看 init pod 的日志定位。

问题定位经常需要使用如下命令:

kubectl logs -f   podname
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 -xeu kubelet/docker
--since 指定时间 

K8S 学习资料:​​https://kubernetes.io/zh-cn/docs/home/​

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3548字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7798678
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...