管理资源(查看、创建、更新、删除)

查看node资源

kubectl get nodes

查看命名空间

kubectl get ns

查看service资源

-n 指明所属的命名空间,不写默认看命名空间为default下的所有service

kubectl get svc -n default

查看pod资源

-n 指明所属的命名空间,不写默认看命名空间为default下的pod

kubectl get pods -n test

-o wide :查看资源列表的更多信息

kubectl get pods -o wide 

查看某个资源的详情

例如:查看 pod名为 pod-nginx的详细信息
-n 指明pod-nginx所属的命名空间

kubectl describe pod pod-nginx -n test

创建新的命名空间

例如:创建名为 dev 的命名空间

kubectl create ns dev

创建资源

kubectl create -f resource.yaml

更新资源(变更了镜像)

kubectl apply -f resource.yaml

删除资源

kubectl delete -f resource.yaml

删目录下所有yaml文件定义的所有资源

kubectl delete -f .

强制删除

kubectl delete -f resource.yaml --force --grace-period=0

管理资源标签

例如:查看节点名为 k8s-node1 上的所有标签

kubectl get nodes k8s-node1 --show-labels

给 k8s-node1 节点打个具有 “node-type=worker” 的标签

kubectl label nodes k8s-node1 node-type=worker

列出命名空间为test下 标签key是 “release” 的Pod(-l:仅过滤不显示标签)

kubectl get pods -n test -l release

列出命名空间为test下 标签key包含 “release” 或 “app” 的Pod(-L:显示对应的标签值)

kubectl get pods -n test -L release,app

列出命名空间为test下 标签key是 “release”、值是 “v1” 的 Pod(不显示标签)

kubectl get pods -n test -l release=v1

删除命名空间为test下 标签key是“release”、值是 “v1” 的 Pod

kubectl delete pods -n test -l release=v1

删除资源的某个标签

例如:删除 “k8s-node2” 节点上的 “node-type”标签

kubectl label nodes k8s-node2 node-type-

查看pod日志

例如:查看pod名为foobar的日志

kubectl logs foobar

查看pod中具体容器日志

例如:查看名为foobar的pod,它里面的nginx容器的日志

kubectl logs foobar -c nginx

进入pod的容器内

(1)pod里只有一个容器,使用参数exec -it ,直接登录到pod中

例如:查看pod名为foobar

kubectl exec -it foobar -- bash

(2)pod里有多个容器,加-c指定进入到pod具体容器里

kubectl exec -it foobar -c nginx --  bash

管理 pod 扩缩容

scale命令用于手动横向扩展

kubectl scale --replicas=3 deployment nginx

autoscal命令用于自动扩展确认,会根据负载进行调解。
这条命令可以对Deployment进行设定,通过最小值和最大值的指定进行设定。

kubectl autoscale deployment nginx --min=2 --max=5

节点维护-指定 node 节点不可用

例如:将 k8s-node1 节点设置为不可用,然后重新调度该节点上的所有 Pod

1、设置节点是不可调度状态

kubectl cordon k8s-node1    

2、驱逐节点上的pod资源

kubectl drain k8s-node-1 --delete-emptydir-data --ignore-daemonsets --force

检查可用节点数量

检查集群中有多少节点为 Ready 状态(不包括被打上 Taint:NoSchedule 的节点)

  • -i 是忽略大小写,-v 是排除在外, -c 是统计查出来的条数
kubectl describe nodes | grep -i Taint | grep -vc NoSchedule

监控 pod 的 cpu

例如:找出标签是 name=cpu-user 的 Pod,并按 CPU使用的程度正向排序

前提:安装部署metrics

1、master上放 metrics-server.yaml
2、node上解压镜像:ctr -n k8s.io i import metrics-server-amd64-0-3-6.tar.gz
3、查看服务:kubectl get pods -n kube-system

以上1、2中,metrics 部署资源 下载

链接: https://pan.baidu.com/s/1AcGtMjXFk9_iEHRuPnR5WQ?pwd=r2km
提取码: r2km
在这里插入图片描述

  • 没有指定的 namespace。需要使用 -A 看所有 namespace下
kubectl top pod -l name=cpu-user --sort-by=cpu -A
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐