kuberctl工具的使用
基本操作
kubectl --help
<!-- 获取 部署配置列表 -->
kubectl get deployment -n 命名空间<!-- 获取pod列表 -->
kubectl get pod -n 命名空间
- 删除pod
- 由于有deployment, 删除pod会导致pod重新启动
kubectl delete pod <pod名> -n <命名空间>
kubectl edit deployment/<deployment名> -o yaml --save-config -n namespace
kubectl delete deployment <deployment名> -n <命名空间>
kubectl get deployment dsers-notify-consumer-v1 -o yaml -n dsers-test
kubectl apply -f components.yaml
kubectl get node
- 获取k8s 所有资源
- 字段:资源名、缩写、组、是否支持命名空间、资源名称
kubectl api-resources
kubectl get cs
kubectl cluster-info
kubectl cluster-info dump
kubectl describe <资源> <主机名称>
// 查看 ali-zb-dsers-acktest-sys-10.16.21.239 这个node的信息
kubectl describe node ali-zb-dsers-acktest-sys-10.16.21.239
<!-- 查看日志 -->
kubectl logs pod_name -n name_space
<!-- 实时打印 -->
kubectl logs -f pod_name -n name_space
<!-- pod含有多个容器 -->
kubectl logs pod_name -c nginx
<!-- 使用标签 -->
kubectl logs -l k8s-app=kube-dns -n kube-system
<!-- 追加到文件中 -->
kubectl logs calico-node-frr2c -n kube-system | grep ERROR > /root/2.txt
<!-- 查看最新 n 行 -->
kubectl logs --tail=200 -n dsers-test open-app-banner-consumer-v1-6db7fddb56-qmwtk
<!-- 查看最新两小时的 -->
kubectl logs --since=2h -n dsers-test open-app-banner-consumer-v1-6db7fddb56-qmwtk
kubectl管理命令汇总 |
类型 | 命令 | 描述 |
基础命令 | create | 通过文件名或标准输入创建资源 |
expose | 为Deployment、Pod创建Service |
run | 在集群中运行一个特定的镜像 |
set | 在对象上设置特定的功能 |
explain | 文档参考资料 |
get | 显示一个或多个资源 |
edit | 使用系统编辑器编辑一个资源。 |
delete | 通过文件名、标准输入、资源名称或标签选择器来删除资源。 |
部署命令 | rollout | 管理Deployment,Daemonset资源的发布(例如状态、发布记录、回滚等) |
rolling-update | 滚动升级,仅限ReplicationController |
scale | 对Deployment、ReplicaSet、RC或Job资源扩容或缩容Pod数量 |
autoscale | 为Deploy,RS,RC配置自动伸缩规则(依赖metrics-server和hpa) |
集群管理命令 | certificate | 修改证书资源 |
cluster-info | 显示集群信息 |
top | 查看资源利用率(依赖metrics-server) |
cordon | 标记节点不可调度 |
uncordon | 标记节点可调度 |
drain | 驱逐节点上的应用,准备下线维护 |
taint | 修改节点taint标记 |
故障诊断和调试命令 | describe | 显示资源详细信息 |
logs | 查看Pod内容器日志,如果Pod有多个容器,-c参数指定容器名称 |
attach | 附加到Pod内的一个容器 |
exec | 在容器内执行命令 |
port-forward | 为Pod创建本地端口映 |
proxy | 为KubernetesAPIserver创建代理 |
cp | 拷贝文件或目录到容器中,或者从容器内向外拷贝 |
高级命令 | apply | 从文件名或标准输入对资源创建/更新 |
patch | 使用补丁方式修改、更新资源的某些字段 |
replace | 从文件名或标准输入替换一个资源 |
convert | 在不同API版本之间转换对象定义 |
设置命令 | label | 给资源设置、更新标签 |
annotate | 给资源设置、更新注解 |
completion | kubectl工具自动补全,source<(kubectlcompletionbash)(依赖软件包bash-completion) |
其他命令 | api-resources | 查看所有资源 |
api-versions | 打印受支持的API版本 |
config | 修改kubeconfig文件(用于访问API,比如配置认证信息) |
help | 所有命令帮助 |
version | 查看kubectl和k8s版本 |
<!-- 修改pod数 -->
kubectl scale deployment my-deployment --replicas=3
<!-- 重启pods -->
kubectl rollout restart deployment <deployment_name> -n <namespace>