今天遇到一个错误迁移的时候发现无法迁移到不同的主机上,这样就失去了高可用的能力。每个虚拟机的配置界面都有EVC的选项,这里的CPU模式相同才能正常切换到不同的主机上。而要彻底消除这个错误,需要把所有物理主机都加入到集群中然后在集群模式下启用EVC。再把所有不相同的虚拟机停机修改CPU模式和EVC一样。这样就可以在所有的主机之间正常迁移了。
介绍: 到这个地方为止整个平台已经正常运行,监控和告警也能告诉我们集群运行是否平稳。历史记录可以看到资源的使用趋势,通过长期的数据累计能知道高峰和低估时间,整个集群资源利用率等等。可是当业务访问量增加资源不足触发告警,人员介入处理手动扩容。这些动作始终还是需要有人去做,而人不能24小时运转特别是一些小公司人员有限也不轮班,这不是睡觉都不踏实么。这个时候k8s的自动扩容缩容就有用了,而且在前面我们做
介绍: 基本上到这里,证明整个集群已经能正常运行,同时业务程序也部署到了集群中并且可以提供用户使用。不过整个集群还是需要对其进行监控起来,否则根本就不知道目前集群是什么情况,特别是用云主机的集群到底多少资源够用,什么时候需要增加资源什么时候降低资源,怎么用最少的钱办最多的事,老板最关心的就是钱了,所以监控必不可少。可以说有了监控整个集群才有了眼睛,没有监控就和男人没穿内裤女人没带胸罩一样,总觉得心
介绍: 很多使用k8s的人都知道,部署完业务应用以后如何才能使用起来才是关键。如果一个程序容器化部署到k8s后没有访问程序的点,那这个程序没有任何作用还不如在虚拟机上用手动用命令run起来。而k8s中最常见的几种访问方式有service、ingress、nodeport。这一节就详细说说这几种方式的具体使用场景。 k8s中的service: service是最常用的,k8s集群运行以后就能使用。而
介绍: 到这里我们就需要把程序发布到前面配置好的亚马逊k8s上。但是我们不能每次都手动去处理这些工作,这里说一下简单的环境。我们有两个环境分别是uat和pro对应开发和生产,这两个名称是之前的人确定的。按照正常应该是开发、测试、预发布、生产四个环境,当然小团队为了节省成本还有平台的性质可能略有不同。前一家公司的项目类似电商每天交易量大概10万订单所以是一分都不允许停止,那整个构建发布流程就
介绍: 一个平台项目会有很多程序模块,现在微服务架构盛行。所以一个平台会拆成很多个程序模块来部署。一般多的上百个,少的也有几个十来个。这就需要制作好镜像,为了方便我为每一种类型的程序制作一个基础镜像,每种语言开发的不同模块只要编译完放进去就能启动。这种方式可以提高构建镜像的效率,镜像仓库按层来存储也能减小存储空间,提高部署时拉取镜像的效率。用来演示的项目有三种语言来开发,java语言、go
介绍: 到这里基本上集群就已经跑起来了,接下来就要把运行业务系统的程序部署上去。这里会介绍zookeeper、etcd、kafka的部署,会讲到服务为什么需要用Deployment和StatefulSet。这两个东西分别是如何运用的。 zookeeper: 要制作zookeeper的镜像需要了解zk集群运行时的配置方法和原理,其中配置文件有个地方需要处理。下载zookeeper安装包,解压到一个目
介绍: 因为要部署自己公司的内部应用程序,所以必须要创建一个私有的镜像仓库。如果你是使用云服务的镜像仓库可以跳过,这里将使用nexus来创建docker镜像仓库。nexus不光可以创建docker,也是很多公司内部用来作为各种程序的内部加速使用。比如java的maven、nodejs、rpm、pip、.net等各种仓库。所以我更喜欢使用这个nexus作为docker镜像仓库,这样就不用再去维护一个
默认eks创建好以后是没有配置界面的,没有界面用起来实在很麻烦。这里推荐使用rancher2.0的页面,简单漂亮使用方便。适合研发、测试等人员使用,基本就是鼠标点点点就行。 rancher安装: 使用helm进行安装操作,所以这里需要下载一个helm工具。wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gztar -xf helm-v3.
简介: 默认情况下k8s中部署程序以后是需要让外面的人使用的,所以需要把服务暴露出来。暴露的方式一般是ingress和nodeport,而这两个东西又必须要依赖负载均衡器。亚马逊和阿里云上可以直接用,只需要安装load-balancer-controller即可。这章主要是讲如何正确的安装这个aws-load-balancer-controller。如果是自建的k8s集群推荐一个负载均衡器meta
故障描述: 今天一个项目出现数据库链接数耗尽问题,所有程序无法访问数据库,整个平台全部崩溃。只要是重启的服务就会导致无法链接数据库。 故障分析: 通过查看数据库日志,还有程序抛出的异常。发现新重启的程序无法和数据库建立链接,抛出异常too many connection。但是已经启动好的程序运行正常没有任何问题。查看数据库链接数,在数据库中执行show processlist 语句
介绍: 不管是亚马逊还是阿里云集群创建完以后是没有计算节点的,这和使用kubeadm命令安装的不同。这时用kubectl get nodes命令看不到内容,如果要在k8s上部署服务必须要添加计算节点。计算节点的收费请参考aws的ec2计费标准。添加计算节点我们会遇到一个问题,到底添加什么配置的主机更好呢?要解决这个问题,我们需要先整理一下目前的系统模块数量,以一个常规的微服务举例:1、基础组件:e
本章介绍如何在亚马逊云上创建k8s集群,亚马逊上称为eks。
开篇
jenkins配置好以后里面的凭据可能会在很久都不会进行修改,时间久了以后可能就忘记之前的账号密码是什么了。而默认在jenkins管理页面中查看不到原始的密码。这时可以使用管理后台的功能对密码进行解密。具体位置如图:选择脚本命令行:这个贴入密文就点击执行以后就能在下面得到明文的密码了。println(hudson.util.Secret.fromString("{AQAAABAAAAAQj2t5S
这段时间一直在学习openwrt,弄来几个mtk7621芯片路由器玩了一下。一部分工作处理好以后路由器给还了回去,没有了环境,只有重新安装一个x86的架构。但是发现x86架构的磁盘空间太小了,只有200多M。既然是x86架构我10多G的固态硬盘怎么能忍心就这么浪费呢?必须扩容一波啊!以下操作全部在linux系统下完成,至于windows系统大家就自己发挥了。(重度linux用户,已经抛弃windo
应用场景:在生产环境中有两个宿主机在边缘机房中,两个主机组成了一个k3s集群。由于业务需求需要把一些数据上传到数据中心存储,为了数据传输安全所以选择使用vpn加密隧道方式传输。传统做法就是两个主机都拨一个vpn链接然后在主机上配置回数据中心的路由,这样pod中的应用就可以用宿主机的vpn传输数据了。但是这个解决方案不具备通用性,因为vpn的账号数据会随着宿主机的增加而增加,产生大量的维护工作量。最
简介:在正常生产环境中使用k8s部署业务后能正常运行还不够,我们需要很多附加的东西来满足日常的需求。比如日志、监控、告警等。这一篇给大家分享一下我们生产环境中的日志集中解决方案。当然不敢说是最好的,分享出来供大家参考。在正常环境中有几类日志我们比较关心:1、k8s中的ingress日志。比如traefik,里面记录的从公网域名访问进来的访问记录,类似nginx的access.log2、istio中
在rancher的QQ群和微信群里面经常看到大家在部署rancher的集群模式很困难的样子,各种问题不知道该怎么办。其实部署起来非常的简单。下面就使用k3s集群来安装一个rancher的集群模式。k3s是rancher公司推出的轻量化k8s,安装和运行会比k8s更容易。自动带有网络、负载均衡、traefik、持久化存储等功能。一、k3s集群安装。这里使用的数据源为etcd,当然大家可以改成mysq
在java项目中我们经常需要用到maven作为构建。maven的默认公共仓库源在国外,拉取jar包速度非常慢。同时我们通常会有自己的私有项目jar包。这两个需求可以用nexus这个开源软件来解决,搭建一个maven的私有仓库。此处略去搭建nexus的过程,可以自行百度。下面讲一下maven的setting.xml配置文件、项目中pom.xml文件和nexus仓库中的对应关系。1、nexus仓库创建
今天搭建了一个新的k8s集群,然后通过rancher平台纳管。rancher平台是一个比较好用的web页面,里面可以一键安装监控配置告警等用起来还是比较方便的。但是其它数据都可以正常收到promethues里面,唯独就没有etcd集群的数据。使用grafana打开发现etcd的监控是空的。本来想通过修改promethues的配置来收集etcd的监控数据,但是这个promethues是通过opera
背景介绍:随着容器化技术逐渐成熟,很多公司都希望把公司的业务迁移到容器平台上,容器编排首选的还是k8s。今天介绍的就是如何把以前的平台通过灰度的方式逐渐把整个环境过渡到k8s平台中。下面记录了我在一次生产过程中的整体迁移过程,供大家参考互相学习。现有环境部署情况:大概的结果就和图片上差不多。容器环境部署的时候,把所有应用都进行容器化打包。这里多少会涉及到一些开发的改造,比如配置文件、原有程序是否支
今天收到云主机厂商发来的安全漏洞扫描信息,提示我公网主机有DES和TripleDES信息泄露漏洞(CVE-2016-2183)的漏洞要求修复。漏洞详细描述:TLS(TransportLayerSecurity,安全传输层协议)是一套用于在两个通信应用程序之间提供保密性和数据完整性的协议。SSH(全称SecureShell)是国际互联网工程任务组(IETF)的网络小组(NetworkWorkingG
今天安装k8s的cilium网络插件。发现必须要使用kernel4.8以上版本才行。所以需要对默认的centos73.10版本进行升级。简单记录升级过程:到https://www.kernel.org/下载kerinel。然后解压。复制现有系统的config文件。cdlinux-5.6.7cp/boot/config-3.10.0-1062.18.1.el7.x86_64.configmakeme
简介:squid是很老的代理软件,功能齐全可以做正向和反向代理。目前反向代理市场已经被nginx和varnish占据了主导地位,不过依然是正向代理的霸主。本文介绍如何利用squid的子节点和父节点配置组成一个代理矩阵。代理矩阵在普通场景很少使用。应用的场景主要是需要大量缓存的地方,如运营商为了减少网间结算费用设置了很多代理来缓存用户访问的网页静态页面、视频、下载的文件等。然而一台服务器从性能和存储
数据中心动态DNS+DHCP应用应用案例:有大批量主机需要安装上架,我们必然使用自动化无人值守安装,比如kickstart。使用kickstart可以使主机能按照既定的方式批量安装好系统,并设定主机名接入到管理平台等一些任务。但是主机的IP地址很难规划,因为当有大量IP使用的时候你根本无法很好的为每个主机手动分配IP地址并记录。这时可以用到DNS+DHCP的特性来自动更新主机IP地址和DNS记录。
很少在网上看到关于galera的生产应用实际样例的文章,此文章供大家参考。希望由此能把多节点数据库部署成功。galera和主从架构确实有了很多方便维护的地方,再也不用担心主从节点同步失效而带来数据丢失,数据不一致等问题。在生产用上galera架构以后数据库某个节点故障也不会再去锁表备份来达到主从可用,只需要重新修好节点重启数据库服务。剩下的就交给galera自动增量或者全量同步数据了。
今天对原来的网站做证书加密处理,就是http转换成https。配置好nginx后发现网页打开有部分页面却还是http协议,这样将导致https网页无法加载http的内容。尝试了网上各种配置,都不行。最后的解决办法是修改程序代码。原来代码:<c:setvar="ctxx"value="${pageContext.request.scheme}://${pageCo
声明:本文为原创作品,因为编写的时间比较久远所以不记得是否在别处发表过了。如有在其它地方发现有此文,也一定是本人发表,否则定是剽窃。本文主要目的不是让大家使用linux来搭建路由器使用,而是为大家提供一个从linux环境下看网络的视角。通过系统中对数据包更加细致的操纵,从而能了解到一个数据包在系统内核情况下的状态。理论上经过linux系统的所有数据包都能进行操作,实现负载均衡,重定向,IP伪装等都
说明:因为个人兴趣,对openstack有浓厚的兴趣。在网上无意间看到了docker所以突发奇想做了这个实验。现拿出来给大家分享。此文只适合参考,不可直接使用到生产环境。因为里面有很多的系统漏洞,可能会被黑客利用。本文只用于大家学习研究,为大家降低docker与openstack结合的门槛,也降低了硬件门槛,提供一些广阔的思路。此文在两个QQ群和百度文库中有过分享。文中也有借鉴一些网络的资料,在这
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号