Label Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的K/V键值对。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。
我们提供的服务有:网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、万宁ssl等。为上千多家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的万宁网站制作公司
[root@k8s-master kubernetes]# kubectl -s http://k8s-master:8080 get node NAME STATUS AGE 191624142 Ready 2m kubernetes集群搭建完成。
Kubernetes集群组件:k8s集群高可用,一般是etcd,kube-apiserver,kube-controller-manager,kube-scheduler服务组件的高可用。
利用kubeadm join加入Ubuntu-002节点到集群 Ubuntu-002节点安装Docker、kubeadm、kubectl、kubelet,并且本地已pull了kubernetes镜像。
准备3台机器,分别设置hostname如下所示(此处主要是为了便于标识不同的机器,其实不设置hostname也可以正常搭建):参考《 使用Kubeadm搭建Kubernetes(11)集群 》在 master1 搭建一个单master节点的k8s集群。
k8s集群高可用,一般是etcd,kube-apiserver,kube-controller-manager,kube-scheduler服务组件的高可用。
准备3台机器,分别设置hostname如下所示(此处主要是为了便于标识不同的机器,其实不设置hostname也可以正常搭建):参考《 使用Kubeadm搭建Kubernetes(11)集群 》在 master1 搭建一个单master节点的k8s集群。
API 接口,通过etcd来实现持久化并维护对象的一致性。所以在整个K8S集群中,Apiserver服务至关重要,一旦宕机,整个K8S平台将无法使用,所以保障企业高可用是运维必备的工作之一。
Master通常会占据一个独立的服务器(高可用部署建议用3台服务器),主要原因是它太重要了,是整个集群的“首脑”,如果它宕机或者不可用,那么对集群内容器应用的管理都将失效。在Master上运行着以下关键进程。
本文主要在centos7系统上基于 docker 和 flannel 组件部署 v26 版本的k8s原生集群,由于集群主要用于自己平时学习和测试使用,加上资源有限,暂不涉及高可用部署。
1、上面我们添加一个job,targets中是指定的ip:port,在k8s中显然是不实用的,我们必须要实现动态获取target。好在prometheus已经支持了该功能,原理是通过apiserver轮询pod信息。
2、启动node-exporter 启动prometheus 启动grafana linux监控模板ID:11074 关于新增监控设备,只需要把IP写入ip文件,执行addjson.sh生产文件即可,系统6s扫描一次文件,一个机器对应一个json文件。
3、从上图可以看出,这里取prometheus的数据是去的 localhost:9090 ,所以问题就出在这里,我们应该在grafana的配置面板配置 data source 的时候,填写prometheus对外暴露的ip 这样就可以访问了。
4、Prometheus是一个开源的服务监控工具。Prometheus以指定的时间间隔从配置的目标收集metrics,评估规则表达式,显示结果,并在观察到某些条件为真时触发警报。Grafana或其他API Consumer被用于可视化展示收集到的数据。
5、目前prometheus的告警,常用的有grafana自带的告警和prometheus插件alertmanger的告警两种,这里测试下alertmanger的告警功能。综合考虑,配合上prometheus operator,使用alertmanger,能够使监控告警这块的工作更加devops。