kubernetes-ETCD说明及常用命令
etcd 是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现官方网址:https://etcd.iogithub地址:https://github.com/etcd-io/etcd官方硬件推荐:https://etcd.io/docs/v3.5/op-guide/hardware
一、硬件配置说明:
CPU
很少有 etcd 部署需要大量 CPU 容量。典型的集群需要两到四个核心才能顺利运行。重负载的 etcd 部署,每秒服务数千个客户端或数万个请求,往往受 CPU 限制,因为 etcd 可以服务来自内存的请求。如此繁重的部署通常需要八到十六个专用核心。
内存
etcd 的内存占用相对较小,但其性能仍然取决于是否有足够的内存。etcd 服务器将积极缓存键值数据,并花费大部分其余的内存跟踪观察者。通常 8GB 就足够了。对于具有数千个观察者和数百万个键的大量部署,相应地分配 16GB 到 64GB 内存。
磁盘
快速磁盘是 etcd 部署性能和稳定性的最关键 ...
Kubernetes 安装coreDNS组件
DNS 组件历史版本有skydns、kube-dns和coredns三个,k8s1.3版本之前使用skydns,之后的版本到1.17及之间的版本使用kube-dns,目前主要使用coredns,DNS组件用于解析k8s集群中service name 所对应的ip地址官方文档:coreDNS官方文档获取官方包和yaml文件:官方包和yaml文件地址
github搜索kubernetes,找到相应的k8s版本,点击changelog需要下载这几个包:client:server:node:下载之后上传到master并解压,解压之后的目录结构如下图:相关yaml文件和插件目录,如dns,dashboard等相关二进制文件:coredns一般用coredns.yaml.base 修改
官方yaml文件:
# __MACHINE_GENERATED_WARNING__
apiVersion: v1
kind: ServiceAccount
metadata:
name: coredns
namespace: kube-system
labels:
kubernetes. ...
kubeasz 二进制安装k8s高可用集群
一、kubeasz介绍项目致力于提供快速部署高可用k8s集群的工具, 同时也努力成为k8s实践、使用的参考书;基于二进制方式部署和利用ansible-playbook实现自动化;既提供一键安装脚本, 也可以根据安装指南分步执行安装各个组件。
二、安装前准备1、集群规划
角色
数量
描述
节点ip
部署节点
1
运行ansible/ezctl命令。建议单独部署
192.168.17.130
etcd节点
3
注意etcd集群需要1,3,5…奇数个节点,一般复用master节点
192.168.17.140、192.168.17.141、192.168.17.142
master节点
3
高可用集群至少2个,这里用三个
192.168.17.130、192.168.17.131、192.168.17.132
node节点
2
运行应用负载的节点,可根据需要提升机器配置/增加节点数
192.168.17.150、192.168.17.151
harproxy
2
负责api-server的的负载均衡,配合keepalived实现api-serv ...
记录服务器被挖矿的处理方法
背景:并不是我公司的服务器被挖矿,是合作伙伴的有一台服务器的cpu连续3天被吃满,所以让我帮忙看下,因为之前也没有处理过类似的挖矿事件,所以记录一下。首先登录服务器查看相关资源使用情况:好家伙,这资源已经被占的不要不要的了。
通过观察可以看到top显示启动了很多不知道的服务,tssc用户启动的,还有esuser启动的,而他们的command都是bash,还是第一次看到这种情况。于是我单独查看某个pid号,就一个bash命令。于是我查看了下定时任务,看看有没有定时执行的脚本,发现这些是什么玩意!赶紧删除了到这个时候,看了下阿里云的报警信息,如下图:看起来应该是被植入了挖矿程序,于是赶紧将此文件下的所有内容删除但是删除之后top中的进程都还在呢,得全部kill掉,命令如下:
[esuser@iZ2ze5f6uou33ntud78dr5Z ~]$ ps -ef |grep esuser |grep bash |grep -v pts/2 |awk '{print $2}' |xargs kill
经过几分钟之后发现系统负载已经降下来了虽然操作没 ...
部署harbor服务器(https_http)
1、下载官方的harbor离线包https://github.com/goharbor/harbor/releases
2、下载后上传到服务器并解压
3、修改harbor.yml4、https需要生成签证mkdir ssl
#生成私有key
openssl genrsa -out ~/harbor-install/harbor/ssl/harbor-ca.key
ll ssl/
touch /root/.rnd
#签证
openssl req -x509 -new -nodes -key ~/harbor-install/harbor/ssl/harbor-ca.key -subj "/CN=harbor.dujie.com" -days 7120 -out ~/harbor-install/harbor/ssl/harbor-ca.crt
5、安装docker-composecurl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname ...
rsync+inotify 实时同步备份
rsync+inotify 实时备份目标服务器:
yum -y install rsync
vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.password
[backup]
path = /mnt2/backup/39.97.84.214
comment = sync etc from client
uid = root
gid = root
port = 873
ignore errors
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600
auth users = root
#说明:
vim /etc/rsyncd.conf //增加以下内容
log file = /var/log/rsyncd.log #日志文件位置,启动rsync后自动产生 ...
服务器压力测试
服务器压力测试是检验服务器性能稳定性的最有效方式。在利旧场景中,业务还未部署的情况下,可以通过对服务器进行简单压力测试,提前暴露硬件问题。本文以基于3.10内核的Linux CentOS 7操作系统下压力测试为例
注意:不要在生产服务器或已经部署业务的服务器上操作,可能会造成业务不可用、数据丢失,请谨慎操作。
一、下载测试工具
CPU测试工具stress下载地址:https://fossies.org/linux/privat/stress-1.0.4.tar.gz
磁盘测试工具fio下载地址:https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
内存测试工具memtester下载地址:https://fossies.org/linux/misc/memtester-4.5.0.tar.gz
1、安装cpu测试工具stress
tar xf stress-1.0.4.tar.gz
cd stress-1.0.4
./configure
make
make install
...
ab命令压测
yum -y install httpd-tools
ab命令参数:
-n 即requests,用于指定压力测试总共的执行次数。
-c 即concurrency,用于指定的并发数。
-t 即timelimit,等待响应的最大时间(单位:秒)。
-b 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p 即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u 即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T 即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v 即verbosity,指定打印帮助信息的冗余级别。
-w 以HTML表格形式打印结果。
-i 使用HEAD请求代替GET请求。
-x 插入字符串作为table标签的属性。
-y 插入字符串作为tr标签的属性。
-z 插入字符串作为td标签的属性。
-C 添加cookie信息,例如:" ...
centos7 安装svn服务器
一、安装svn服务器[root@svnserver ~]# yum -y install subversion
查看svn 安装位置,可以用以下命令:
[root@svnserver ~]# rpm -ql subversion
/etc/subversion
/etc/sysconfig/svnserve
/run/svnserve
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion
/usr/lib/systemd/system/svnserve.service
/usr/lib/tmpfiles.d/svnserve.conf
/usr/share/bash-completion/completions/svn
...
..
...
二、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置选择在var路径下创建版本库,当前处于根目录下,一次性创 ...
iptables相关规则
一、表与链
filter表
主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包)filter表示iptbales默认使用的表,这个表定义了3个链(chains)
INPUT
负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包
FORWARD
负责转发流经主机的数据包。起转发的作用。NAT模式,net.ipv4.ip_forward=0
OUTPUT
处理所有源地址是本机地址的数据包,就是处理从主机发出去的数据包
NAT表:
负责网络地址转换的,即来源与目的IP地址和port的转换。 应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相 关。使用场景:
用于企业路由(zebra)或网关(iptables),共享上网 (POSTROUTING)
做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务 器,ftp服务(PREROUTING)
WEB,单个端口的映射,直接映射80端口(PREROUTING) 这个表定义 了3个链,nat功能相当于网络的acl控制。和网络交换机acl类似。
...