自从上次开始脚踏两只船(2个独立的k8s集群同时运行),园子暂时用奢侈的土豪方式过上了安稳的船上生活. 这种方式除了费钱之外,还带来一个问题,我们的集装箱自动装船系统(基于gitlab-ci的自动化部署)不灵了,不支持同时向2艘船装同样的货(2个gitlab-runner运行同1个job),后来,我们通过 gitlab 的秘密武器 parallel-matrix 解决了. deploy-prod: stage: deploy tags: - k8s-prod variables: DEPLOY_…
非常非常抱歉,新年上班第一天, 在今天阿里云上气候突变情况下,由于我们开船技术差,在今天 10:15~12:00 左右的访问高峰,我们竟然把船给开翻了,造成近2个小时整个博客站点无法访问,由此给您带来很大很大的麻烦,恳请您的谅解. 翻船经过如下. 翻墙前的船只情况 博客站点正在使用的 k8s 集群一共用了 9 台 worker 节点服务器,在访问低峰时用 5 台,另外 4 台处于关机状态,在进入访问高峰前启动.所以我们用 cron 定时任务在工作日每天早上启动 4 台服务器,每天晚上关闭 4 台…
(图片来自网络) 非常抱歉,这次开船触礁故障给您带来麻烦了,请您谅解. 在我们昨天发布 k8s 开船记首航博文后,有园友在评论中发来贺词——“泰坦尼克号出发了[狗头]”,借此吉言,今天船就触礁了,还好不是冰山.在触礁后,我们收到了唯一一封贺电,贺电署名——“隔壁正在打酱油的 docker swarm 集群”. 触礁时间发生在今天上午 10:18~10:30 左右,当时航行用的是四涡轮发动机(4个nodes). 10:18 左右开始,3与4号发动机(k8s-n3与k8s-n4节点)被撞坏熄火,重新…
之前我们搭建的 k8s 集群只用了1台 master ,可用性不高,这两天开始搭建高可用集群,但由于之前用 kubeadm 命令创建集群时没有使用 --control-plane-endpoint 参数,无法直接升级现有集群,只能重新创建高可用(High-Availability)集群. 高可用集群的原理很简单,多台 master ,每台都保存集群数据(etcd),所有 nodes 通过专门搭建的负载均衡访问 api server ,这样当部分 master 宕机时,对集群正常运行无影响. 我们…
昨天晚上,我们将博客站点的生产环境从 docker swarm 集群切换到了 k8s 集群,开船到目前,航行非常平稳,可以说首航成功! k8s 集群是我们用10台阿里云服务器自己搭建的,1台 master 配置是2核4G,9台 nodes 配置都是4核8G,kubernetes 版本是 1.16.3 . 博客站点请求入口没有走 ingress ,直接通过 service 监听 30080 端口,阿里云负载均衡转发请求到该端口. apiVersion: v1 kind: Service metad…
自从2020年2月23日 园子全站登船 之后,我们一边感叹"不上船不知道,一上船吓一跳" -- kubernetes 比 docker swarm 强大太多,一边有一个杞人忧天的担忧 -- 假如整个 kubernetes 集群宕机怎么办? 随着在船上的日子越来越长,随着对 kubernetes 越来越依赖,我们的杞人忧天也越来越难以挥去....终于有一天,一个贬义的俗语让我们豁然开朗 -- "脚踏两只船",如果只有1个集群,kubernetes 再怎么工业级标准,也…
春节期间我们更换了 kubernetes 生产集群,旧集群的 kubernetes 版本是 1.17.0,新集群版本是 1.23.3,新集群上部署了 dapr,最近准备将更多独立部署的服务器部署到 k8s 集群上,比如 redis, memcached, mongodb. 新集群和旧集群一样都是高可用集群,但新集群开始只用了 1 个 control-plane 节点,今天本来的任务是给新集群再增加 2 个 control-plane 节点,实现高可用. 如何加入 control-plane 节点…
(图片来自网络) 改 readinessProbe 对于昨天 k8s 尼克号发生的触礁事故,我们分析下来主要是2个原因,一是当时4个节点不够用造成部分容器负载过高而宕机,二是 readinessProbe 健康检查配置不合理,造成重启后的容器无法通过健康检查. skipping: failed to "StartContainer" for "blog-web" with CrashLoopBackOff. CrashLoopBackOff 是指容器“启动 ->…
今天 18:30 左右,我们迈出了 kubernetes 航行的关键一步——全站登船,完成了全站应用从 docker swarm 集群向 k8s 集群的切换,以前所未有的决心与信心重新开起这艘巨轮,而这次航行能否成功就看明天访问高峰时狂风巨浪下的表现. 部署在 k8s 上的应用会在页脚显示下面的信息,如果航行失败,"Kubernetes" 会变成 "Linux" . Powered by .NET Core on Kubernetes Kubernetes 集群部署…
1.kubelet参数解析:https://blog.csdn.net/qq_34857250/article/details/84995381 2.如何在github中查找k8s代码关键字? 现在我想查找k8s源码中,关于kubelet参数pod-eviction-timeout的默认值是多少 https://github.com/kubernetes/kubernetes 先进入github对应的repository中,再Search关键字 3.计算节点频繁发生OOM,linux中发生oom…
Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cutler  Linux读写内存数据的三种方式 台湾作家林清玄在接受记者采访的时候,如此评价自己30多年写作生涯:“第一个十年我才华横溢,‘贼光闪现’,令周边黯然失色:第二个十年,我终于‘宝光现形’,不再去抢风头,反而与身边的美丽相得益彰:进入第三个十年,繁华落尽见真醇,我进入了‘醇光初现’的阶段,真正…
一生伏首拜阳明. 王守仁,字伯安,别号阳明. 成化八年(1472),王守仁出生在浙江余姚,大凡成大事者往往出身贫寒,小小年纪就要上山砍柴,下海捞鱼,家里还有几个生病的亲属,每日以泪洗面.这差不多也是惯例了.可惜王守仁先生的情况恰好完全相反. 王守仁家是远近闻名的大地主,十分有钱,而且他还有一位非常有名的祖先——王羲之.是否属实不知道,但以他家的条件,就算是也不奇怪. 王家的先辈们大都曾经做过官,据说先祖王纲曾经给刘伯温当过跟班的,最高混到了四品官,后世子孙虽然差点,但也还凑合.而到了王守仁父亲王…
Schema Design Considerations indexed fields indexed fields 的数量将会影响以下的一些性能: 索引时的时候的内存使用量 索引段的合并时间 优化时间 索引的大小 我们可以通过 将 omitNorms=“true” 来减少indexed fields数量增加所带来的影响. stored fields Retrieving the stored fields  确实是一种开销.这个开销,受每个文档所存储的字节影响很大.每个文档的所占用的空间越大,…
非本人总结,转自:http://news.91.com/apple/1506/21837672.html 说好的改善和优化,iOS 9真的带来了.且不说那些经过改善的功能,iOS 9 推出的低功耗模式就是一个重大的优化.在每一年的 iPhone 更新换代中,苹果通过改善硬件来达到提升电池续航的目的,乐的是购买最新硬件的用户,而坚持使用旧设备的用户只能看着续航一年不如一年. 电池续航是硬伤 在iPhone 用户的圈子里,“如何让 iPhone 续航更长”是永久的讨论话题.而目前资深用户给新用户支的…
2010-10 目 录 1 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5 1.5.1 1.5.2 1.6 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 3 3.1 3.1.1 3.1.2 3.2 3.2.1 3.2.2 3.2.3 3.3 3.3.1 3.3.2…
写在前面 上篇文章我带着大家通过分析了一遍ASP.NET Core的源码了解了它的启动过程,然后又带着大家熟悉了一遍配置文件的加载方式,最后引出了依赖注入以及控制反转的概念!如果大家把前面几张都理解了,那么你也就入了ASP.NET Core的大门了.但是我们还需要一个版本控制工具来提高我们的编码效率.因此这篇文章我将带着大家了解下Git这个版本控制工具以及为什么选择它. 下面我们将通过故事的形式从Git的历史谈起,并讲述Git的强大之处.然后通过实战演练教你如何在Github以及码云上托管我们的…
背景 互联网产品有一个特点,就是不停的升级,升级,再升级.一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退. 目前产品有新版本,release测试通过以后,直接放到更新服务器上,做全量用户推送.当发现新版本存在测试未覆盖到的问题时,造成的影响面较大…
写给IT技术爱好者的一封信>当前运维素质的分析<... ---------------------- 虽相貌平平,但勤学苦练,亦收获颇丰!如果你决定要成为一名IT从业者,你需要承受以下的东西.什么东西都是有得必有失,你得到什么的同时你必定会失去一些什么. 有些人认为互联网是很吃香的一个行业,如果一个聪明的人在互联网确实是很吃香,但是有一些东西需要根据你自身的本质,比如耐心,比如敏捷能力,可以很敏锐的感觉到商机的到来.有一些行业你看似很有前景,但是不是每一个人都能做到的,选择自己感兴趣的行业才是…
引语:相信大家都会偶尔遇到要排查问题发生的原因的情况,那这种时候,我们最有力后盾就是日志文件了,所以谨记日志记录真的很重要.但是日志文件往往是很大的文件,而且里面有太多的东西可能不是我们需要的,如无数重复行.如果能够有效筛选出对我们有意义的记录,那就太方便了!下面,就记录一些我筛选日志的一些技巧,供自己和部分需要的新手朋友参考!(高能勿喷,欢迎留下你的高见) 主要使用awk命令进行筛选! 原始日志php_error.log如下: [-Nov- :: UTC] PHP Warning: PHP S…
类似的话题,我大约在几个月前跟大家聊过. 这一次,我要依据这段时间的体会,再给大家整理一下.     今天,非常轻松地拿到了神州数码的offer. 尽管工资不是特别高,尽管非常多人一毕业就能进入这种公司.可是对我这个半路出家的大专生来说,能进去纯属意外.     今天的面试.谈到了曾经我接过一些私单,项目经理问我,那你如今还有没有做私活的想法? 我说.彻底没有.他问我,为什么?我说,这几年,尽管做私活挣了一些钱,但我损失的远远不止那点钱. 那些反复.繁琐,非常难有技术水平提升的工作,占用了我大部…
http://rdc.taobao.com/team/jm/archives/1753#nav 共整理三部分,第一部分Solr常规处理,第二部分针对性性处理,前者比较通用,后者有局限性.务必根据具体应用特性,具体调节参数,对比性能.第三部分solr查询相关的 具体应用需要全面去把控,各个因素一起起作用. 第一部分<Solr常规的调优> E文连接 http://wiki.apache.org/solr/SolrPerformanceFactors Schema Design Considerat…
<[MySQL技术内幕:SQL编程>读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, 早年在学mysql时就听过姜老师的开源mysql网络视频教程, 记得在视频时总是姜老师姜老师的自称, 感到十分的亲切. 这本书主要是讲mysql在应用编程时如何正确并且更高效的根据业务场景编写相应的sql语句. 从一开始对mysql的历史, 数据库类型, 分支版本, 咋一看, 还挺熟悉的, 这个逻辑顺序不就是…
对于测试的基本知识,可以查看软件测试相关书籍 对于在公司成为一位优秀的测试开发工程师,我觉得下面这篇文章涉及到的是我们需要的,稍微进行改动https://blog.csdn.net/sinat_21026543/article/details/79909062 测试流程方面:从最开始的分析需求开始,逐步地跟着项目走完整个测试流程,包括纯手工测试,包含了自动化的测试流程,包含了性能测试的测试流程,直至每一个测试报告的最终形成,理解一个科学,正确,严谨,正规化的测试流程. 测试方法方面:注重理论知识…
目  录 1. Linux入门篇.............................................................................................................. 3 1. 1 Linux操作系统简介......................................................................................... 3 1. 2 Linux发展趋…
Python应该怎样学习呢? 阶段一:适合自己的学习方式 对于零基础的初学者来说,最迷茫的是不知道怎样开始学习?那这里小编建议可以采用视频+书籍的方式进行学习.看视频学习可以让你迅速掌握编程的基础语法,边看视频边敲代码,可以快速入门,熟练语法.看书学习并不是要整本书都看,可以把书放到手边,当遇到不懂的地方可以当作工具书来用. 在学习的过程中,一定要学会做笔记,保存好写过的代码,方便日后复习,每天给自己定个小任务,比如说,今天必须完成哪一些章节,保证一定的代码量.坚持和实践才是硬道理. ps:学习…
今天Hotessay小编给同学们介绍下附加文书的创作思路.因为附加文书基本上都是短essay,所以简洁才是硬道理! 通常,我们可以把美国大学的附加文书分为以下几类: 1.Tell us about yourself; 2.Why US; 3.Tell us more about an extracurricular; 4.Design a class/a major; 5.Tell us about your major; 6.Diversity-in-community essay; 7.Qu…
要想人前显贵,必须背后受罪.关注公众号[BAT的乌托邦]开启专栏式学习,拒绝浅尝辄止.本文 https://www.yourbatman.cn 已收录,里面一并有Spring技术栈.MyBatis.中间件等小而美的专栏供以学习哦. --> 返回专栏总目录 <-- 代码下载地址:https://github.com/yourbatman/jackson-learning 目录 前言 一个工程仅需一个JSON库 Jackson是世界最好的JSON库 正文 官网介绍 分支:1.x和2.x 模块介绍…
面试官:要不你来讲讲你们对MySQL是怎么调优的? 候选者:哇,这命题很大阿...我认为,对于开发者而言,对MySQL的调优重点一般是在「开发规范」.「数据库索引」又或者说解决线上慢查询上. 候选者:而对于MySQL内部的参数调优,由专业的DBA来搞. 面试官:扯了这么多,你就是想表达你不会MySQL参数调优,对吧 候选者:草,被发现了. 面试官:那你来聊聊你们平时开发的规范和索引这块,平时是怎么样的吧. 候选者:嗯,首先,我们在生产环境下,创建数据库表,都是在工单系统下完成的(那就自然需要DB…
本文作者:源三.临石.张磊.莫源 业界要闻 1. K8s 1.16 将废弃一系列旧的 API 版本 影响面涉及 NetworkPolicy.PodSecurityPolicy.DaemonSet, Deployment, StatefulSet, ReplicaSet 和 Ingress.请各位 K8s 用户和开发者关注,相关 API 都是进行了如下迁移: NetworkPolicy: 在 v1.16 中不再使用 extensions/v1beta1: 迁移到 networking.k8s.io…
好久没写代码了,终于好不容易接到了开发任务,一看时间还挺充足的,我就慢慢整吧,若是遇上赶进度,基本上直接是功能优先,完全不考虑设计.你可以认为我完全没有追求,当身后有鞭子使劲赶的时候,神马设计都是浮云,按时上线才是王道,毕竟领导是不会关注过程和代码质量的,领导只看结果,这也许就是我等天朝码农的悲哀. 需求:是这样的,要开发一个短信发送的模板,不同客户可能会使用不同的模板,而不同的客户使用的变量参数也是不同的.之前为了应急,线上已经完成了一个短信模板发送短信的功能,短信模板表也创建了,而且在表中已…