部署kubelet集群规划 主机名 角色 ip k8s-node01.boysec.cn kubelet 10.1.1.100 k8s-node02.boysec.cn kubelet 10.1.1.110 注意:这里部署文档以k8s-node01.boysec.cn主机为例,另外一台运算节点安装部署方法类似 签发kubelet证书在k8s-dns.boysec.cn上: vim /opt/certs/kubelet-csr.json 1234567891011121314151617181920212223242526{ "CN": "kubelet-node", "hosts": [ "127.0.0.1", "10.1.1.50", "10.1.1.60", "10.1.1.100", "10.1.1.110", ...
部署kube-apiserver集群 主机名 角色 IP k8s-node01.boysec.cn kube-apiserver 10.1.1.100 k8s-node02.boysec.cn kube-apiserver 10.1.1.110 k8s-master.boysec.cn 4层负载均衡 10.1.1.120 k8s-slave.boysec.cn 4层负载均衡 10.1.1.130 注意:这里10.1.1.120和10.1.1.130使用nginx做4层负载均衡器,用keepalived跑一个vip:10.1.1.50,代理两个kube-apiserver,实现高可用这里部署文档以k8s-node01.boysec.cn主机为例,另外一台运算节点安装部署方法类似 下载安装kube-apiserverKubernetes下载地址 12345cd /server/tools/ tar xf kubernetes-server-linux-amd64.tar.gz -C /opt mv /opt/kubernetes /opt/kubernetes- ...
Kubernetes介绍Kubernetes是什么?Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。通过Kubernetes你可以: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 我们的目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。 Kubernetes 特点 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud) 可扩展: 模块化, 插件化, 可挂载, 可组合 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展 Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。为什么要使用容器?通过以下两个图对比: 传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。 新 ...
性能优化监控数据分析 zabbix监控主机和监控项较少的时候,不需要优化。 数据库 200台主机 * 200个监控项 = 40000监控项/30秒 = 1333次写入/每秒。写多,读少 优化思路 mariadb 5.5 innodb 升级到mysql5.7 tokudb。 去掉无用监控项,增加监控项的取值间隔,减少历史数据的保存周期。 被动模式改为主动模式。 针对zabbix-server进程数量调优。 针对zabbix-server缓存调优,谁的占用内存大,就加大他的缓存。 升级MySQL存储引擎安装perconna源1yum install https://mirrors.tuna.tsinghua.edu.cn/percona/yum/percona-release-1.0-16.noarch.rpm 安装依赖12345678910111213141516yum install epel-release -yyum install jemalloc -y## 查看库文件[root@zabbix ~]# rpm -ql jemalloc ...
虚拟化运维
未读Docker Dockerfile什么是 Dockerfile?Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。 Dockerfile的基本结构Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令,’#’ 为 Dockerfile 中的注释。 Dockerfile文件说明Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。可以在Docker文件中使用RUN,CMD,FROM,EXPOSE,ENV等指令。 一张图解释常用指令的意义^-^ FROM:指定基础镜像,必须作为第一个命令12345678格式: FROM <image> FROM <image>:<tag> FROM <image>@<digest>示例: FROM centos:7注: tag或digest是可选的,如果不使用这两个值时,会使用latest版本的基础镜像 ...
虚拟化运维
未读Docker介绍 Docker是通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker在操作系统层实现隔离,所以Docker容器在运行时,不需要类似虚拟机(VM)额外的操作系统开销,提高资源利用率。 Docker运行结构 Docker是一个C/S结构的项目,有Docker Client、RESTAPI、Docker Server、images、container、 volumes、network组成。 Docker Client:Docker客户端命令工具。 REST API:提供标准的RESTful接口。 Docker Server::Docker daemon的主要组成部分,接收用户从Docker Client调用REST API发送过来的请求。 images:docker镜像,是Docker run的原材料。 container: Docker运行的内容,是独立存在的。 data volumes: 通过数据挂载的方式,实现数据共享; network:用户容器与外部、容器之间的通信,常用的方法有端口映射、lin ...
概述Zabbix的网络发现是指zabbix server通过配置好的规则,自动添加host,group,templateZabbix的主动注册刚好和网络发现是相反的,功能基本一致。zabbix agent主动联系zabbix server,server自动添加host,group,template以上两种方式都是发现host,添加host,而low-level discovery(低级自动发现)更加底层,用于发现item,trigger,graph等等。 查看系统自带的网卡自动发现查看网络自动发现规则 过滤规则 命令行过滤12[root@db01 ~]# zabbix_agentd -p |grep net.if.discoverynet.if.discovery [s|{"data":[{"{#IFNAME}":"eth0"},{"{#IFNAME}":"e ...
介绍Zabbix本身不支持直接监控Java,在zabbix 1.8以前,只能使用Zapcat来做代理监控,而且要修改源代码,非常麻烦。所有后来为了解决这个监控问题,Zabbix和Java双方应运生成了各自的代理监控程序:zabbix 2.0以后添加了服务进程zabbix-java-gateway;Java有了JMX,全称是Java Management Extensions,即Java管理扩展。 zabbix-Web前端界面,它通过数据库里数据展示。和其它组件不直接关联 zabbix-server运行在10051端口,Zabbix-server要知道java应用程序的某项性能的使用时候 ,会启动自身的一个Zabbix-JavaPollers进程去链接zabbix-JavaGateway请求数据,而zabbix-Javagateway收到请求后并使用; Zabbixserver有一个特殊的进程用来连接Javagateway叫StartJavaPollers;Javagateway通过配置文件中START_POLLERS参数设置启动多个线程,在zabbix服务器这边如果一个连接所用时间 ...
概述Zabbix proxy 是一个监控代理服务器,可以实现集中或者分布式的监控。通过proxy代理可以实现多节点,跨区域,成百上千服务器的监控。proxy代理主要适用于下面情况。 zabbix监控的主机太多,一台Server支撑不住的情况。 服务器在同一个地区不同的机房,通过proxy很容易实现数据的传输和中转。 服务器在多个省或者在国外,通过proxy实现分布式部署和监控。 proxy可以部署为主动(Active)模式或被动(passive)模式,通常为了减轻Server端的压力,proxy部署为主动(Active)模式。当proxy部署为主动模式(Active)时,Zabbix Server的负载最小。 安装配置 系统 服务器IP 角色 CentOS 7.6.1810 10.1.1.200 zabbix-server CentOS 7.6.1810 10.1.1.15(外)\172.16.1.15(内) zabbix-proxy EulerOS 2.0 172.16.1.240 zabbix-agent 安装部署zabbix-proxy在zabbix- ...
自动发现概述自动发现主要是希望通过发现网络中的主机,并自动把主机添加到监控中,并关联特定的模板,实现自动监控。例如在办公网络中,希望通过Zabbix Agent监控所有工作电脑,只需要把新安装的电脑开放防火墙10050端口,那么电脑就可以自动通过发现新机器,并开始监控。如果网络中可能存在Windows和Linux系统,就需要通过Zabbix Agent判断自动添加的主机是Windows还是Linux。以上这个过程需要分为两个步骤: 通过网络扫描制定的服务,本例为Zabbix Agent是否可以访问system.uname指标 发现主机之后需要执行添加的动作,这个过程由动作(Action)完成 下图为配置扫描是的方法: 配置自动发现第一步:点击配置(configure)–>自动发现(discovery) 第二步:创建自动发现的规则(create discovery rule) 检查发现主机12## 重启zabiix-serversystemctl restart zabbix-server.service 自动注册概述 活动的zabbix agent可以自动注册 ...
常见企业应用监控 为满足企业需求,监控常见服务应用。需拓展自定义监控,监控服务如下: 监控web应用(nginx) 监控php应用 监控数据库MySQL 监控redis 自定义模板Nginx状态用到的模板及脚本:zabbix.zip 开启监控页面访问测试123456789cat /etc/nginx/conf.d/status.confserver { listen 80; server_name localhost; location /nginx_status { stub_status; access_log off; }} 准备Nginx监控脚本1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374cat /etc/zabbix/zabbix_agentd.d/ngin ...
Grafana介绍Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点: 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式; 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等; 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知; 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源; 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记; 过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。 下载并安装官网下载地址:Grafana 安装指南:Grafana安装指南 环境准备准备的下载地址: ...