阳明的博客


关注容器、kubernetes、istio、devops、python、golang等~~~

阳明的博客


关注容器、kubernetes、istio、devops、python、golang等~~~

Kubernetes 线下3天闭门集训

Kubernetes 快速学习进阶之路

k8s training

Kubernetes 是谷歌开源的容器集群编排平台,是一个完备的分布式系统支撑平台,为容器化应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,具有强大的故障发现和自我修复机制、服务滚动升级和在线扩容能力,可扩展资源自动调度机制以及多粒度的资源配额管理能力。

[Read More]

在 Kubernetes 上安装 Gitlab

gitlab on k8s

Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装,但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置,所以我们这里使用自定义的方式来安装,也就是自己来定义一些资源清单文件。

Gitlab主要涉及到3个应用:Redis、Postgresql、Gitlab 核心程序,实际上我们只要将这3个应用分别启动起来,然后加上对应的配置就可以很方便的安装 Gitlab 了,我们这里选择使用的镜像不是官方的,而是 Gitlab 容器化中使用非常多的一个第三方镜像:sameersbn/gitlab,基本上和官方保持同步更新,地址:http://www.damagehead.com/docker-gitlab/

[Read More]

Harbor 源码浅析

harbor

Harbor 是一个CNCF基金会托管的开源的可信的云原生docker registry项目,可以用于存储、签名、扫描镜像内容,Harbor 通过添加一些常用的功能如安全性、身份权限管理等来扩展 docker registry 项目,此外还支持在 registry 之间复制镜像,还提供更加高级的安全功能,如用户管理、访问控制和活动审计等,在新版本中还添加了Helm仓库托管的支持。

[Read More]

深入理解 Python 元类

这是一篇在Stack overflow上很热的帖子。提问者自称已经掌握了有关 Python OOP 编程中的各种概念,但始终觉得元类(metaclass)难以理解。他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程。于是 e-satis 同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到 Python 的官方文档中去。

[Read More]

21天入门机器学习

小白入行 AI 的必修课

21天入门机器学习

AI 时代,大家都对各种人工智能岗位充满好奇和憧憬,但普遍都不了解,各个岗位具体是做什么工作的。在这里给大家打个比喻,虽然不太恰当,但非常形象!

  • 做算法是屠龙,仗剑江湖,天外飞仙;
  • 做工程是狩猎,跃马奔腾,纵酒狂歌;
  • 做数据是养猪,每天拌猪食清猪粪,一脸土一身泥。

AI 原本是一个专业领域,没什么特别的。作为码农一枚,笔者的工作内容正好在这个领域。

[Read More]

Kubernetes 部署策略详解

Kubernetes中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了。

选择正确的部署策略是要依赖于我们的业务需求的,下面我们列出了一些可能会使用到的策略:

  • 重建(recreate):停止旧版本部署新版本

  • 滚动更新(rolling-update):一个接一个地以滚动更新方式发布新版本

  • 蓝绿(blue/green):新版本与旧版本一起存在,然后切换流量

  • 金丝雀(canary):将新版本面向一部分用户发布,然后继续全量发布

  • A/B测(a/b testing):以精确的方式(HTTP 头、cookie、权重等)向部分用户发布新版本。A/B测实际上是一种基于数据统计做出业务决策的技术。在 Kubernetes 中并不原生支持,需要额外的一些高级组件来完成改设置(比如Istio、Linkerd、Traefik、或者自定义 Nginx/Haproxy 等)。

[Read More]