暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CCSE日常运维

IT那活儿 2025-07-28
407

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!



组件日志查看

1.1 K8S组件日志
不同版本的k8s,systemd管理的进程会不一样,k8s-1.8.x可以查看keepalived、docker、kubelet、kube-apiserver、kube-controller-manager、kube-scheduler、kube-proxy等组件的日志,k8s-1.17.x可以查看keepalived、docker、kubelet等组件的日志。
systemd管理的进程,都是使用journalctl命令来查看日志,如下:
  • $ sudo journalctl -xeu docker --no-pager   
    # 查看docker进程的日志。
  • $ sudo journalctl -xeu docker --no-pager | tail -n 100    
    # 查看docker的最近100行日志。
  • $ sudo journalctl -xeu kubelet --no-pager   
     # 查看kubelet进程的日志。
1.2 容器标准输出日志
容器的标准输出日志使用kubectl命令来查看:
  • kubectl logs <pod-name> -n <namespace-name>
    #查看所有日志。
  • $ kubectl logs <pod-name> --tail 100 -n <namespace-name>  
    #查看最近100行日志。
  • $ kubectl logs -f <pod-name> -n <namespace-name>  
     #流式输出日志。
如果一个Pod中有多个Container,则使用下面的命令
$ kubectl logs <pod-name> -c<container-name> -n <namespace-name>
可以通过如下命令查看Pod中有哪些Container:
$ kubectl get pod <pod-name> -n <namespace-name> -o jsonpath=

'{.spec.containers[*].name}{"\n"}'

 container1 container2

1.3 K8S插件日志
k8s的插件都是以容器的方式运行在集群中,所有我们都是查看插件容器的标准输出日志
查看calico-node日志,在k8s-1.8.x版本中,calico-node的Pod中有两个Container,可以通过命令查看Container的名字,然后再查看某个Container的日志
用如下命名获取获取calico-node-xxxxx中的container的名字,一个是calico-node,一个是install-cni
$ kubectl get pod calico-node-xxxxx -n kube-system -o jsonpath=

'{.spec.containers[*].name}{"\n"}'

用如下命令查看calico-node-xxxx中calico-node这个这个Container的日志
$ kubectl logs calico-node-xxxxx -c calico-node -n kube-system
在k8s-1.17.x版本中,calico-node的Pod中只有一个Container,直接查看即可
查看nginx-ingress-controller日志,该Pod种只有1个容器,用以下命令直接查看即可:
$ kubectl logs nginx-ingress-controller-xxxxx -n kube-system | tail -n 100
查看dns插件的日志,在k8s-1.8.x版本中,dns插件为kubedns,一个Pod中有3个Container,可以如下命令查看日志:
kubectl get pod kube-dns-5c6bdb9894-sp4fq -n kube-system -o jsonpath=

'{.spec.containers[*].name}{"\n"}'

kubedns dnsmasq sidecar



组件启停

2.1 管理台重启
对于2.7.5及以前的版本,管理台是直接部署在物理机上的tomcat下。首先执行命令sudo netstat -apn | grep <port>,找到管理台的pid(<port>是管理台的端口),然后执行以下的命令停止管理台:
kill-9 <pid>
启动管理台,找到安装目录启动脚本,执行如下命令:
$ bin/startup.sh
对于2.7.6开始的版本,管理台是用docker-compose管理的,进入到管理台的安装目录,安装目录下会有一个docker-compose.yml文件,执行命令重启管理台:
$ sudo systemctl start docker
$ sudo docker-compose down 
$ sudo docker-compose up -d

2.2 重启K8S组件
对于k8s-1.8.x版本(在master节点上执行命令kubectl get node可以看到版本),各组件都是用systemd管理的,在Master节点执行以下命令手动重启各组件
$ sudo systemctl stop etcd kube-apiserver kube-controller-manager kube-scheduler docker kubelet kube-proxy
$ sudo systemctl start etcd kube-apiserver kube-controller-manager kube-scheduler docker kubelet kube-proxy

在Worker节点执行如下命令启动各组件:
$ sudo systemctl stop docker kubelet kube-proxy
$ sudo systemctl start docker kubelet kube-proxy

对于k8s-1.17.x版本(在master节点上执行命令kubectl get node可以看到版本),k8s的master组件是以容器起来,其他组件也是以systemd管理的,执行以下命令手动重启:
$ sudo systemctl stop docker kubelet
$ sudo systemctl start docker kubelet

2.3 重启K8S插件
执行如下命令重启calico容器:
$ kubectl get pod -n kube-system | grep calico | awk 
'{print $1}' | xargs kubectl delete pod -n kube-system

执行如下命令重启dns容器:
$ kubectl get pod -n kube-system | grep dns | awk 
'{print $1}' | xargs kubectl delete pod -n kube-system

执行如下命令重启nginx-ingress-controller容器:
$ kubectl get pod -n kube-system | grep nginx | awk 
'{print $1}' | xargs kubectl delete pod -n kube-system

2.4 重启harbor
对于Harbor,重启前先检查docker是否正常运行,然后进入到harbor的安装目录(每个环境要做好记录以免找不到),安装目录下会有一个docker-compose.yml文件,然后执行命令
$ sudo systemctl start docker
$ sudo docker-compose down
$ sudo docker-compose up -d



监控管理

3.1 K8S节点状态监控
在CCSE管理台,进入“概览”页面,可以对集群节点状态进行查看。进入“集群”页面的“节点”菜单,可以对集群节点进行监控。
3.2 K8S集群资源使用监控
CCSE管理台,进入“概览页面可查看集群CPU使用率、集群内存使用率、集群磁盘使用率和集群Pod使用率四个维度的监控:
3.3 K8S组件监控
CCSE管理台,进入“概览页面可查看集群,可以查看k8s集群组件的状态:
3.4 K8S异常Pod监控
CCSE管理台,进入“概览页面可查看集群,可以查看异常状态pod的信息:
3.5 K8S主机监控
CCSE管理台,进入“集群页面可查看集群,选择对应的集群,选择“节点”菜单,点击“菜单”按钮,可以从CPU使用率、内存使用率、网络流入流出速率(bps)、磁盘使用率4个维度对主机节点进行监控:


常用运维命令

4.1 Docker常用命令
  • systemctl start docker
    启动docker进程;
  • systemctl stop docker
    停止docker进程;
  • journalctl -xeu docker --no-pager
    查看docker的日志;
  • journalctl -xeu docker --no-pager | tail -n 100
    查看docker的最后100行日志;
  • docker ps
    查看主机上的容器列表;
  • docker logs <container-id>
    查看容器标准输出(stdout)日志;
  • docker exec -it <container-id> sh
    进入到容器里面;
  • docker info | grep "Root Dir" 
    查看docker的数据目录;
  • docker images
    查看主机上的镜像列表;
  • docker rmi <image>:<tag> 
    删除某个镜像;
  • docker tag <image>:<tag> <imagexxx>:<tagxxx>
    给镜像打打标签。
4.2 Kubectl常用命令
1)Pod相关
  • kubectl get pod -o wide -n <namespace-name>
    查看指定命名空间下的Pod列表;
  • kubectl delete pod <pod-name> 
    删除指定Pod;
  • kubectl logs <pod-name> 
    查看Pod的标准输出日志(Pod中只能有一个Container);
  • kubectl logs <pod-name> -c <container-name>  
    查看Pod中指定Container的标准输出日志;
  • kubectl describe pod <pod-name> 
    查看Pod的事件。
2)Node相关
  • kubectl get node
    查看集群的节点列表;
  • kubectl describe node <node-name>
    查看节点的事件;
  • kubectl label node <node-name> <key>=<value> --overwrite
    给节点打标签;
  • kubectl label node <node-name> key1-
    删除节点的key为key1的label。
4.3 Etcd常用命令
  • export ETCDCTL_API=2 
  • etcdctl cluster-health
常用的v3接口的命令:
  • export ETCDCTL_API=3
    切换到v3接口;
  • etcdctl get [--prefix] [--keys-only]
    查看`/`下的子目录;
  • etcdctl put key "value"
    `/key`不存在则创建,存在则重新赋值;
  • etcdctl put key/key "value"
    v3中没有目录一说,只有key一说;在`/key`不存在时也可以直接设置`/key/key`;
  • etcdctl del key
    删除`/key`,但`/key/key`还在;
  • etcdctl del key --prefix
    删除`/key`及以`/key`开头的所有key。
4.4 Linux常用命令
1)查看启动时间、平均负载
  • uptime
  • uptime -s
  • uptime -p
2)查看CPU、内存、IO
  • top -O %CPU 
    按CPU排序;
  • top -O %MEM 
    按内存排序。
3)文件复制
  • scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music 
    本地复制到远程;
  • scp -r local_folder remoteusername@remoteip:remote_folder 
    本地复制目录到远程;
  • scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 
    远程复制到本地;
  • scp -r www.runoob.com:/home/root/others/ /home/space/music/
    远程复制目录到本地。
4.5 Calicoctl常用命令
  • calicoctl node status
    检查calico node的状态;
  • calicoctl node diags
    在calico node收集诊断信息;
  • calicoctl node checksystem
    检查主机的兼容性。

END


本文作者:李 游(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论