人生苦短,我用k8s--------------kuberctl命令合集

时间:2022-07-28
本文章向大家介绍人生苦短,我用k8s--------------kuberctl命令合集,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、 kubectl --help 详解

1、基础命令

  create       创建资源
  expose         使用 replication controller, service, deployment 或者 pod
                       并暴露它作为一个 新的 Kubernetes Service   主要是暴露端口
  run            在集群中运行一个指定的镜像
  set             为 objects 设置一个指定的特征   做版本设置的时侯会用到

2、中级指令

 explain       查看资源的文档
  get              显示一个或更多 get pod  get node   get all(可以查看所有)
  edit             直接编辑现在运行的资源
  delete         删除资源

3、部署性指令

rollout        回滚到上一级
  scale          为 Deployment, ReplicaSet, Replication Controller 或者 Job
                     设置一个新的副本数量  弹性伸缩的功能 设置副本数量
  autoscale     自动调整一个 Deployment, 副本级, 自动弹性收缩 

4、集群管理指令

  certificate     证书颁发
  cluster-info   显示集群信息
  top                查看pod的动态资源状态  
  cordon          标记为污点
  uncordon      清除污点
  drain             节点维护的时候使用这条指令  在升级的时候使用
  taint             污点(一旦某个节点,打上污点的标记 就不会再它上面创建资源               
探针是查看节点的健康值

5、查看pod信息

 describe      详细显示  pod的信息  $ kubectl describe nodes kubernetes-minion-emt8.c.myproject.internal
  logs             输出容器在 pod 中的日志
  attach        用于连接到一个指定的容器  并不是进入容器 相当于远程连接容器
  exec          进入容器  跟容器进行交互
  port-forward   端口转发到一个或者多个端口  端口映射
  proxy          代理apiserver
  cp             从本地复制一个东西到容器中
  auth           安全验证

6、高级指令

  apply          业务更新使用
  patch          更新一个指定文件的资源
  replace       替换一个资源
  wait            等待  超时时间
  convert        做二次开发的时候  要用到api版本  要写进调度文件

7、设置指令

  label             打标签
  annotate      打注释
  completion     Output shell completion code for the specified shell (bash or zsh)

8、其他指令

  alpha                Commands for features in alpha
  api-resources    哪一些资源名称可以缩写
  api-versions       可以看到apiversion版本信息  哪些可用
  config                修改 kubeconfig 文件
  plugin                Provides utilities for interacting with plugins.
  version               输出 client 和 server 的版本信息

二、kuberctl常见运维命令

1、常见管理容器生命周期操作命令

kubectl run nginx-test --image=nginx --port=80 --replicas=3   //创建三个nginx实例
kubectl get pods -w	                               //-w:动态查看
kubectl  get pods -o wide	                       //查看资源创建在那个节点上
kubectl get all	                                   //查看更详细信息:副本资源和控制器资源
kubectl get deployment,replicaset	               //仅查询pod资源的两个项
kubectl get svc	                                   //查看原有的service服务
kubectl expose deployment nginx-test --port=80 --target-port=80 --name=nginx-service --type=NodePort	                           //将刚刚创建的暴露出来
kubectl get endpoints                              //查看具体的service是在哪一台节点上创建的
kubectl api-resources                              //查询所有可以缩写的服务
yum -y install ipvsadm                             //1.18版本以后使用ipvs进行负载均衡
ipvsadm -Ln                                        //-L是以列表显示   -n是以数字显示  查看负载的端口和ip  对应访问
kubectl logs nginx-test-7fcfb6488c-mmhrm           //查看访问日志  可以先get pod 然后查看id
kubectl set image deployment/nginx-test nginx-test=nginx:1.13    //滚动更新nginx的版本kuberctl get pod -w  动态查看
kubectl rollout history deployment/nginx-test       //查看回滚历史
kubectl rollout undo deployment/nginx-test          //执行回滚 回滚到上一次更新的地方
kubectl delete deployment/nginx-test                //删除pod  
kubectl delete svc/nginx-service                    //删除service
kubectl describe deployment.apps                    //查看deployment控制器的所有子控制器
kubectl exec -it nginx-dbddb74b8-5s6h7 bash         //进容器命令
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o yaml	//此命令直接生成yaml文件内容展示出来,并不会保存
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o json	//也可以生成json格式
kubectl run nginx-test01 --image=nginx --port=80 --replicas=2 --dry-run -o yaml > nginx-test01.yaml      //自动生成yaml格式的文件并保存
kubectl get deployment/nginx --export -o yaml > nginx-test02.yaml           //将现有的资源导入到yaml文件  也是相当于备份了
kubectl explain pods.spec.containers                                                                //查看yaml文件中的某一字段的帮助信息
kubectl delete pod xxx --force --grace-period=0                                               //强制删除某一pod
[root@localhost yaml]# kubectl scale deployment nginx-test --replicas=4    //加控制节点 replicas  设置成4个节点

kuberctl edit deploy/nginx                        //编辑yaml文件  这里注意的是编辑的是deployment控制器

2、Terminating状态的无法删除的资源处理

[root@localhost demo]# kubectl get pods
NAME                              READY   STATUS        RESTARTS   AGE
my-tomcat-57667b9d9-nklvj         1/1     Terminating   0          10h
my-tomcat-57667b9d9-wllnp         1/1     Terminating   0          10h
//这种情况下可以使用强制删除命令:
kubectl delete pod [pod name] --force --grace-period=0 -n [namespace]
[root@localhost demo]# kubectl delete pod my-tomcat-57667b9d9-nklvj --force --grace-period=0 -n default