一、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、常用的一些命令
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
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、字段说明
字段 | 说明 |
---|
apiVersion | API版本 |
kind | 资源类型 |
metadata | 资源元数据 |
spec | 资源规格 |
replicas | 副本数量 |
selector | 标签选择器 |
template | Pod模板 |
metadata | Pod元数据 |
spec | Pod规格 |
containers | 容器配置 |
2、如何快速生成该yaml文件
kubectl create deployment web --image=nginx -o yaml --dry-run > web.yaml
kubectl get deploy nginx -o=yaml --export > nginx.yaml