Docker    2018-08-08 12:45:56    1254    0    0
Docker目前在容器市场可以说是占领了大部分市场,Docker掀起了容器革命,同时也改变了现代化云平台的构建方式。尽管Docker很强大,但使用过程当中也遇到了一些问题。比如说我想要构建一个编译型语言镜像,需要先在一个Dockerfile中编译,然后再使用另外一个Dockerfile把编译好的文件放到镜像中。这样无形当中就增大了CI/CD的复杂度。 ## 多阶段构建 Docker 多阶段构建
2018-08-07 06:48:51    2925    0    0
> 编者注:今天是来自Google Developer Advocate [Sandeep Dinesh](https://twitter.com/sandeepdinesh?lang=en)的七部分[视频](https://www.youtube.com/playlist?list=PLIivdWyY5sqL3xfXz5xJvwzFW_tlQB_GB)和[博客](https://www.goo
2018-07-25 06:53:27    1620    0    0
在上一篇[Filebeat优化实践](https://wilhelmguo.tk/blog/post/william/Filebeat%E4%BC%98%E5%8C%96%E5%AE%9E%E8%B7%B5)中谈到了自己开发Processor来获取Pod Name以及Deployment Name等信息,但由于使用的是正则解析日志文件名称的方式,获取到信息有限且有如果升级Kubernetes导致
Kubernetes    2018-06-28 07:02:49    348    0    0


我们很高兴地宣布Kubernetes 1.11,我们2018年的第二次发布!


今天的发布不断推进Kubernetes的成熟性、可扩展性和灵活性,标志着团队在过去一年中努力工作的功能取得了重大进展。这个最新版本是网络关键特性的结晶,为SIG-API Machinery和SIG-Node提供了两个主要功能用于beta测试,并继续增强存储功能,这是过去两个版本的焦点。此版本中的功能使得可以将任何基础架构、云或内部部署插入到Kubernetes系统中。


这个版本中值得注意的是增加了两个备受期待的功能:基于IPVS的群集内负载平衡和CoreDNS作为群集DNS附加选项,这意味着增加了生产环境应用程序的可扩展性和灵活性。 官方博客:https://kubernetes.io/blog/2018/06/27/kubernetes-1.11-release-announcement/

 

 

转载自 https://mp.weixin.qq.com/s/lwxwlW0jaui5Njz4x27Tyg

Kubernetes    2018-06-20 06:35:33    415    0    0

今天给到大家介绍一下 Client-go 中的一个非常关键的工具包 Informer。 Informer 内部实现极其复杂,详细介绍的文章也很少,很多人反馈比较难用。但不得不承认它也是一个设计精良、安全可靠的组件,值得我们去一探究竟。

Informer 简介

Informer 基础功能

Informer 是 Client-go 中的一个核心工具包。在 Kubernetes 源码中,如果 Kubernetes 的某个组件,需要 List/Get Kubernetes 中的 Object,在绝大多 数情况下,会直接使用 Informer 实例中的 Lister()方法(该方法包含 了 Get 和 List 方法),而很少直接请求 Kubernetes API。Informer 最基本 的功能就是 List/Get Kubernetes 中的 Object。

如下图所示,仅需要十行左右的代码就能实现对 Pod 的 List 和 Get。

Informer 高级功能

Client-go 的首要目标是满足 Kubernetes 的自身需求。Informer 作为其中的核心工具包,面对 Kubernetes 极为复杂业务逻辑,如果仅实现 List/Get 功能,根本无法满足 Kubernetes 自身需求。因此,Informer 被设计为一个灵活而复杂的工具包,除 List/Get Object 外,Informer 还可以监听事件并触发回调函数等,以实现更加复杂的业务逻辑。

Informer 设计思路

Informer 设计中的关键点

为了让 Client-go 更快地返回 List/Get 请求的结果、减少对 Kubenetes API 的直接调用,Informer 被设计实现为一个依赖 Kubernetes List/Watch API 、可监听事件并触发回调函数的二级缓存工具包。

更快地返回 List/Get 请求,减少对 Kubenetes API 的直接调用

使用 Informer 实例的 Lister() 方法, List/Get Kubernetes 中的 Object 时,Informer 不会去请求 Kubernetes API,而是直接查找缓存在本地内存中的数据(这份数据由 Informer 自己维护)。通过这种方式,Informer 既可以更快地返回结果,又能减少对 Kube

Kubernetes    2018-06-16 07:37:48    1547    0    0
![](/api/file/getImage?fileId=5b24c7aeaddba4075b00000c) 随着微服务架构的火爆,Etcd作为服务发现或者分部署存储的基础平台也越来越频繁的出现在我们的视野里。因此对于快速部署一套稳定高可用的Etcd集群的需求也越来越强烈,本次就带领大家一起使用Kubernetes的Statefulset特性快速部署一套Etcd集群。 ## 什么是Etcd
Golang    2018-05-16 03:56:24    201    0    0
![](/api/file/getImage?fileId=5afbabdfaddba4049d000049) Go使得使用软件包变得非常简单,所有你需要做的就是...... ```bash $ go get github.com/org/magic ``` 但是当你发现一个bug或想要扩展包时,你会做什么?通常在Github上fork,做一些修改,向上游提交一个PR ,然后使用你的分支项
2018-05-08 10:54:21    422    0    0

概述


Intellij IDEA真是越用越觉得它强大,它总是在我们写代码的时候,不时给我们来个小惊喜。出于对Intellij IDEA的喜爱,我决定写一个与其相关的专栏或者系列,把一些好用的Intellij IDEA技巧分享给大家。本文是这个系列的第一篇,主要介绍一些你可能不知道的但是又实用的小技巧。


我最爱的【演出模式】


我们可以使用【Presentation Mode】,将IDEA弄到最大,可以让你只关注一个类里面的代码,进行毫无干扰的coding

可以使用Alt+V快捷键,谈出View视图,然后选择Enter Presentation Mode。效果如下: 
这里写图片描述

这个模式的好处就是,可以让你更加专注,因为你只能看到特定某个类的代码。可能读者会问,进入这个模式后,我想看其他类的代码怎么办?这个时候,就要考验你快捷键的熟练程度了。你可以使用CTRL+E弹出最近使用的文件。又或者使用CTRL+NCTRL+SHIFT+N定位文件。

如何退出这个模式呢?很简单,使用ALT+V弹出view视图,然后选择Exit Presentation Mode 即可。但是我强烈建议你不要这么做,因为你是可以在Enter Presentation Mode模式下在IDEA里面做任何事情的。当然前提是,你对IDEA足够熟练。


神奇的Inject language


如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。在IDEA可以使用Inject language帮我们自动转义双引号。 
这里写图片描述

先将焦点定位到双引号里面,使用alt+enter快捷键弹出inject language视图,并选中 
Inject language or reference。 
这里写图片描述

选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。 
这里写图片描述

选择完后。鼠标焦点自动会定位在双引号里面,这个时候你再次使用alt+enter就可以看到 
这里写图片描述

选中Edit JSON Fragment并回车,就可以看到编辑JSON文件的视图了。 
这里写图片描述

可以看到IDEA确实帮我们自动转义双引号了。如果要退出编辑JSON信息的视图,只需要使用ctrl+F4快捷键即可。

Inject language可以支持的语言和操作多到你难以想象,读者可以自行研究。


使用快捷键移动分割线

2018-03-12 10:22:44    846    0    0
Kubernetes调度详解 =============================== 【编者的话】优良的调度是分布式系统的核心。Scheduler调度器做为Kubernetes三大核心组件之一, 承载着整个集群资源的调度功能,其根据特定调度算法和策略,将Pod调度到最优工作节点上,从而更合理与充分的利用集群计算资源,使资源更好的服务于业务服务的需求。 随着业务服务不断D
微服务 授权 安全    2018-03-12 08:30:01    543    1    0
## 背景 微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。尽管微服务带来了很多好处,但同时也引入了一些新的问题。例如: - 单体应用拆分为分布式系统后,进程间的通讯机制和故障处理措施变的更加复杂。 - 系统微服务化后,一个看似简单的功能,内部可能
3/4