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>