自定义 Kubernetes 调度器

kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。

[阅读全文]

使用 Golang 自定义 Kubernetes Ingress Controller

在 Kubernetes 中通过 Ingress 来暴露服务到集群外部,这个已经是一个很普遍的方式了,而真正扮演请求转发的角色是背后的 Ingress Controller,比如我们经常使用的 traefik、ingress-nginx 等就是一个 Ingress Controller。本文我们将通过 golang 来实现一个简单的自定义的 Ingress Controller,可以加深我们对 Ingress 的理解。

[阅读全文]

使用 GitHub Actions 自动化构建 Golang 应用

GitHub 前一段时间推出了自家的自动化构建工具:GitHub Actions,不过目前还没有开放注册,只能通过申请等待官方审核。我第一时间就提交了申请,现在已经审核通过了,所以第一时间体验了GitHub Actions的功能,总体感受是 Travis CI 之类的工具应该现在在墙角瑟瑟发抖吧😄?

GitHub Actions允许构建一个完整的 CI/CD Pipeline,与 GitHub 生态系统深度集成,而无需使用 Travis CI 或者 Circle CI 等第三方服务,对于开源项目都是可以免费使用的。如果你也想尽快使用的话,可以通过链接 https://github.com/features/actions/signup 去申请权限。

github actions

[阅读全文]

Go Modules 基本使用(视频)

Go 语言全新依赖管理系统 Go Modules

Go 语言中一直被人诟病的一个问题就是没有一个比较好用的依赖管理系统,GOPATH 的设计让开发者一直有很多怨言,在 Go 语言快速发展的过程中也出现了一些比较优秀的依赖管理工具,比如 govendor、dep、glide 等,有一些差不多成了半官方的工具了,但是这些工具都还是需要依赖于 GOPATH,为了彻底解决这个“祸水”,随着 Go1.11 的发布,Golang 官方给我们带来了依赖管理的全新特性Go Modules,这是 Golang 全新的一套依赖管理系统。下面我们就来看下 Go Modules 是如何使用的。

[阅读全文]

Helm Chart 模板开发技巧

Helm Chart 在我们使用的时候非常方便的,但是对于开发人员来说 Helm Chart 模板就并不一定显得那么友好了,本文主要介绍了 Helm Chart 模板开发人员在构建生产级的 Chart 包时的一些技巧和窍门。

[阅读全文]

并发模型

Golang的特色之一就是goroutine,使得程序员进行并发编程更加方便,适合用来进行服务器编程。作为后端开发工程师,有必要了解并发编程面临的场景和常见的解决方案。一般情况下,是怎样做高并发的编程呢?有那些经典的模型呢?

[阅读全文]