Kubernetes Kubectl常用命令
Basic Commands
命令 | 描述 |
---|---|
create/apply | 从文件或stdin创建资源 |
expose | 为deployment、pod创建service |
run | 在集群中运行指定的镜像 |
set | 在对象上设置一个specific |
get | 最基本的查询命令 可以get一切资源信息 |
explain | 查看资源定义,如 kubectl explain replicaset |
edit | 使用系统编辑器编辑资源 kubectl edit deploy/foo |
delete | 删除指定资源,支持文件名、资源名、label selector。kubectl delete po -l foo=bar |
Deploy Commands
命令 | 描述 |
---|---|
rollout | Deployment、DaemonSet的升级过程管理 查看状态、操作历史、暂停升级、恢复升级、回滚 |
rolling-update | 客户端滚动升级,仅限ReplicationController |
scale | 修改Deployment、ReplicaSet、ReplicationController,Job的实例数 |
autoscale | 为Deployment、ReplicaSet、ReplicationController配置自动伸缩规则,依赖heapster和hpa |
Cluster Management Commands
命令 | 描述 |
---|---|
certificate | 修改证书资源 |
cluster-info | 查看集群信息 |
top | 查看资源占用率 依赖heapster |
cordon | 封锁。标记节点为unschedulable |
uncordon | 解封。标记节点为schedulable |
drain | 驱逐节点上的应用,准备下线维护 |
taint | 污染。修改节点taint标记 |
Troubleshooting and Debugging Commands
命令 | 描述 |
---|---|
describe | 查看资源详情 |
logs | 查看pod内的容器日志 |
attach | attach到pod内的一个容器 |
exec | 在指定的容器内执行命令 |
port-forward | 为pod创建本地端口映射 |
proxy | 为kubernetes API server创建代理 |
cp | 容器内外、容器间文件拷贝 |
Advanced Commands
命令 | 描述 |
---|---|
apply | 从文件或者stdin创建、更新资源 |
patch | 使用Strategic merge patch语法更新对象的某些字段 |
replace | 从文件或者stdin更新资源 |
convert | 在不同API版本之间转换对象定义 |
Settings Commands
命令 | 描述 |
---|---|
label | 给资源设置label |
annotate | 给资源设置annotation |
completion | 获取shell自动补全脚本 支持bash和zsh |
Others Commands
命令 | 描述 |
---|---|
api-versions | 打印服务器上支持的API版本 |
config | 修改kubectl配置 kubeconfig文件 |
help | 帮助文档 |
version | 查看客户端和server端的k8s版本 |
Kubectl实用技巧
Kubectl命令助记
查看资源缩写
kubectl api-resources
kubectl describe
配置kubectl自动完成
source <(kubectl completion bash)
重启Deployment
1 | kubectl patch deployment <deployment-name> \ |
Kubectl生成yaml
用run命令生成
kubectl run --image=nginx my-deploy -o yaml --dry-run > my-deploy.yaml
用get命令生成
kubectl get statefulset/foo -o=yaml --export > new.yaml
Pod亲和性下面的字段拼写忘记了
kubectl explain pod.spec.affinity.podAffini