管理资源(查看、创建、更新、删除)
查看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