通过Heapster API获取Kubernetes监控数据

在上篇文章《Kubernetes资源使用监控实践》中,我们已经介绍了如何在Kubernetes上面部署Heapster,以及结合InfluxDB和Grafana做了界面展示,但在最后我们提到很多系统可能只是获取这些监控信息,然后使用自己的方式去做展示。所以本文主要介绍如何通过Heapster提供的REST API来获取这些监控信息。Heapster通过Metric模型来组织这些监控数据,这些数据可以通过REST API来获取,目前提供的监控维度可参考:https://github.com/kubernetes/heapster/blob/master/docs/storage-schema.m

Kubernetes资源使用监控实践

对Kubernetes中的各项资源进行监控有助于我们时刻了解集群的运行状况,从而对集群进行相应的操作,比如扩容、缩容等。在Kubernetes中主要通过Heapster结合一些其它组件进行资源监控。1. 架构分析Heapster也是Kubernetes的一部分,主要目标就是对Kubernetes集群进行基础监控,再结合cAdvisor等工具就可以对集群进行很好的监控。而cAdvisor工具已经集成到了kubelet文件中,当我们部署好一个Kubernetes集群以后,默认监听在4194端口,且有简单的UI:某个容器的资源使用:Heapster和普通的应用一样,都是以Pod的方式运行在集群中,并

Ubuntu 14.04部署Kubernetes及可能遇到的问题

之前已经写过文章如何在Ubuntu 16.06等使用systemd的系统上面部署Kubernetes,正好使用的是非systemd系统的Ubuntu 14.04部署了一下Kubernetes,按照官方文档遇到了很多问题,总结了一下发出来,希望可以帮助到遇到同样问题的人。本文主要参考自Kubernetes官方文档《Manually Deploying Kubernetes on Ubuntu Nodes》,但因文档很久没有更新了,部署比较新的版本时会有很多问题,所以这里列一下部署步骤,并说明部署过程中可能遇到的问题及解决方案。NB:该部署方法只适用于Ubuntu 14.04等使用upstart的

WebSocket协议及Go中的用法

本文主要介绍WebSocket以及Websocket在Golang中的实现和使用。1. WebSocket是什么?这里先列两篇文章:《WebSocket 是什么原理?为什么可以实现持久连接?》,这个是知乎上的一篇文章,对于WebSocket讲的通俗易懂,建议先看一下。The WebSocket Protocol RFC6455,这个是WebSocket的RFC文档,所以内容非常全面(当然只涉及协议,不涉及具体实现),不过内容太多,如果是初次了解,可以挑自己感兴趣的看看。或者直接看我的文章。1.1 为什么会出现WebSocket在介绍WebSocket之前,我们先来了解一下为什么会出现WebSo

Go网络编程——Socket

以前主要使用的是Linux C网络编程,现在学习了Golang,就总结一下Go中的socket编程,本文基于Go 1.7.4,和socket相关的代码在go/src/net/net.go文件中。网络协议模型回顾我们先来简单回顾一下网络写协模型。说到网络协议一般就两个模型:概念意义上的OSI(Open Systems Interconnect)的七层协议和实际中使用的TCP/IP四层协议。OSI七层网络模型:从第一层到第七层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP四层网络模型:从第一层到第四层分别是:网络接口层、网间层、传输层、应用层。最后用一张图来结束回

systemd学习总结

现在越来越多的Linux发行版将init系统从upstart(or other)换成了systemd,当然systemd相比于旧的init系统更加灵活和高效,所以本文介绍一下systemd的常用命令。目前已经切换为systemd的常见发行版有:Ubuntu 15.04、Debian 8、CentOS 7、Fedora 15及其这些发行版的高版本。本文使用的是Ubuntu 16.04 LTS,用户为root,非root执行时需要加sudo.当然最全的文档还是man文档,所以细节可以查看man文档。本文主要包括三部分:systemctl常用命令,很多情况下我们会使用systemctl来管理自己的系

Ubuntu16.04手动部署Kubernetes(3)——Dashboard和KubeDNS部署

今天继续接着前文:《Ubuntu16.04手动部署Kubernetes(1)——Master和Node部署》《Ubuntu16.04手动部署Kubernetes(2)——Flannel网络部署》继续来部署Kubernetes。今天主要来部署Dashboard和KubeDNS,主要是后者。因为Kubernetes在每个Pod内都会起一个很小的“系统”容器pause-amd64:3.0来实现Pod内的网络,而这个容器默认会去从Google的Registry拉,但国内如果没有梯子访问不了。所以我pull了一个,传到了国内的镜像仓库,我们改下每个Node节点上的kubelet的配置,增加--pod_i

Ubuntu16.04手动部署Kubernetes(2)——Flannel网络部署

在《Ubuntu16.04手动部署Kubernetes(1)——Master和Node部署》一文中,我们已经介绍了Kubernetes的Master和Node的手动部署,而且最后执行kubectl get node也成功看到了一个Node节点。本文接着上文继续部署,这次要部署的是网络。回想一下,Kubernetes有一个非常重要的特性就是任意Pod间都可以通过网络进行彼此访问,不管这些Pod是否在同一个Node上面。Flannel介绍我们知道docker默认的网络模型是创建一个虚拟网桥docker0,然后没创建一个容器,就创建一个虚拟的veth pair,其中一端关联到docker0这个网桥上
|