概述
1、名称空间
namespace 用于将k8s中的资源进行隔离,形成多个虚拟集群(更加方便管理)
应用场景:
•
根据不同团队划分命名空间
•
根据项目划分命名空间
kubectl get namespace
• default:默认命名空间
• kube-system:K8s系统方面的命名空间
• kube-public:公开的命名空间,谁都可以访问,
• kube-node-lease:K8s内部命名空间
指定资源命名空间:
•
命令行加 -n
•
yaml资源元数据里指定namespace字段
查看命名空间
kubectl get namespace
创建命名空间
kubectl create namespace wanghaonan
创建命名空间内容器
kubectl create deployment nginx --image=nginx:v1 -n wanghaonan
查看命名空间内容器
kubectl get deploy -n wanghaonan
2、查看资源集群状态
查看master组件状态:
kubectl get cs
查看node状态:
kubectl get node
查看Apiserver代理的URL:
kubectl cluster-info
查看集群详细信息:
kubectl cluster-info dump
查看资源信息:
kubectl describe <资源> <名称>
查看资源信息:
kubectl get <资源>
查看有多少资源
kubectl api-resources
监控集群资源利用率
查看Node资源消耗:
kubectl top node <node name>
查看Pod资源消耗:
kubectl top pod <pod name>
执行时会提示错误:error: Metrics API not available
这是因为这个命令需要由metric-server服务提供数据,而这个服务默认没
有安装,还需要手动部署下。
Metrics Server是一个集群范围的资源使用情况的数据聚合器。作为一个应用部署在集群中。Metric server从每个节点上Kubelet API收集指标,通过Kubernetes聚合器注册在Master APIServer中。为集群提供Node、Pods资源利用率指标
kubectl top -> apiserver -> metrics-server(第三方工具,需要下载) -> kubelet(cadvisor)
查看官方文档:https://github.com/kubernetes-sigs/metrics-server
Metrics Server部署:
链接:https://pan.baidu.com/s/15PpGleGX-PDl7hn2pvUaeA?pwd=1234
提取码:1234
提取码:1234
检查是否部署成功:
kubectl apply -f metrics-server.yaml -n kube-system
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-97769f7c7-tcbz9 1/1 Running 0 19h
calico-node-4kbmk 1/1 Running 2 19h
calico-node-9fmdq 1/1 Running 0 19h
calico-node-ztkcm 1/1 Running 0 19h
coredns-7f89b7bc75-8c98m 1/1 Running 0 19h
coredns-7f89b7bc75-zjnrz 1/1 Running 0 19h
etcd-k8s-master 1/1 Running 0 19h
kube-apiserver-k8s-master 1/1 Running 0 19h
kube-controller-manager-k8s-master 1/1 Running 0 19h
kube-proxy-rgg7s 1/1 Running 0 19h
kube-proxy-td752 1/1 Running 2 19h
kube-proxy-zrbvh 1/1 Running 0 19h
kube-scheduler-k8s-master 1/1 Running 0 19h
metrics-server-645c7cc6f5-l74sf 1/1 Running 0 17m
kubectl get apiservices |grep metrics
kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes
如果状态True并能返回数据说明Metrics Server服务工作正常。
[root@k8s-master ~]# kubectl get --raw /apis/metrics.k8s.io/v1beta1/nodes
{"kind":"NodeMetricsList","apiVersion":"metrics.k8s.io/v1beta1","metadata":{},"items":[{"metadata":{"name":"k8s-master","creationTimestamp":"2022-12-08T02:34:13Z","labels":{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"k8s-master","kubernetes.io/os":"linux","node-role.kubernetes.io/control-plane":"","node-role.kubernetes.io/master":""}},"timestamp":"2022-12-08T02:34:08Z","window":"1m0s","usage":{"cpu":"135353047n","memory":"1913660Ki"}},{"metadata":{"name":"k8s-node1","creationTimestamp":"2022-12-08T02:34:13Z","labels":{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"k8s-node1","kubernetes.io/os":"linux"}},"timestamp":"2022-12-08T02:34:05Z","window":"1m0s","usage":{"cpu":"67920796n","memory":"1267524Ki"}},{"metadata":{"name":"k8s-node2","creationTimestamp":"2022-12-08T02:34:13Z","labels":{"beta.kubernetes.io/arch":"amd64","beta.kubernetes.io/os":"linux","kubernetes.io/arch":"amd64","kubernetes.io/hostname":"k8s-node2","kubernetes.io/os":"linux"}},"timestamp":"2022-12-08T02:34:08Z","window":"1m0s","usage":{"cpu":"1114381176n","memory":"1688164Ki"}}]}
[root@k8s-master ~]# kubectl top node
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 136m 6% 1868Mi 50%
k8s-node1 68m 3% 1237Mi 42%
k8s-node2 1115m 55% 1648Mi 56%
[root@k8s-master ~]# kubectl top pod
NAME CPU(cores) MEMORY(bytes)
nginx-6f494fd48c-jwm4b 0m 3Mi
web-674477549d-576fr 1m 183Mi
web-674477549d-6kmzr 1m 169Mi
3、管理K8s组件日志
systemd守护进程管理的组件:
journalctl -u kubelet
Pod部署的组件:
kubectl logs kube-proxy-btz4p -n kube-system
系统日志:
/var/log/messages
查看容器标准输出日志:
kubectl logs <Pod名称>
kubectl logs -f <Pod名称>
kubectl logs -f <Pod名称> -c <容器名称>
标准输出在宿主机的路径:
/var/lib/docker/containers/<container-id>/<container-id>-json.log
针对标准输出:
以DaemonSet方式在每个Node上部署一个日志收集程序,采集/var/lib/docker/containers/目录下所有容器日志
针对容器中日志文件:
在Pod中增加一个容器运行日志采集器,使用emtyDir共享日志目录让日志采集器读取到日志文件
最后
以上就是和谐季节为你收集整理的kubernetes基础学习(三)监控与日志的全部内容,希望文章能够帮你解决kubernetes基础学习(三)监控与日志所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复