K8S入门学习笔记第二天,认识k8s集群,集群报错排查,管理K8S日志方法
发布日期:2021-05-07 07:25:09 浏览次数:25 分类:精选文章

本文共 2684 字,大约阅读时间需要 8 分钟。

查看master 组件的状态
kubectl get  cs

在这里插入图片描述

查看k8s所有资源信息

kubectl api-resources

资源名称								缩写			版本							指定命名空间(-n)	  指定资源名称																NAME                              SHORTNAMES   APIVERSION                    NAMESPACED        KINDbindings                                       v1                            true              Bindingcomponentstatuses                 cs           v1                            false            ComponentStatusconfigmaps                        cm           v1                            true             ConfigMapendpoints                         ep           v1                            true             Endpointsevents                            ev           v1                            true             Eventlimitranges                       limits       v1                            true             LimitRangenamespaces                        ns           v1                            false            Namespacenodes                             no           v1                            false            Node

在这里插入图片描述

当 我们使用kubectl 工具出现错误时?
kubectl-----> kube-apiserver------>etcd

查看资源信息
kubectl describe     
<资源类型>
<资源名称>
<命名空间>
kubectl describe pod web66-d9ffbf5c8-sp5pm -n default

####当get node节点出现NotReady怎么排查错误

1.查看kubelet是否正常运行? kube
####### 部署监控集群资源利用率
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

kubectl top  podkubectl top  node

在这里插入图片描述

当kubectl top 执行错误怎么排查

kubectl get apiservice

1.kubectl describe apiservice v1beta1.metrics.k8s.io
2.如果describe出现网络错误,在二进制部署环境,一般是master没有部署node组件或者没有启动k8s聚合曾

管理K8S组件日志

systemd守护进程组件
journalctl -u kubelet |egrep -i "cgroup|failed|error"
pod部署的组件
kubectl logs  kube-proxy-btz4p  -n kube-system
系统日志:
/var/log/messages

K8S常用的组件

master : apiserver     etcd  controller-manager       schedulernode :  kubelet(sytemd管理)   kube-proxy

二进制搭建集群:所有组件都是systemd管理

k8s 查看标准输出日志流程

kubectl logs  -f  etcd-cka-master -n kube-systemkubectl logs  -f  my-pod   -c  log  -n  default   #指定pod查询日志

查找应用日志实战

进入容器的方法

kubectl exec -it web66-d9ffbf5c8-sp5pm  -- bash

1. 创建一个pod

cat  pod.yamlapiVersion: v1kind: Podmetadata:  name: my-podspec:  containers:  - name: web-zf    image: lizhenliang/nginx-php    volumeMounts:    - name: logs      mountPath: /usr/local/nginx/logs#- name: log#image: busybox#args: [/bin/sh, -c, 'tail -f /opt/access.log'] #volumeMounts:#- name: logs#mountPath: /opt#将日志目录持久化到宿主机目录上logs  volumes:  - name: logs    emptyDir: {   }

两个容器都是挂载的同一个日志目录,一个容器写日志,一个容器读取日志

kubectl apply -f pod.yaml #创建启动pod

2验证访问pod服务

在这里插入图片描述

3查找pod id,获取日志

docker ps | grep my-pod

在这里插入图片描述
获取pod id
在这里插入图片描述

日志输出的最终路径为

/var/lib/kubelet/pods/222c4084-9dd8-4248-a1c2-c514bebeee14/volumes/kubernetes.io~empty-dir/logs

在这里插入图片描述

能够看到刚才访问的日志

日志平台搭建哪个技术用的多?

ELK  重量级   (5G以上建议使用) (日志采集)Graylog   轻量级Loki  轻量级
上一篇:历届试题 日期问题
下一篇:二进制一键部署K8S集群实战

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月04日 06时59分31秒