系统学习Docker 践行DevOps理念 笔记(八)|容器的的运维和监控
容器的的运维和监控,是课程第十章的内容
1.容器的基本监控
相关命令:
- docker top d1ea6fa01bbd,top后面跟上容器名称可以查看docker的情况
- docker stats,查看容器的使用情况
1.1weavework工具
- 安装,https://github.com/weaveworks/scope
- scope launch 192.168.210.10,192.168.210.10是那个机器的外部可以访问的地址,然后就可以在网页里面查看docker的运行情况了
- scope stop,可以关闭scope
- scope lannch后面可以跟多个ip,只要能连通就可以了
2.k8s集群运行资源监控——Heapster+Grafana+InfluxDB
heapster: https://github.com/kubernetes/heapster
详见lab010/lab002的三个yml文件,然后启动三个文件就可以了。
相关命令:
- kubectl get namespace,查看现在的namespace,默认我们创建的是创建在default的namespace下的
- kubectl get svc –namespace kube-system,这个是得到kube-system这个namespace下的service
- 可以看到有一个kubernetes-dashboard的service,是NodePort的,我们可以进去看一下,是一个k8s的dashboard
- grafana的默认密码是admin,admin
- 把grafana这个yml文件里面的service的type换成NodePort,我们就可以在外部访问了
3.根据资源占用自动横向伸缩
我们可以通过监控系统资源,比如cpu的使用率,来自动横向伸缩。比如cpu超过50%的使用率的时候,我们就自动新加一个机器。要是使用率低的,我们可以再减少一点机器。
相关命令:
- 删除10-2里面的3个yml文件创建的资源
- minikube addons list,查看minikube的addons,会看到enable还是disable
- minikube addons enable heapster,enable heapster这个addons
- minikube stop
- minikube start –extra-config=controller-manager.HorizontalPodAutoscalerUseRESTClients=false,这个minikube的启动参数可以让创建autoscale的时候,可以获得cpu试用率
- kubectl run php-apache –image=k8s.gcr.io/hpa-example –requests=cpu=200m –expose –port=80,按照k8s给出的教程,启动一个测试pod,–requests=cpu=200m这个参数限定了cpu的使用量
- kubectl autoscale deployment php-apache –cpu-percent=50 –min=1 –max=10,创建一个autoscale,–cpu-percent表示cpu百分比多少的时候要添加pod,最少要一个pod,最多是10个pod
- kubectl get horizontalpodautoscaler,得到现在集群里面的autoscaler,还有target的负载情况
NOTICE
- autoscale得到负载情况是需要时间的,通常会有一点延迟,不会是很实时的。
- 得到负载情况到完成自动伸缩,也是需要一点时间的
4.k8s集群Log的采集和展示——ELK+Fluentd
这里没有logstash,而是用fluentd。LogTrail算是kibana里面的一个插件,看日志比较方便
NOTICE
- 所以要打日志的节点都要写加一个label,使用命令 kubectl label node –all beta.kubernetes.io/fluentd-ds-ready=true
- kubecte create -f,后面可以跟文件夹,那么文件夹里面所有配置文件都会被创建3
- 具体的配置文件可以看视频里面,然后去docker-lab里面找
5.k8s集群监控方案Prometheus
https://prometheus.io/
prometheus和别的监控方案有一个不一样的地方,就是他是采取拉的方式。elk或者其他的这种都是推的方式,也就是应用把日志主动的推向elk。但是prometheus是主动去拉数据,这是一个不一样的地方。
具体配置文件见docker-labs