云计算之运维之路
mx_steve
记录自己点点滴滴,分享自己小小收获
展开
-
centos ftp搭建
1. 安装 vsftpdyum -y install vsftpd2. 修改配置文件 /etc/vsftpd/vsftpd.conf12 anonymous_enable=NO3. 修改配置文件 /etc/pam.d/vsftpd4 #auth required pam_shells.so4. 启动ftp服务systemctl restart vsftpdsystemctl enable vsftpd5. 创建ftp用户并测试连接useradd ftpadm原创 2022-03-31 17:17:09 · 333 阅读 · 0 评论 -
vim打开文件中文乱码
vim 问题原创 2022-03-21 14:58:06 · 405 阅读 · 0 评论 -
云计算之kubernetes服务暴露——ingress 排错
上一回留下一个问题,就是使用浏览器无法访问到,这一回继续排错。1. 排错思路整理 1) nginx-ingress-controller pod nginx-ingress-controller-6d96ccd6f4-g2d6b , master与node 都可以访问 kubectl describe pod nginx-ingress-controll...原创 2020-01-09 17:07:00 · 1166 阅读 · 0 评论 -
云计算之kubernetes服务暴露——ingress
一,暴露方法 1、hostNetwork:true 在pod中使用该配置,在这种Pod中运行的应用程序可以直接看到pod启动的主机的网络接口。 2、hostPort:直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过主机的IP来访问Pod了。 3、NodePort:是K8s里一个广泛应用的服务暴露方式。K8s中的service默认情况都是使用Clu...原创 2020-01-08 17:01:12 · 428 阅读 · 0 评论 -
云计算之kubernetes系列——配置本地dns服务并关联kube-dns
一,背景 因为k8s集群以及web服务测试,每次使用/etc/hosts配置或者写ip都不太好,所以决定搭建dns服务器做域名解析,后期可以做k8s-kube-dns的父dns服务器。二,搭建 1. 服务器 dnsserver 192.168.89.128 2. 安装dns软件包 yum -y install bind bind-ch...原创 2020-01-05 14:41:56 · 464 阅读 · 0 评论 -
kubernetes 服务发现问题——kubedns[下部]
上一回有关kubedns服务中报错,这一回整体整理一下。一,Kubedns工作原理1.kubedns:kubedns监控并记录service与ip之间的映射关系,以树形结构将数据保存在内存中。2.dnsmasq:从记录的地方查询相关的解析记录特点:使用内存做dns缓存,速度非常快3.exechealthz:用来监控kubedns和dnsmasq是否出现问题,做健康检测二...原创 2019-12-23 16:18:09 · 2248 阅读 · 0 评论 -
云计算之nginx配置2
一,基础环境 主机名 功能 ip地址 域名 nginx端口 k8snode1 图片服务器 192.168.89.133 img.com 80 k8snode2 ...原创 2019-12-23 10:58:52 · 315 阅读 · 0 评论 -
云计算之nginx系列——nginx防盗链
1. 原理 使用 nginx 模块ngx_http_referer_module 来阻挡来源非法的域名请求。通俗来说,就是防止别的网站盗用本网站的资源(图片/视频/音频/js等文件),导致耗费本网站的资源。2. 防盗链配置 location ~* \.()$ { # 文件过期期限 30天 expires 30d; # 允许...原创 2019-12-20 14:45:22 · 177 阅读 · 0 评论 -
celery-threading优化续集
续集:一. 背景 接着上一回,多线程threading本身没有限制自己的线程数量,但是当线程数量过多时,就会报错,导致数据收集不全,所以要选择设置threading开启的线程数量二. 解决 修改脚本,开启线程数量限制,同时开启300个线程运行收集版本数据 vim get_version.py import paramiko import...原创 2019-12-19 11:14:27 · 680 阅读 · 0 评论 -
云计算之celery系统优化
一. 背景 上一回讲解了celery+django+redis+supervisor实现django定时运行脚本功能,get_version.py脚本的功能是逐个去服务器收集服务版本信息,服务器比较多,数据量比较大,整体耗时一个多小时,现在引入多线程优化这个脚本。二. 编写测试脚本 vim /opt/scripts/thread1.py import threa...原创 2019-12-18 14:33:27 · 249 阅读 · 0 评论 -
云计算之celery+django+supervisor实现定时任务
一. celery概要 1. 概念 分布式任务队列,django中所有需要用到异步操作的,或者定时操作的,都可以使用celery 2. 组件 Celery Beat : 任务调度器. Beat 进程会读取配置文件的内容, 周期性的将配置中到期需要执行的任务发送给任务队列. Celery Worker : 执行任务的消费者, 通常会在...原创 2019-12-18 11:25:37 · 1076 阅读 · 1 评论 -
kubernetes 服务发现问题——kubedns[更新中]
我是通过二进制方式安装的kubernetes 1.16.2版本,现在想要做kubernetes 服务发现,使用的是kubedns模块,dns模块yaml文件来源:https://github.com/kubernetes/kubernetes/tree/release-1.16/cluster/addons/dns/kube-dns,选择了kube-dns.yaml.sed修改了cluster...原创 2019-12-13 10:16:04 · 1231 阅读 · 0 评论 -
云计算之K8S系列截取——flanneld+etcd实现docker容器网络互通
一、背景随着网络技术和硬件技术的发展,单机单应用已经很难满足现在的需求,都在搞集群化,一批机器同时提供服务,性能会更好。在这之中,容器化越来越火,当然也就需要满足集群化需求,即不同机器的docker容器可以互相访问,实现这种功能很多,例如flannel,OVS,基本路由配置等都能实现,这里只要讲解一下flannel的原理和使用方法。二、概念flannel是CoreOS提供用于解决Dok...原创 2019-11-16 21:15:52 · 565 阅读 · 0 评论 -
云计算之k8s系列_第六回
上一回讲了我们可以使用kubeadm一键部署kubernetes,这一回就开始实际操作一下,搭建的过程中也踩了不少坑,爬出来后又重新整理了下,有序操作,可能会好一些,为了方便,本案例都是以root身份运行1.环境准备: 192.168.1.10 master centos7 2CPU 7.5G 192.168.1.20 ...原创 2019-06-14 08:55:52 · 357 阅读 · 0 评论 -
云计算之k8s系列_第七回
上一回,我们搭建了kubernetes集群,现在我们使用kubernetes集群发布第一个容器化应用。在这之前,我们要制作容器的镜像。使用kubernetes的必备技能:编写配置文件(YAML)。Kubernetes跟docker项目不同,它不建议我们使用命令行的方式运行容器,而是编写yaml文件,把容器的定义、参数、配置,统统记录在一个yaml文件中,然后用这样一句指令把它运行起来:...原创 2019-07-05 12:59:08 · 453 阅读 · 0 评论 -
云计算之ssh小坑
ssh连接时报错: ssh_exchange_identification: read: Connection reset by peer解决: vim /etc/hosts.allow sshd: ALL再次连接,就没有问题了原创 2019-06-29 17:00:21 · 188 阅读 · 0 评论 -
云计算之docker与周期性计划任务
刚刚在docker容器中使用周期性计划任务,发现压根无法执行,我这暴脾气不能忍,果断解决,发现有个文件会干扰。把对应的内容注释掉即可。vim /etc/pam.d/crondaccount required pam_access.soaccount include password-auth#session required pam_loginuid....原创 2019-07-03 22:28:30 · 292 阅读 · 0 评论 -
云计算之openstack修改管理员密码
忘记密码真的是一件很难受的事情,还有交接工作的时候前任告诉你个错误的密码,你能咋地,所以破解密码这个东西,一定要会,这样,不受制于人。这里教大家如何修改openstack管理员的密码,我使用的方法是使用keystone模块中的TOKEN值进行修改密码。步骤一:找到自己的TOKEN值openstack的token值存在两个文件中,answer.ini中以及/etc/keystone/ke...原创 2019-07-09 12:02:25 · 4867 阅读 · 0 评论 -
云计算之k8s系列_第八回
上一回我们已经部署了一个容器应用,这回讲解一下pod,相信我们在学习和使用k8s过程中都会想:为什么我们需要pod?可以这样理解,容器的本质是进程。容器镜像就是这个系统里的.exe安装包,k8s就是操作系统!通过使用pstree -g命令可以看出,每个进程都不是独立存在的,而是以进程组的方式存在。比如,rsyslogd的程序,他负责linux操作系统的日志处理。rsyslogd的主...原创 2019-07-08 16:42:54 · 776 阅读 · 0 评论 -
云计算之mysql高可用_PXC
一、概念介绍:基于Galera的mysql高可用集群解决方案,PXC集群主要由两部分组成:percona server with xtradb 和 write set replication patches(同步、多主复制插件) 特点: 数据强一致性、无同步延迟; 没有主从切换操作,无需使用虚IP; 支持innodb存储引擎; 多线程复制; 部署使用简单; 支持节...原创 2019-06-23 12:52:18 · 803 阅读 · 0 评论 -
云计算之k8s系列_第五回
了解了linux容器本身的使用,就该考虑如何使用这些技术来“容器化”你的应用。例如:我们的应用可能是web和mysql组合,也可能是cassandra(Apache开发的分布式的非关系型数据库)这样的分布式系统。而要使用容器把Cassandra运行起来,单单通过docker把它跑起来是没用的。关键是,如何处理好容器之间的编排关系,比如哪些是主,哪些是从,如何进行自动发现和通信,如何做持久化数据...原创 2019-06-09 23:26:54 · 665 阅读 · 0 评论 -
云计算之闲谈网页下载
别人的网页总是好的,下载下来我们自己用,那咋下载呢,方法有很多,闲谈一下,以下载百度首页为例。方案1:wgetwget http://www.baidu.com/index.html -O index.html方案2:curlcurl http://www.baidu.com/index.html -O index.html方案3:shellvim get.sh...原创 2019-06-09 11:46:28 · 192 阅读 · 0 评论 -
云计算之k8s系列_第四回
docker回顾从前三回中,我一步步剖析了linux容器的具体实现方式。一个容器,实际上是一个由linux namespace、linux cgroups 和 rootfs三种技术构建出来的进程的隔离环境。从上我们可以看出,一个正在运行的linux容器可以从两方面看待:- rootfs,容器镜像,是容器的静态视图; - namespace+cgroups,构成隔离环境,称为容器运行时...原创 2019-06-09 01:09:02 · 533 阅读 · 0 评论 -
云计算之ubuntu软件包管理应用
1.软件包整理和配置软件源 1. 配置本地软件源 1.建立一个目录,用于放所有下载的软件包 mkdir /root/deps 2. 将下载的包都放到 /root/deps中 3. 建立Packages.gz包,里面记录了packs文件夹下面的软件包信息,包括依赖信息。 dpkg-scanpack...原创 2019-06-14 10:03:15 · 240 阅读 · 0 评论 -
云计算之k8s系列_第九回
pod是k8s项目中的最小编排单位。将这个设计落实API对象上,container就成了pod属性里的一个普通的字段。那么,到底哪些属性属于pod对象,哪些属于container的?上一回我们得出了一个结论:pod扮演的是传统部署环境里“虚拟机”的角色。这样的设计,是为了使用户从传统环境(虚拟机)向k8s环境(容器)的迁移更方便。如果我们能把pod看成传统环境里的“机器”,把容器看做是...原创 2019-07-12 09:51:24 · 1256 阅读 · 1 评论 -
云计算之nginx配置try_files配置
刚刚朋友问我nginx配置中try_files是什么鬼?这里稍作说明,并配合实例操作先找一台服务器安装nginx服务tar -xf nginx-1.12.2.tar.gzcd nginx-1.12.2./configure --prefix=/usr/local/nginx --user=nginx --group=nginxmake && make install...原创 2019-07-29 11:30:49 · 697 阅读 · 0 评论 -
云计算之docker小结
预备: 1.shipyard : docker管理web页面 2.简单操作 docker run --name xx -h xx docker stop container id docker ps docker ps -l docker exec docker rm dockerid...原创 2018-08-26 16:54:24 · 934 阅读 · 0 评论 -
云计算之信息图形化显示_CPU负载图形展示
今天给大家讲解一下cpu信息图形展示的一种简单方案,只做临时查看。先要收集cpu负载信息,可以使用sar命令:1.装包配置yum -y install sysstatsar --help # 就提供了sar命令sar命令直接看后日期显示的是中文格式,不适合排序,因此可以使用LANG=C sarvim /root/.bashrc alias sar='LANG=C sa...原创 2019-09-05 15:51:50 · 548 阅读 · 1 评论 -
云计算之k8s系列_第十四回
上一回我们了解了StatefulSet如何保证应用实例的拓扑状态,在Pod删除和再创建的过程中保持稳定。今天,我们看看StatefulSet对存储状态的管理机制,这个机制,主要使用的是一个叫作Persistent Volume Claim的功能。在之前我们谈到过Pod,要在一个Pod里声明Volume,只要在Pod里加上spec.volumes字段即可。然后,你就可以在这个字段里定义一...原创 2019-08-10 10:08:07 · 253 阅读 · 0 评论 -
云计算之k8s系列_第十三回
上一回留了一个问题:Deployment实际上并不足以覆盖所有的应用编排问题。原因在于Deployment对应用做了简单化假设。它认为:一个应用的所有Pod,是完全一样的,没有顺序,也无所谓运行在哪台机器上,需要的时候,Deployment就可以通过Pod模板创建新的Pod;不需要的时候,Deployment就可以删除任意一个Pod。但是在实际环境中,并不是所有的应用都可以满足这样的要求。...原创 2019-08-07 15:15:23 · 196 阅读 · 0 评论 -
云计算之k8s系列_第十二回
上一回讲解了控制器,这一回详细看看控制器中Deployment控制器,k8s中,Deployment实现了一个非常重要的功能:pod的水平扩展与收缩。如果我们更新了Deployment的pod模板,那么deployment就需要”滚动更新(rolling update)“,来升级现有的容器。上述功能依赖ReplicaSet对象,我们先看看这个YAML文件:apiVersion: ap...原创 2019-08-06 17:33:27 · 812 阅读 · 0 评论 -
云计算之java项目上线
最近刚刚完成java项目上线,在此略作整理,也给在座各位打发下时间。1.java网站上线流程:公司内部服务器-->github-->IDC机房预发布机器-->测试集群-->线上集群开发人员将java web网站代码传到公司内部服务器,git add . ,git commit -m 'version2.0' ,git push上传到我们github上,运维...原创 2019-07-27 16:40:15 · 1091 阅读 · 0 评论 -
云计算之部署rabbitMQ服务
no zuo no die, no can no bibi。哈哈,我又回来了,生活就是不作不死,不作不快活,开发提需求,我们满足就是了,最近应项目需求,需要选择一款消息队列产品来提高系统性能,改善用户体验,我想了想,消息队列产品:redis,memcache,kafka,rabbitmq等,我选择了rabbitmq,别问为什么,就是任性,好了,接下来进入正题。背景介绍首先,有些同胞可能...原创 2019-08-01 11:15:56 · 398 阅读 · 0 评论 -
云计算之mysql5.7.26源码安装应用
众所周知,mysql应用的搭建方式比较多,目前项目需求,需要使用mysql5.7.26的软件包安装mysql,此处采用源码包进行安装。首先,下载mysql5.7.26源码包:wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz现在完后,解压到对应目录下...原创 2019-07-22 19:39:47 · 226 阅读 · 0 评论 -
云计算之k8s系列_第十一回
上一回,我们了解了pod的用法,知道了pod这个API对象的各个字段。接下来,看看编排这个k8s中最核心的功能。pod这个看似复杂的API对象,实际上就是对容器的进一步抽象和封装而已。换句话说,容器镜像虽然好用,但是容器对于描述应用来说,还是太过简单了。所以,pod对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段,使得k8s可以更轻松的操作它。现在,我们...原创 2019-08-04 15:07:40 · 373 阅读 · 0 评论 -
云计算之k8s系列_第十回
在k8s中,有几种特殊的Volume,他们存在的意义不是为了存放容器里的数据,也不是用来进行容器和宿主机之间的数据交换。这些特殊volume的作用,是为容器提供预先定义好的数据。被称为projected volume(投射)到目前为止,k8s支持的projected volume一共有四种: 1.Secret; 2.ConfigMap; 3.Downward API;...原创 2019-07-21 17:53:10 · 1812 阅读 · 0 评论 -
云计算之OpenSSH更新升级
公司目前OpenSSH是7.4版本,有一些漏洞,传输过程中存在数据被窃取风险,顾将机器OpenSSH升级至8.01.先源码安装OpenSSH需要的依赖包[root@server1 ~]# yum -y install gcc openssl-devel pam-devel rpm-build2.到官网下载公司需要的8.0的源码包[root@server1 ~]# wget ...原创 2019-07-29 15:02:51 · 280 阅读 · 2 评论 -
云计算之系统备份和还原
上一篇讲了dd命令,这一篇使用dd命令做系统备份和还原,在服务运行过程中,硬盘损坏是常有的事,那么,给磁盘做系统备份和还原是非常有必要的,下面整理了制作流程。一、操作系统备份方法:dd方式,备份整个硬盘 第三方软件Clonezilla 给系统打包二、使用打包方式备份系统 1. 环境:准备2台虚拟机 Node01 Eth0 ...原创 2019-06-07 19:13:58 · 708 阅读 · 0 评论 -
云计算之dd小结
如果你想要把本地归档进行远程备份,从一个即将损坏的存储驱动器挽救数据,或者把一个别处的活动分区做个完整的副本,那么你需要知道如何安全可靠的复制驱动器和文件系统,dd命令绝对是最好的选择1.对驱动器和分区做个完整的副本在使用dd命令时,如果输入了哪怕一个字母,也可能立即永久性的擦除掉整个磁盘驱动器里的所有重要的数据。因此,一定要注意命令的拼写格式规范2.dd命令的基本操作1).为/...原创 2019-06-07 18:25:01 · 296 阅读 · 0 评论 -
云计算之修改网卡名称
我们都习惯使用eth0作为网卡名,但是有时候我们看到的网卡各种名称都有,那么,如何修改网卡名称,这边整理了简单的步骤。cd /etc/sysconfig/network-script/mv ifcfg-ens3 ifcfg-eth0vim ifcfg-eth0 name=eth0 device=eth0vim /etc/default/grub #修改内核默认启动参数:...原创 2019-06-07 18:10:34 · 335 阅读 · 0 评论