制作tomcat容器的底包镜像Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。 123wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/apache-tomcat-8.5.70.tar.gzmkdir /data/dockerfile/tomcattar xf apache-tomcat-8.5.69.tar.gz -C /data/dockerfile/tomcat/ 配置日志123456789101112131415161 ...
Apollo介绍Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 Apollo安装部署Apollo官方地址 官方release包 基础架构 简化模型 交付apollo-configservice准备软件包在k8s-dns.boysec.cn上: 下载官方release包 12cd /tools/mkdir /data/dockerfile/apollo-configservice && unzip -o apollo-configservice-1.7.1-github.zip -d /data/dockerfile/apollo-configservice 执行数据库脚本注意:MySQL版本应为5.6或以上! 更新yum源 123456vi /etc/yum.repos.d/MariaDB.repo[mariadb]name = MariaDBbaseurl = https://mirrors.ustc.edu.cn ...
dubbo微服务dubbo提供了六大核心能力:面向接口代理的高性能RPC调用,智能容错和负载均衡,服务自动注册和发现,高度可扩展能力,运行期流量调度,可视化的服务治理与运维。 基础架构 主机名 角色 IP k8s-node01.boysec.cn k8s计算节点1,zk1 10.1.1.100 k8s-node02.boysec.cn k8s计算节点2,jenkins 10.1.1.110 k8s-master.boysec.cn k8s代理节点1,zk2 10.1.1.120 k8s-slave.boysec.cn k8s代理节点2,zk3 10.1.1.130 k8s-dns.boysec.cn k8s运维节点(docker仓库) 10.1.1.250 部署zookeeper安装jdk1.8(3台zk角色主机) jdk下载地址jdk1.8 123456cd /server/tools[root@k8s-master tools]# rpm -ivh jdk-8u221-linux-x64.rpm[root@k8s-master tools]# jav ...
介绍flannelFlannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。 Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于Linux TUN/TAP,使用UDP封装IP包来创建overlay网络,并借助etcd维护网络的分配情况。 Flannel is a simple and easy way to configure a layer 3 network fabric designed for Kubernetes. flannel工作模式 模式 特点 host-gw 这种方式就是直接路由(相当于route add ) vxlan 是flannel推荐的方式。需要通信的网络设备能够支持vxlan协议(相当于VPN) udp 该方式与vxlan很类似,它对ip层网络进行包装。通常用于调试 ...
部署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服务器这边如果一个连接所用时间 ...