Web Analytics

Kubernetes集群中Service的滚动更新

在移动互联网时代,消费者的消费行为已经“全天候化”,为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求。很难想像如今还会有以“中断业务”为前提的服务系统更新升级。如果微信官方发布公告说:每周六晚23:00~次日凌晨2:00进行例行系统升级,不能提供服务,作为用户的你会怎么想、怎么做呢?因此,各个平台在最初设计时就要考虑到服务的更新升级问题,部署在Kubernetes集群中的Service也不例外。 ...

February 9, 2017 · 15 min · Tony Bai

TensorFlow入门:零基础建立第一个神经网络

首先,我不得不承认这篇文章有些标题党的味道^0^,但文章还是要继续写下去,备忘也好,能帮助到一些人也好。 在2016小结的时候,我说过:2017年要了解一些有关机器学习和人工智能(以下简称AI)方面的技术。如果有童鞋问:Why?我会告诉你:跟风。作为技术人,关注和紧跟业界最前沿的技术总是没错的。 2016年被业界普遍认为是AI这一波高速发展的元年,当然DeepMind的AlphaGo在这方面所起到的作用是功不可没的。不过人工智能并未仅仅停留在实验室,目前可以说人工智能已经深入到我们生活中的方方面面,比如:电商的精准个性化商品推荐、手机上安装的科大讯飞的中文语音识别引擎以及大名鼎鼎的Apple的siri等。只是普通老百姓并没有意识到这一点,或者说当前AI的存在和运行形式与大家传统思想中的“AI”还未到形似的地步,再或者当前AI的智能程度还未让人们感觉到AI时代的到来。 ...

February 6, 2017 · 5 min · Tony Bai

Go 1.8中值得关注的几个变化

在已经过去的2016年,Go语言继在2009年之后再次成为编程语言界的明星- 问鼎TIOBE 2016年度语言。这与Go team、Go community和全世界的Gophers的努力是分不开的。按计划在这个2月份,Go team将正式发布Go 1.8版本(截至目前,Go的最新版本是Go 1.8rc3)。在这里我们一起来看一下在Go 1.8版本中都有哪些值得Gopher们关注的变化。 ...

February 3, 2017 · 19 min · Tony Bai

以Kubeadm方式安装的Kubernetes集群的探索

当前手上有两个Kubernetes cluster,一个是采用kube-up.sh安装的k8s 1.3.7版本,另外一个则是采用kubeadm安装的k8s 1.5.1版本。由于1.3.7版本安装在前,并且目前它也是承载了我们PaaS平台的环境,因此对于这个版本的Kubernetes安装环境、配置操作、日志查看、集群操作等相对较为熟悉。而Kubeadm安装的1.5.1版本K8s集群在组件部署、配置、日志等诸多方面与1.3.7版本有了较大差异。刚上手的时候,你会发现你原来所熟知的1.3.7的东西都不在原先的位置上了。估计很多和我一样,采用kubeadm将集群升级到1.5.1版本的朋友们都会遇到这类问题,于是这里打算对Kubeadm方式安装的Kubernetes集群进行一些小小的探索,把一些变动较大的点列出来,供大家参考。 一、环境 这里使用的依然是文章《使用Kubeadm安装Kubernetes》中安装完毕的Kubernetes 1.5.1集群环境,底层是阿里云ECS,操作系统是Ubuntu 16.04.1。网络用的是weave network。 ...

January 24, 2017 · 8 min · Tony Bai

Kubernetes Dashboard集成Heapster

默认安装后的Kubernetes dashboard如下图所示,是无法图形化展现集群度量指标信息的: 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件:Heapster。 Heapster原生支持K8s(v1.0.6及以后版本)和CoreOS,并且支持多种存储后端,比如:InfluxDB、ElasticSearch、Kafka等,这个风格和k8s的确很像:功能先不管完善与否,先让自己在各个平台能用起来再说^0^。这里我们使用的数据存储后端是InfluxDB。 ...

January 20, 2017 · 7 min · Tony Bai

Kubernetes集群Dashboard插件安装

第一次利用kube-up.sh脚本方式安装Kubernetes 1.3.7集群时,我就已经顺利地将kubernetes dashboard addon安装ok了。至今在这个环境下运行十分稳定。但是毕竟是一个试验环境,有些配置是无法满足生产环境要求的,比如:安全问题。今天有时间对Dashboard的配置进行一些调整,顺带将之前Dashboard插件的安装和配置过程也记录下来,供大家参考。 ...

January 19, 2017 · 10 min · Tony Bai

理解Kubernetes网络之Flannel网络

第一次采用kube-up.sh脚本方式安装的Kubernetes cluster目前运行良好,master node上的组件状态也始终是“没毛病”: # kubectl get cs NAME STATUS MESSAGE ERROR controller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {"health": "true"} 不过在第二次尝试用kubeadm安装和初始化Kubernetes cluster时遇到的各种网络问题还是让我“心有余悸”。于是趁上个周末,对Kubernetes的网络原理进行了一些针对性的学习。这里把对Kubernetes网络的理解记录一下和大家一起分享。 ...

January 17, 2017 · 15 min · Tony Bai

理解Docker容器网络之Linux Network Namespace

由于2016年年中调换工作的原因,对容器网络的研究中断过一段时间。随着当前项目对Kubernetes应用的深入,我感觉之前对于容器网络的粗浅理解已经不够了,容器网络成了摆在前面的“一道坎”。继续深入理解K8s网络、容器网络已经势在必行。而这篇文章就算是一个重新开始,也是对之前浅表理解的一个补充。 我还是先从Docker容器网络入手,虽然Docker与Kubernetes采用了不同的网络模型:K8s是Container Network Interface, CNI模型,而Docker则采用的是Container Network Model, CNM模型。而要了解Docker容器网络,理解Linux Network Namespace是不可或缺的。在本文中我们将尝试理解Linux Network Namespace及相关Linux内核网络设备的概念,并手工模拟Docker容器网络模型的部分实现,包括单机容器网络中的容器与主机连通、容器间连通以及端口映射等。 ...

January 11, 2017 · 13 min · Tony Bai

把学校留的手工作业还给孩子们

果果昨天进行了一年级上学期的期末考试,今天基本已经开始了放假,就差月中旬去学校取成绩和开家长会了。不知不觉间一年级的半个学期就这样过去了。作为家长,亲历了一次对小学一年级小豆包的教育过程,同时也亲自见证了一次当前中国一个省会城市重点小学教育状况。在这个时间节点上,感觉自己应该对这个过程做一些回顾和总结,也不枉我个人对孩子教育这个课题的持续关注。这是第一篇。注:下面的内容并不是现在写的,大致写于2016年11月末。 第一篇谈谈学校留的手工作业该由谁来做的问题。 从孩子上幼儿园开始,孩子就时常收到学校留的“手工作业”,比如做一张爱心卡、一个小盒子或一个小时钟等。最初,孩子还很小,作为家长的,总是担心孩子无法及时上交作业,或是出于某种“虚荣心”,基本上都是越俎代庖,“主动”替孩子“完美”地完成了作业。但这些家长们你想没想到,你这是在剥夺一个孩子充分发挥想象力的机会和一次提高动手能力的机会。 ...

January 5, 2017 · 3 min · Tony Bai

2016小结

每到年终岁尾,历史上受到过中国文化影响的国家和地区都有评选当年年度汉字的传统,比如:2016年马来西亚年度汉字为“贪”,鬼子国日本年度汉字为“金”,中国台湾地区年度汉字为“苦”,而大陆地区的年度汉字据说是“规”。其实每个人心中都有一个自己的年度汉字,2016年,我个人的年度汉字为“变”。 ...

January 3, 2017 · 5 min · Tony Bai