当前位置: 首页 > news >正文

K8S常用kubectl命令汇总(持续更新中)

天行健,君子以自强不息;地势坤,君子以厚德载物。


每个人都有惰性,但不断学习是好好生活的根本,共勉!


文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。

文章目录

  • 1. 命名空间namespace相关
    • 1.1 创建命名空间
    • 1.2 查询命名空间
  • 2. 节点node相关
    • 2.1 查看集群节点
    • 2.2 查看节点健康状态
  • 3. 容器pod相关
    • 3.1 查看pods
    • 3.2 删除pod
    • 3.3 查看pod详细信息
    • 3.4 查看pod描述信息
    • 3.5 查看deployment的日志信息
    • 3.6 查看问题pod
    • 3.7 进入pod
    • 3.8 退出pod
  • 4. 持久化存储pvc相关
    • 4.1 查看pvc
    • 4.2 删除pvc
  • 5. 服务svc相关
    • 5.1 查看svc
    • 5.2 删除svc
  • 6. 查看全部服务
  • 7. 部署服务
    • 7.1 部署所有yml文件
    • 7.2 部署某个yml文件
  • 8. 初始化集群主节点命令
    • 8.1 配置镜像列表
    • 8.2 拉取镜像
    • 8.3 初始化kubeadm
    • 8.4 其他节点加入集群
    • 8.5 生成join命令
    • 8.6 重置kubeadm
      • 8.6.1 重置kubeadm
      • 8.6.2 移除文件


命令中使用到的一些自定义参数表示的含义如下
namespacename 命名空间名称
podname pod的名称
selectorname 指yaml中定义的selector参数的值
pvcname 表示pvc的名称
deploymentname 表示deployment的名称
svcname 表示service的名称

1. 命名空间namespace相关

1.1 创建命名空间

kubectl create namespace namespacename

如创建一个名为ns-sb的命名空间

kubectl create namespace ns-sb

1.2 查询命名空间

查看全部命名空间

kubectl get namespace -A

2. 节点node相关

2.1 查看集群节点

kubectl get nodes

2.2 查看节点健康状态

kubectl get cs

3. 容器pod相关

3.1 查看pods

查看所有pod

kubectl get pod -A

查看指定命名空间中的pod

kubectl get pods -n namespacename

如查看命名空间为ns-sb的所有pod

kubectl get pods -n ns-sb

3.2 删除pod

未设置副本数或者副本数设为0则可用常规删除命令

kubectl delete pod podname -n namespacename

若设置副本数大于等于1时,则需要删除deployment

kubectl delete deployment name -n namespacename

3.3 查看pod详细信息

查看pod的名称、状态、所在集群的ip、所在节点等信息

kubectl get pod -o wide -n namespacename

3.4 查看pod描述信息

查看所有pod的详细信息(包含日志信息)

kubectl describe pod -n namespacename

查看指定pod的详细信息(包含日志信息)

kubectl describe pod podname -n namespacename

3.5 查看deployment的日志信息

查看deployment的日志

kubectl logs deploymentname -n namespacename

3.6 查看问题pod

查看有问题的pod

kubectl get pods -l selectorname -n namespacename

注:selectorname 指yaml中定义的selector参数的值

3.7 进入pod

进入pod

kubectl exec -it podname -n namespacename -- /bin/bash

3.8 退出pod

退出pod

exit

4. 持久化存储pvc相关

4.1 查看pvc

查看全部pvc

kubectl get pvc -A

查看指定命名空间的pvc

kbuectl get pvc -n namespacename

4.2 删除pvc

kubectl delete pvc pvcname -n namespacename

5. 服务svc相关

即查看service
svc是service的缩写,两者都可用

5.1 查看svc

查看全部svc

kubectl get svc -A

查看指定命名空间的svc

kubectl get svc -n namespacename

5.2 删除svc

kubectl delete svc svcname -n namespacename

6. 查看全部服务

查看全部服务,包含可选pvc、deploy、pod、svc等,也可全选,如下

kubectl get pvc,deploy,pod,svc -A

7. 部署服务

7.1 部署所有yml文件

部署所有yml文件

kubectl apply -f .

7.2 部署某个yml文件

如部署当前文件夹gitlab-yaml下的redis.yml文件

kubectl apply -f ./gitlab-yaml/redis.yml

以下为拓展

8. 初始化集群主节点命令

初始化使用的是kubeadm命令

8.1 配置镜像列表

kubeadm config images list

指定版本

kubeadm config images list --kubernetes-version v1.23.0

8.2 拉取镜像

kubeadm config images pull  --image-repository registry.aliyuncs.com/google_containers

8.3 初始化kubeadm

kubeadm init \--apiserver-advertise-address=172.30.0.224 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version v1.23.0 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16 \--ignore-preflight-errors=all

–apiserver-advertise-address 集群通告地址(master 机器IP,这里用的万兆网)
–image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
–kubernetes-version K8s版本,与上面安装的一致
–service-cidr 集群内部虚拟网络,Pod统一访问入口,可以不用更改,直接用上面的参数
–pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致,可以不用更改,直接用上面的参数

8.4 其他节点加入集群

加入集群节点的命令(包含token)在初始化完成时输出的内容中,复制保存使用即可

kubeadm join 172.30.0.224:6443 --token 4uhwg7.ldccrwsxmplqahbc \--discovery-token-ca-cert-hash sha256:cf6e896414b3d3169774b38f435d7789a1466c83064c173fc56537ba7e949e81

8.5 生成join命令

如果token过期或忘记加入集群的命令,使用以下命令生成新的加入集群命令(包含token)

kubeadm token create --print-join-command

8.6 重置kubeadm

如果初始化失败,或者需要重新初始化,可执行以下两个命令

8.6.1 重置kubeadm

kubeadm reset

8.6.2 移除文件

移除相关文件,不然会重置失败

sudo rm -fr ~/.kube/  /etc/kubernetes/* var/lib/etcd/*

代理访问dashboard
使用该命令可以将dashboard的服务定位到本机的8001端口

kubectl proxy

会输出Starting to serve on 127.0.0.1:8001
在这里插入图片描述
然后访问代理地址
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

查看访问权限

kubectl auth can-i create deployments --namespace=kubernetes-dashboard

输出yes表示当前用户有权限创建deployments的权限,如果是no则表示没有权限
在这里插入图片描述
删除pod


感谢阅读,祝君暴富!

http://www.lryc.cn/news/308853.html

相关文章:

  • 加密和签名的区别及应用场景
  • 双非二本找实习前的准备day3
  • 又挖到宝了!国人团队研发的AI视频工具PixVerse,这么好用居然还完全免费!(强烈推荐)
  • 勒索病毒普通用户防范建议
  • Zabbix“专家坐诊”第231期问答
  • 【.NET Core】深入理解IO - FileSteam流
  • CentOS7 Mysql 忘记密码或临时密码进不去时怎么跳过密码进去然后再更改密码
  • 深度学习 精选笔记(8)梯度消失和梯度爆炸
  • linux操作docker
  • k8s Pod 进阶(资源限制,健康检查探针详解,启动退出,pod生命周期,)
  • SpringBoot整合ActiveMQ步骤
  • MySQL的单表和多表查询
  • 攻防世界例题wp
  • 仿牛客网项目---显示评论和添加评论功能的实现
  • idea集成git详解教程(实用篇)
  • 搭建LNMP环境并配置个人博客系统
  • 为什么网络安全缺口这么大,还是这么缺网络安全工程师?
  • 创新洞察|诺奖获得者埃德蒙·费尔普斯谈未来:中国创新从何而来?
  • SpringMVC 学习(六)之视图
  • ROS 2基础概念#1:计算图(Compute Graph)| ROS 2学习笔记
  • 一本通 1403:素数对
  • 华为---RSTP(四)---RSTP的保护功能简介和示例配置
  • Android基础控件介绍
  • 【总结】Maxwell学习笔记
  • AFL fork server和fuzzer的交互
  • Java SE:多线程(Thread)
  • 你敢信?软件测试万能面试脚本他来了?
  • C++/Python简单练手题
  • 视频在线压缩
  • Python列表的合并、重复、判断与切片操作你学会了吗