文章 63
评论 0
浏览 44728
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....

sshfs文件共享工具

sshfs文件共享工具

在需要简单的文件共享的环境中,可以快速的实现文件共享,使用完成后直接卸载即可,基于ssh实现数据传输。性能比较低不建议长期使用,适合在数据备份时临时挂载使用。 sshfs安装 SSHFS是基于Linux的软件,需要安装在本地计算机上。在基于Ubuntu和Debian的系统上,它可以通过apt-get安装。centos可以通过yum安装 yum install sshfs sshfs命令介绍 [root@es-node3 sshfs]# sshfs -h usage: sshfs [user@]host:[dir] mountpoint [options] 主要的参数: -o uid=N 设置文件挂载的uid,也就是映射到本地的文件uid -o gid=N 设置文件挂载的gid -o allow_other 允许其他用户访问 -o port=PORT ssh访问端口 常见的使用方式 #临时挂载 sshfs -o allow_other,uid=997,gid=996 root@192.168.6.3:/root/test1 /root/1/ #卸载 umount /root/1

k8s集群备份与恢复

k8s集群备份与恢复

一、k8s集群备份与恢复 k8s集群服务所有组件都是无状态服务,所有数据都存储在etcd集群当中,所以为保证k8s集群的安全可以直接备份etcd集群数据,备份etcd的数据相当于直接备份k8s整个集群。 但是备份etcd及备份整个集群,有些场景比如迁移服务,只想备份一个namespace,就无法使用备份etcd的方式来备份,所以我们这里引用velero工具,Velero(以前称为Heptio Ark)可以为您提供了备份和还原Kubernetes集群资源和持久卷的能力,你可以在公有云或本地搭建的私有云环境安装Velero。 二、k8s备份-备份etcd etcd有多个不同的API访问版本,v1版本已经废弃,etcd v2 和 v3 本质上是共享同一套 raft 协议代码的两个独立的应用,接口不一样,存储不一样,数据互相隔离。也就是说如果从 Etcd v2 升级到 Etcd v3,原来v2 的数据还是只 能用 v2 的接口访问,v3 的接口创建的数据也只能访问通过 v3 的接口访问。 2.1 etcd v2版本数据备份与恢复 备份数据 #V2版本帮助信息 [16:11:16 root@k8....

s3对象存储挂载到本地文件夹

s3对象存储挂载到本地文件夹

一、s3fs工具 s3fs-fuse 是一个采用 c++ 开发的开源应用,它的作用是可以将 AWS S3 以及兼容 S3 API 的第三方对象存储像普通文件系统一样挂载到本地计算机,由于这种功能通过 FUSE 实现,因此只能在 Linux 和 MacOS 上使用。 1.1 什么是FUSE Filesystem in Userspace顾名思义,即在用户空间的文件系统。 为什么要强调用户空间呢?接触过Linux内核的大概会知道,文件系统一般是实现在内核里面的,比如,Ext4、Fat32、NTFS(Kernel原生版)等常见的文件系统,其代码都在内核中,而FUSE特殊之处就是,其文件系统的核心逻辑是在用户空间实现的。 优势 文件系统的改动不用更新内核, FUSE的核心逻辑在用户空间,所以修改文件系统的行为绝大部分修改会在用户空间。这在很多场合是一件很方便的事情。 很容易实现自己的文件系统,理论上它可以实现任何天马行空的文件系统,只要一个开发者实现了基本的文件操作。而这个所谓的文件操作也是自己定义的,甚至可以这个操作可能只是一句打印而已,或者是一件超级复杂的事情,只要这个操作符合开发者的要....

k8s监控告警

k8s监控告警

一、k8s监控架构介绍 核心监控管道 由kubelet、资源评估器、metrics-server(精简Heapster)和API server的master metrics API组成。这些监控项被核心系统组件使用,例如调度逻辑(调度器和基于HPA的系统指标)和kubectl top。此管道不适用于第三方监控系统集成 根据核心监控指标的用途,拆解监控数据链路 (1).kubelet(cAdvisor)[ -> 资源评估器 ] -> metrics-server -> API server -> scheduler (2).kubelet(cAdvisor)[ -> 资源评估器 ] -> metrics-server -> API server -> HPA controller (3).kubelet(cAdvisor)[ -> 资源评估器 ] -> metrics-server -> API server -> kubectl top (4).kubelet(cAdvisor)[ -> 资源评估器 ] -....

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二进制手动部署

注意本文档,定期更新一些新的k8s有用的插件,以下部署版本为1.18+ 一、准备部署环境 系统使用centos7,内核版本升级为 5.4.134,最好升级到4.10以上版本 [20:36:03 root@k8s-master ~]#rpm -ivh kernel-ml-4.20.13-1.el7.elrepo.x86_64.rpm [20:38:01 root@k8s-master ~]#grub2-set-default 0 [20:39:45 root@k8s-master ~]#grub2-mkconfig -o /boot/grub2/grub.cfg #之后重启服务器 设置时间同步,推荐使用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 优化内核 # https://github.com/moby/moby/issues/31208 #....

线上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....

生而为人