K8S——命令行工具kubectl

一、kubectl语法

kubectl [command] [TYPE] [NAME] [flags]

  • command:指定要对资源进行的操作,例如create、delete、get、describe等
  • TYPE:指定资源类型、资源类型是大小写敏感的,开发者能够以单数、复数、和缩略的形式。
  • NAME:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有资源。
  • flags:指定可选参数,例如:可用-s或者-server参数指定Kubernetes API server的地址和端口。
  • kubectl --help:获取更多信息

二、kubectl子命令使用分类

1、基础命令

类型command说明
基础命令create通过文件名或标准输入创建资源
基础命令expose将一个资源公开为一个新的Service
基础命令run在集群中运行一个特定的镜像
基础命令set在对象上设置特定的功能
基础命令get显示一个或多个资源
基础命令explain文档参考资料
基础命令edit使用默认的编辑器编辑一个资源
基础命令delete通过文件名、标准输入、资源名称或标签选择器来删除资源

2、部署和集群管理命令

类型command说明
部署命令rollout管理资源的发布
部署命令rolling-update对给定的复制控制器滚动更新
部署命令scale扩容或缩容pod数量,Deployment、ReplicaSet、RC或Job
部署命令autoscale创建一个自动选择扩容或缩容并设置Pod数量
集群管理命令certificate修改证书资源
集群管理命令cluster-info显示集群信息
集群管理命令top显示资源(CPU/Memory/Storage)使用,需要Heapster运行
集群管理命令cordon标记节点不可调度
集群管理命令uncordon标记节点可调度
集群管理命令drain驱逐节点上的应用,准备下线维护
集群管理命令taint修改节点taint标记

3、故障调试命令

类型command说明
故障诊断和调试命令describe显示特定资源或资源组的详细信息
故障诊断和调试命令logs在一个pod中打印一个容器日志。如果pod只有一个容器,容器名称是可选的
故障诊断和调试命令attach附加到一个运行的容器
故障诊断和调试命令exec执行命令到容器
故障诊断和调试命令port-forward转发一个或多个本地端口到一个pod
故障诊断和调试命令proxy运行一个proxy到Kubernetes API server
故障诊断和调试命令cp拷贝文件或目录到容器中
故障诊断和调试命令auth检查授权

4、其他命令

类型command说明
高级命令apply通过文件名或标准输入对资源应用配置
高级命令patch使用补丁修改、更新资源的字段
高级命令replace通过文件名或标准输入替换一个资源
高级命令convert不通的API版本之间转换配置文件
设置命令label更新资源上的标签
设置命令annotate更新资源上的注释
设置命令completion用于实现kubectl工具自动补全
其他命令api-versions打印受支持的api版本
其他命令config修改kubeconfig文件(用于访问API,比如配置认证信息)
其他命令help所有命令帮助
其他命令plugin运行一个命令行插件
其他命令version打印客户端和服务版本信息

5、常用的一些命令

# 创建一个运行了nginx的Pod
kubectl create deployment nginx --image=nginx
# 暴露pod的端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 获取pod的信息
kubectl get pod,svc
# 获取集群中的节点信息
kubectl get nodes
# 查看集群的状态
kubectl get cs

三、k8s的yaml配置文件讲解

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

1、字段说明

字段说明
apiVersionAPI版本
kind资源类型
metadata资源元数据
spec资源规格
replicas副本数量
selector标签选择器
templatePod模板
metadataPod元数据
specPod规格
containers容器配置

2、如何快速生成该yaml文件

# 第一种方式,使用kubectl create命令生成yaml,下面的命令解释
# --image:指定镜像 -o:将yaml文件输出 --dry-run:尝试运行,并不真正执行
kubectl create deployment web --image=nginx -o yaml --dry-run > web.yaml
# 第二种方式,使用kubectl get命令导出yaml文件(适用于已经部署过的项目)
# 1.20以后--export已经弃用了,可以直接生成yaml文件
kubectl get deploy nginx -o=yaml --export > nginx.yaml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值