前言
创建kubernetes集群并部署容器化应用只是第一步,一旦集群运行起来,我们需要确保运行正常,所有必要组件就位并各司其职,有足够的资源满足应用的要求。kubernetes是一个复杂的系统,运维团队需要有一套工具帮助他们获知集群的实时状态,并为故障排查提供及时和准确的数据支持。
kubernetes常用的监控方案:
一,weave scope简介
weave Scope是 Docker 和 kubernetes 可视化监控工具。Scope提供了至上而下的集群基础设施和应用的完整视图,用户可以轻松对分布式的容器化应用进行实时监控和问题诊断。
功能详细介绍参考官方文档:https://www.weave.works/docs/scope/latest/features/
- Agent 负责收集容器和宿主的信息,并发送给App
- App 负责处理这些信息,并生成相应的报告,并以交互式的形式展示。
二,weave scope安装
参考官方文档:https://www.weave.works/docs/scope/latest/installing/#k8s
kubernetes集群环境:
master:172.16.1.30
node01: 172.16.1.31
node02:172.16.1.32
[root@master scope]# kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')&k8s-service-type=NodePort"
namespace/weave created
serviceaccount/weave-scope created
clusterrole.rbac.authorization.k8s.io/weave-scope created
clusterrolebinding.rbac.authorization.k8s.io/weave-scope created
deployment.apps/weave-scope-app created
service/weave-scope-app created
deployment.apps/weave-scope-cluster-agent created
daemonset.apps/weave-scope-agent created
2,资源查看(确保资源正常运行)
注意:Service weave-scope-app默认是ClusterIP类型,已经在执行安装的命令中添加了参数k8s-service-type=NodePort将其修改为 NodePort。
3, 登录web界面:
浏览器访问url:http://172.16.1.30:32688/ ,默认显示当前所有的Controller(Deployment,Daemonset等)
三,weave Scope的使用
1,资源查看的两种方式:**
以pod为例查看资源,资源有两种展现形式:
1)图形方式:
图形方式还会展示pod之间的拓扑关系:
2)表格方式:
表格方式可以更加清晰,详细的查看到pod的各种信息(一目了然)
2,查看资源使用详情:
点击某个pod,会展示状态,资源使用,进程等详细信息
3,Pod日志查看:
点击需要查看的pod,在资源使用详情中点击“Get logs”
这里查看的是Nginx服务的日志,当有用户访问web服务时,都会将各种信息实时的输出到屏幕中。
4,查看pod的详细信息
在pod的资源详情中点击“describe”
5,资源的扩缩容
点击Deployment 或者是Daemonset类型的Controller,可以对资源进行伸缩和与查看。
扩容:
缩容:
6,容器操作
在右边容器展示的界面中,分别可以对容器进行attch,exec shell,restart,paus和stop操作
点击进入终端,和在命令行执行exec命令进入容器是一样的,对管理和操作容器都是非常方便的。
7,展示条件选择
左下角可按条件展示:有容器的类型(系统或者应用),容器的状态(停止,运行,停止和运行),容器显示或隐藏,以及可以自己选择查看那个命名空间下的容器。
8,强大的搜索功能
scope 支持关键字搜索和定位资源
1)按容器名进行搜索:
比如查看cpu使用率>1%的容器:
2)按资源使用进行搜索:
比如查看Memory使用率>100M的pod:
小结:
weave scope工作在4040端口,不会要求创建管理员账号,且对用户没有限制,非常危险,主要用于直观展现容器间的调用,也可以用于和容器,宿主机之间的交互式操作。