k8s常用命令总结
前言
俗话说。好记性不如烂笔头,这里将k8s常用命令进行整理,随时可供查看。希望对大家有一丝帮助。
希望大家觉得有用可以进行关注和收藏。
冲冲冲!
常用命令
node
功能说明 | 命令 |
---|---|
查看服务器节点 | kubectl get nodes |
查看服务器节点详情 | kubectl get nodes -o wide |
节点打标签 | kubectl label nodes <节点名称> labelName=<标签名称> |
查看节点标签 | kubectl get node --show-labels |
删除节点标签 | kubectl label node <节点名称> labelName- |
pod
功能说明 | 命令 |
---|---|
查看pod节点 | kubectl get pod <节点名称> |
查看所有pod节点 | kubectl get pods -A |
搜索部分pod节点 | kubectl get pods |grep <节点名称> |
查看pod节点详情 | kubectl get pod -o wide |
查看所有名称空间下的pod | kubectl get pod --all-namespaces |
根据yaml文件创建pod | kubectl apply -f <文件名称> |
根据yaml文件删除pod | kubectl delete -f <文件名称> |
删除pod节点 | kubectl delete pod <pod名称> -n <名称空间> |
查看异常的pod节点 | kubectl get pods -n <名称空间> |
查看异常pod节点的日志 | kubectl describe pod <pod名称> -n <名称空间> |
查看pod日志 | kubectl logs -f <pod名称> |
进入pod | kubectl exec -it <pod名称> bash |
普通方式创建pod | kubectl run <pod名称> --image=<镜像名称> |
监控pod(一秒钟更新一次命令) | watch -n 1 kubectl get pod |
deployment
功能说明 | 命令 |
---|---|
deployment部署pod(具有自愈能力,宕机自动拉起) | kubectl create deployment <pod名称> --image=<镜像名称> |
deployment部署pod(多副本) | kubectl create deployment <pod名称> --image=<镜像名称> --replicas=3 |
查看deployment部署 | kubectl get deploy |
删除deployment部署 | kubectl delete deploy <pod名称> |
deployment扩容\缩容pod | kubectl scale deploy/<pod名称> --replicas=<5> |
deployment扩容\缩容pod | kubectl edit deploy <pod名称> |
deployment滚动更新pod | kubectl set image deploy/<pod名称> <容器名称>=<镜像名称:版本号> --record |
deployment查看pod回退版本 | kubectl rollout history deploy/<pod名称> |
deployment查看pod回退版本详情 | kubectl rollout history deploy/<pod名称> --revision=1 |
deployment回退pod到上一个版本 | kubectl rollout undo deploy/<pod名称> |
deployment回退pod到指定版本 | kubectl rollout undo deploy/<pod名称> --to-revision=1 |
deployment暴露pod集群内部访问(ClusterIP) | kubectl expose deploy <pod名称> --port=8080 --target-port=80 --type=ClusterIP |
deployment暴露pod外网访问(NodePort) | kubectl expose deploy <pod名称> --port=8080 --target-port=80 --type=NodePort |
svc
功能说明 | 命令 |
---|---|
查看服务 | kubectl get svc |
查看服务详情 | kubectl get svc -o wide |
查看所有名称空间下的服务 | kubectl get svc --all-namespaces |
namespace
功能说明 | 命令 |
---|---|
查看命名空间 | kubectl get namespace |
查看命名空间 | kubectl get ns |
创建命名空间 | kubectl create ns <名称> |
删除命名空间 | kubectl delete ns <名称> |
集群
功能说明 | 命令 |
---|---|
集群健康状态 | kubectl get cs |
集群核心组件运行情况 | kubectl cluster-info |
版本 | kubectl version |
api | kubectl api-versions |
查看事件 | kubectl get events |
创建
功能说明 | 命令 |
---|---|
指定yaml文件创建资源 | kubectl create -f <yaml文件> |
创建加更新资源 | kubectl apply -f <yaml文件> |
创建当前目录下的所有yaml资源 | kubectl create |
使用多个yaml文件创建资源 | kubectl create -f <yaml文件1> -f <yaml文件> |
使用url来创建资源 | kubectl create -f https://git.io/vPieo |
创建带有终端的pod | kubectl run -i --tty busybox --image=busybox |
启动一个nginx实例 | kubectl run nginx --image=nginx |
启动多个pod | kubectl run mybusybox --image=busybox --replicas=5 |
获取pod和scv的文档 | kubectl explain pods,svc |
更新
功能说明 | 命令 |
---|---|
滚动更新pod frontend-v1 | kubectl rolling-update python-v1 -f python-v2.json |
更新资源名称并更新镜像 | kubectl rolling-update python-v1 python-v2 --image=image:v2 |
更新frontend pod中的而镜像 | kubectl rolling-update python --image=image:v2 |
退出已存在的进行中的滚动更新 | kubectl rolling-update python-v1 python-v2 --rollback |
基于 stdin 输入的 JSON 替换 pod | cat pod.json |kubectl replace -f - |
为 nginx RC 创建服务,启用本地 80 端口连接到容器上的 8000 端口 | kubectl expose rc nginx --port=80 --target-port=8000 |
编辑资源
功能说明 | 命令 |
---|---|
编辑名为 docker-registry 的 service | kubectl edit svc/docker-registry |
使用其他编辑器 | KUBE_EDITOR=“nano” kubectl edit svc/docker-registry |
修改启动参数 | vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf |
动态收缩pod
功能说明 | 命令 |
---|---|
将foo副本集变成3个 | kubectl scale --replicas=3 rs/foo |
缩放“foo”中指定的资源。 | kubectl scale --replicas=3 -f foo.yaml |
将deployment/mysql从2个变成3个 | kubectl scale --current-replicas=2 --replicas=3 deployment/mysql |
变更多个控制器的数量 | kubectl scale --replicas=5 rc/foo rc/bar rc/baz |
查看变更进度 | kubectl rollout status deploy deployment/mysql |
滚动升级
功能说明 | 命令 |
---|---|
配置文件滚动升级 | kubectl rolling-update:滚动升级 kubectl rolling-update redis-master -f redis-master-controller-v2.yaml |
命令升级 | kubectl rolling-update redis-master --image=redis-master:2.0 |
pod版本回滚 | kubectl rolling-update redis-master --image=redis-master:1.0 --rollback |
调度配置
功能说明 | 命令 |
---|---|
标记节点不可调度 | kubectl cordon k8s-node |
清空节点以待维护 | kubectl drain k8s-node |
标记节点可调度 | kubectl uncordon k8s-node |
显示节点的指标度量 | kubectl top node k8s-node |
将当前集群状态输出到 stdout | kubectl cluster-info dump |
将当前集群状态输出到 /path/to/cluster-state | kubectl cluster-info dump --output-directory=/path/to/cluster-state |
如果该键和影响的污点(taint)已存在,则使用指定的值替换 | ubectl taint nodes foo dedicated=special-user:NoSchedule |
查看kubelet进程启动参数 | ps -ef |grep kubelet |
重启kubelet服务
功能说明 | 命令 |
---|---|
重启kubelet服务 | systemctl daemon-reload ||| systemctl restart kubelet |