文章 59
评论 0
浏览 30513
Centos与Ubuntu初始化shell脚本

Centos与Ubuntu初始化shell脚本

#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-18 #FileName:reset_Linux_OS_v4.sh #URL: [https://www.zhangzhuo.ltd](https://www.zhangzhuo.ltd) #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** Centos(){ centos_Version(){ Version=`grep -Eo "[0-9].[0-9]" /etc/redhat-release | tr '.' '%' | tr '\n' % |cut -d% -f 1` #Version=`se....

harbor使用s3对象存储

harbor使用s3对象存储

默认情况下,harbor使用本地存储进行注册,但您可以可选地配置设置,以便harbor使用外部存储。有关如何为不同的存储提供商配置注册表的存储后端的信息,请参阅 Docker 文档中的配置参考https://docs.docker.com/registry/configuration/#storage。 我这里使用s3对象存储作为harbor镜像仓库存放镜像的位置。使用的s3对象存储为minio,当然也可以使用其他s3对象存储。 docker官方的配置示例如下 s3: accesskey: awsaccesskey #s3对象存储认证信息 secretkey: awssecretkey region: us-west-1 #区域,正常自己搭建的对象存储服务默认为us-west-1,但是如果使用第三方厂商的s3对象存储需要根据实际情况配置 regionendpoint: http://myobjects.local #对象存储访问url bucket: bucketname #存储桶名称 encrypt: true #您是否希望在服务器端加密您的数据 (如果未指定,则默认为 false)....

minio分布式解决方案

minio分布式解决方案

一、软件版本 minio版本:minio.RELEASE.2021-07-12T02-44-53Z mc版本:mc:RELEASE.2021-07-27T06-46-19Z nginx版本:v1.20.1 keepalived版本:v2.2.2(如果已经有SLB则无需部署) 二、部署解决方案 2.1 服务器规划 minio集群服务器规划为一共10台服务器分别为8台minio,2台nginx代理,服务器配置如下: 服务器角色数量CPU/内存数据磁盘 minio服务器88C16G4块1.5T磁盘 nginx代理服务器24C8G无 minio扩容资源(后期扩容)88C16G4块1.5T磁盘 minio备份资源不限不限需要满足存放minio集群所有对象数据的空间容量 注意事项 minio服务节点如果使用虚拟机,需要调度虚拟机到不同的物理宿主机,避免资源竞争。 minio服务器4块数据磁盘需申请独立的磁盘,在物理底层要相互独立避免遇到磁盘io竞争,导致minio性能直线下降(性能下降严重,数据量大时会导致集群不可用) minio数据磁盘最大不超过2T,如果使用lvm逻辑卷,逻辑....

Minio对象存储服务

Minio对象存储服务

一、minio对象存储基础 1.1 基础概念 MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。 使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。 独立的 MinIO 服务器最适合早期开发和评估。 某些功能,例如版本控制、对象锁定和存储桶复制需要使用擦除编码分布式部署 MinIO。 对于扩展的开发和生产,请在启用擦除编码的情况下部署 MinIO , 每个 MinIO 服务器最少4个驱动器。 1.2 Minio纠删码 Minio使用纠删码erasure code和校验和checksum来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。 纠删码是一种恢复丢失和损坏数据的数学算法, Minio采用Reed-Solomon code将对象拆分成N/2数据和N/2 奇偶校验块。 这就意味着如果是12块盘,一个对象会被分成6个数据块、6个奇偶校验块,你可以丢失任意6块盘(不管其是存放的数据块还是奇偶校验块),你仍可以从剩下的盘中的....

对象存储压力性能测试工具

对象存储压力性能测试工具

一、Cosbench工具 cosbench是intel开源的针对对象存储开发的测试工具 二、Cosbench安装 运行环境:centos7 依赖软件:JDK nmap-ncat 2.1 单台压测服务器部署 #安装依赖 [16:52:30 root@centos7 ~]#yum install java nmap-ncat #下载cosbench工具压缩包 [16:58:41 root@centos7 ~]#ls 0.4.2.c4 0.4.2.c4.zip [16:59:00 root@centos7 ~]#unzip 0.4.2.c4.zip #删除http_proxy环境变量 [17:00:04 root@centos7 ~]#unset http_proxy #启动cosbench [17:02:09 root@centos7 0.4.2.c4]#bash ./start-all.sh 2.2 多台测试客户端部署 #配置多个driver [17:05:07 root@centos7 0.4.2.c4]#cat conf/controller.conf [controller] d....

minio性能测试

minio性能测试

压测参数说明 压测数据量为:2个backet,每个backet为10000对象。每个对象大小512kb 所有minio服务内核以及资源优化都相同 整体读写压测时间为10分,读写比例为读写各占百分之50 一共4台压测客户端,每个客户端4个读写进程,整体16个读写线程。 所有测试都经过多次验证 #所有服务器内核优化 https://gitlab.gridsum.com/TechnologySharingCenter/back-end/research/-/issues/18#%E8%84%9A%E6%9C%AC minio服务器数据磁盘性能 多次测试 一、单机测试数据 1.1 单机单个数据盘 单块数据盘并不实现纠删码功能,即数据盘故障minio就无法正常工作,数据存储空间比例为1:1 minio服务器规格4C 16G 操作类型操作数操作产生的数据操作的平均时间吞吐量速率 read154.74kops79.23G11.41ms258.24op/s132.22MB/s write155.01kops79.36G43.12ms258.69op/s132.45MB/s 内存使....

k8s二进制手动部署

k8s二进制手动部署

一、准备部署环境 系统使用centos7,内核版本升级为 5.4.134,最好升级到4.10以上版本 设置时间同步,推荐使用chronyd来做时间同步服务器 修改主机名,不要有_符号与大写字母 [13:38:03 root@k8s-01 ~]#uname -r 5.4.134-1.el7.elrepo.x86_64 [13:38:50 root@k8s-01 ~]#hostname k8s-01 集群架构 二、安装必要的工具 需要安装cfssl与cfssljson证书工具,1.4.1 或是更高:https://github.com/cloudflare/cfssl/releases 需要准备kubernetes二进制文件:https://dl.k8s.io/v1.18.5/kubernetes-server-linux-amd64.tar.gz [14:22:48 root@k8s-01 ~]#ls cfssl cfssljson kubectl [14:22:50 root@k8s-01 ~]#./cfssl version Version: 1.6.0 Runtim....

线上rpm包下载本地

线上rpm包下载本地

通常生产环境由于安全原因都无法访问互联网。此时就需要进行离线安装,主要有两种方式:源码编译、rpm包安装。源码编译耗费时间长且缺乏编译环境,所以一般都选择使用离线 rpm 包安装。 一、工具准备 安装yum-utils 这个软件包中有许多关于rpm包的工具 repotrack(全量下载一个软件的依赖包) yumdownloader(下载软件的依赖包,如果本机已经安装不下载) reposync(下载一个yum仓库中所有包) yum -y install yum-utils 安装createrepo 这个软件可以利用目录中的rpm包生成一个repodata目录 二、实现步骤 [11:14:13 root@centos7 ~]#mkdir ansible [11:14:43 root@centos7 ~]#cd ansible #下载ansible所有依赖包 [11:14:25 root@centos7 ansible]#repotrack ansible #查看 [11:15:26 root@centos7 ansible]#ls | wc -l 88 #生成repodata元数据信....

linux系统防止某个进程被OOM

linux系统防止某个进程被OOM

内存不足:OOM OOM 即 Out Of Memory,“内存用完了”,在情况在java程序中比较常见。系统会选一个进程将之杀死, 在日志messages中看到类似下面的提示 Jul 10 10:20:30 kernel: Out of memory: Kill process 9527 (java) score 88 or sacrifice child 当JVM因为没有足够的内存来为对象分配空间并且垃圾回收器也已经没有空间可回收时,就会抛出这个error,因为这个问题已经严重到不足以被应用处理)。 原因: 给应用分配内存太少:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。 应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。 使用的解决办法: 1,限制java进程的max heap,并且降低java程序的worker数量,从而降低内存使用2,给系统增加swap空间 设置内核参数(不推荐),不允许内存申请过量: echo 2 > /proc/sys/vm/overcommit_memory echo 80 > /proc/s....

rclone工具之对象存储数据备份

rclone工具之对象存储数据备份

安装rclone工具: 下载地址:https://hub.fastgit.org/rclone/rclone/releases/tag/v1.56.0 安装工具: yum install ./rclone-v1.56.0-linux-amd64.rpm 配置工具: 使用命令rclone config随便生成一个配置文件 之后修改生成的配置文件,配置文件默认路径~/.config/rclone/rclone.conf 根据环境修改配置文件 [13:05:05 root@centos7 ~]#cat .config/rclone/rclone.conf # Encrypted rclone configuration File [minio] type= s3 evn_auth= false access_key_id = ******** #密钥 secret_access_key = ******** #密钥 region = us-east-1 endpoint = http://****:*** #对象存储访问地址 location_constraint = server_side....

docker镜像上传下载脚本

docker镜像上传下载脚本

一、镜像下载以及替换tag list=`cat $1` #修改后的镜像仓库 Registry='harbor.zhangzhuo.org/base/' echo > images-save.txt echo > images-name.txt for var in $list;do #取镜像名称及tag tmp=${var##*/} #取镜像仓库url repo=${var%/*} #取镜像名称 project=${tmp%%:*} #取镜像tag tag=${tmp##*:} #修改原本镜像仓库url地址为新的的仓库url地址 eval new_image_url=${Registry}${tmp} #拉取镜像 docker pull ${var} #修改镜像tag docker tag ${var} ${new_image_url} #导出镜像 docker save ${new_image_url} -o ${project}-${tag}.tar.gz #记录导出的文件名称 echo ${project}-${tag}.tar.gz >> images-....

自动化部署zabbix-agent

自动化部署zabbix-agent

role目录结构 [17:57:10 root@ansible zabbix-agent]#tree . ├── role_zabbix-agent.yml #主playbook文件 └── zabbix-agent ├── files │   ├── echo.sh #自定义采集监控数据脚本 │   └── zabbix-4.0.30.tar.gz #zabbix源码包 ├── tasks │   ├── main.yaml #主tasks文件 │   ├── zabbix_conf.yaml #zabbix配置文件生成 │   ├── zabbix_install.yaml #安装zabbix-agent │   └── zabbix_service.yaml #生成zabbix-agent的service ├── templates │   ├── zabbix_agentd.conf.j2 #zabbix-agent配置文件模板 │&nbs....

自动化部署docker

自动化部署docker

docker的role目录结构 [19:07:17 root@ansible docker]#tree . ├── docker │   ├── files │   │   └── docker-19.03.15.tgz #docker二进制安装文件 │   ├── handlers │   ├── tasks │   │   ├── docker_etc.yaml #docker的etc配置文件,主要为镜像加速地址配置 │   │   ├── docker_install.yaml #docker二进制安装过程 │   │   ├── docker_service.yaml #docker服务的service文件生成 │   │   ├── docker_start.yaml #docker服务器启动 │  ....

运维自运化之ANSIBLE

运维自运化之ANSIBLE

一、Ansible 介绍和架构 公司计划在年底做一次大型市场促销活动,全面冲刺下交易额,为明年的上市做准备。公司要求各业务组对年底大促做准备,运维部要求所有业务容量进行三倍的扩容,并搭建出多套环境可以共开发和测试人员做测试,运维老大为了在年底有所表现,要求运维部门同学尽快实现,当你接到这个任务时,有没有更快的解决方案? 1.1 Ansible发展史 作者:Michael DeHaan( Cobbler 与 Func 作者) ansible 的名称来自科幻小说《安德的游戏》中跨越时空的即时通信工具,使用它可以在相距数光年的距离,远程实时控制前线的舰队战斗2012-03-09,发布0.0.1版,2015-10-17,Red Hat宣布1.5亿美元收购 官网:https://www.ansible.com/ 官方文档:https://docs.ansible.com/ 1.2 Ansible 特性 模块化:调用特定的模块完成特定任务,支持自定义模块,可使用任何编程语言写模块 Paramiko(python对ssh的实现),PyYAML,Jinja2(模板语言)三个关键模块 基于Python....

数据备份之xtrabackup

数据备份之xtrabackup

xtrabackup工具 官方网站:https://www.percona.com/software/mysql-database/percona-xtrabackup 如果数据库数据量比较大推荐使用xtrabackup工具进行数据备份 1.1 xtrabackup介绍 xtrabackup命令 #常用参数 --user #该选项表示备份账号 --password #该选项表示备份的密码 --port #该选项表示备份数据库的端口 --host #选项表示备份数据库的地址 --socket #该选项表示mysql.sock所在位置,以便备份进程登录mysql。 --defaults-file #该选项指定了从哪个文件读取MySQL配置,必须放在命令行第一个选项的位置 --databases #该选项接受的参数为数据名,如果要指定多个数据库,彼此间需要以空格隔开;如:"db1 db2",同时,在指定某数据库时,也可以只指定其中的某张表。如:"mydatabase.mytable"。该选项对innodb引擎表无效,还是会备份所有innodb表。此外,此选项也可以接受一个文件为参数,文件中每....

k8s运维相关

k8s运维相关

一、k8s运维示例 和运维相关的日常运维事宜 1.1 手动调整pod数量 kubectl scale 对运行在k8s 环境中的pod 数量进行扩容(增加)或缩容(减小)。 #当前pod数量 [16:01:39 root@k8s-master1 ~]#kubectl get deployments.apps -n zhangzhuo NAME READY UP-TO-DATE AVAILABLE AGE zhangzhuo-nginx-deployment 1/1 1 1 3h50m zhangzhuo-tomcat-app1-deployment 1/1 1 1 3h49m #查看命令帮助 [16:05:14 root@k8s-master1 ~]#kubectl --help | grep scale scale Set a new size for a Deployment, ReplicaSet or Replication Controller #执行扩容/缩容 [16:05:43 root@k8s-master1 ~]#kubectl scale deployment/zha....

Prometheus监控服务

Prometheus监控服务

一、Prometheus简介 官方网站:https://prometheus.io/docs/ github地址:https://github.com/prometheus Prometheus是基于go语言开发的一套开源的监控、报警和时间序列数据库的组合,是由SoundCloud公司开发的开源监控系统, Prometheus于2016年加入CNCF(Cloud Native Computing Foundation,云原生计算基金会),是CNCF继kubernetes 之后毕业的第二个项目,prometheus在容器和微服务领域中得到了广泛的应用,其特点主要如下: 1.使用key-value的多维度格式保存数据 2.数据不使用MySQL这样的传统数据库,而是使用时序数据库,目前是使用的TSDB 3.支持第三方dashboard实现更高的图形界面,如grafana(Grafana 2.5.0版本及以上) 4.功能组件化 5.不需要依赖存储,数据可以本地保存也可以远程保存 6.服务自动化发现 7.强大的数据查询语句功(PromQL,Prometheus Query Language) ....

k8s资源对象yaml文件详解

k8s资源对象yaml文件详解

一、Namespace namespace用来在k8s集群中进行逻辑隔离资源,也可以使用ResourceQuota进行整个namespace资源限制 apiVersion: v1 #API版本 kind: Namespace #类型为namespace metadata: #定义元数据 name: zhangzhuo #namespace名称 namespace相关查看命令 #查看namespaces [18:09:37 root@k8s-master1 mnt]#kubectl get namespaces NAME STATUS AGE default Active 29h kube-node-lease Active 29h kube-public Active 29h kube-system Active 29h kubernetes-dashboard Active 37m nide Active 77s zhangzhuo Active 5h32m #查看namespace详细信息 [18:10:11 root@k8s-master1 mnt]#kubectl descr....

k8s运行服务

k8s运行服务

一、运行web服务 k8s运行规划图 k8s中镜像设计规划 #镜像存放目录结构如下 [10:41:45 root@k8s-master1 ~]#tree /k8s-data/dockerfile/ /k8s-data/dockerfile/ ├── system │ ├── alpine │ ├── centos │ └── ubuntu └── web ├── nginx └── tomcat 1.1 运行nginx服务 将nginx运行在k8s中并可以从外部访问到nginx的web页面。 1.1.1 centos基础镜像制作 #文件列表 [11:02:51 root@harbor centos]#pwd /k8s-data/dockerfile/system/centos [11:02:53 root@harbor centos]#tree . ├── build-command.sh ├── Dockerfile └── filebeat-7.12.1-x86_64.rpm #Dockerfile文件内容 [11:08:03 root@harbor centos]#cat ....

k8s运行机制与术语

k8s运行机制与术语

一、k8s运行机制及术语 分解k8s集群中master、node、etcd、calico和flannel的运行机制 1.1 master节点运行机制 k8s的master节点共有三个服务分别是kube-apiserver,kube-controller-manager,kube-scheduler kube-apiserver:是整个系统的数据总线和数据中心。 kube-controller-manager:作为集群内部的管理控制中心。 kube-scheduler:负载Pod的调度。 1.1.1 kube-apiserver 官方文档:https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/ k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和数据中心。 apiserver 目前在master监听两个端口,通过 --insecure-port int 监听一个非安全的12....

生而为人