阳明的博客

大家好,我叫阳明,前小米高级开发工程师,现在回到家乡成都,独立开发者一枚,一个有着产品思维的工程师,现在也在努力将自己的产品思维体系化,全栈工程师,现阶段专注 Kubernetes 和 AIGC,创建了「k8s技术圈」社区、「优点知识」知识付费网站以及「快课星球」AI全栈开发学习网站。我可以提供企业容器化方面的知识培训和咨询工作,感兴趣的可以通过微信 gitops 和我联系。

联系我:

阳明和他朋友们的一些项目

在 Kubernetes 中配置 Container Capabilities

我们在使用 Kubernetes 过程中,偶尔会遇到如下所示的一段配置:

securityContext:
  capabilities:
    drop:
      - ALL
    add:
      - NET_BIND_SERVICE

实际上这是配置对应的容器的 Capabilities,在我们使用 docker run 的时候可以通过 --cap-add--cap-drop 命令来给容器添加 Linux Capabilities。对于大部分同学可能又要疑问 Linux Capabilities 是什么呢?

Gloo 1.0 正式版发布

Gloo 是一个基于 Envovy 代理构建的下一代 API 网关和 Kubernetes Ingress 控制器,具有 Kubernetes 原生架构,也可以支持非 Kubernetes 环境。Gloo 是一个控制平面,可以轻松管理 Envovy 的配置,保护传入的流量并将其路由到应用程序。

使用 Rook 快速搭建 Ceph 集群

Rook 是一个开源的云原生存储编排工具,提供平台、框架和对各种存储解决方案的支持,以和云原生环境进行本地集成。

Rook 将存储软件转变成自我管理、自我扩展和自我修复的存储服务,通过自动化部署、启动、配置、供应、扩展、升级、迁移、灾难恢复、监控和资源管理来实现。Rook 底层使用云原生容器管理、调度和编排平台提供的能力来提供这些功能。

Rook 利用扩展功能将其深度集成到云原生环境中,并为调度、生命周期管理、资源管理、安全性、监控等提供了无缝的体验。有关 Rook 当前支持的存储解决方案的状态的更多详细信息,可以参考 Rook 仓库 的项目介绍。不过目前 Rook 已经很好地提供了对 Ceph 的支持,本文简单为大家介绍如何使用 Rook 来快速搭建 Ceph 集群。

使用 Golang 自定义 Kubernetes Ingress Controller

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

Traefik 2.0 实现自动化 HTTPS

上一篇文章我们实现了 Traefik 2.0 暴露 Redis(TCP) 服务,我们了解到 Traefik 中使用 TCP 路由配置需要 SNI,而 SNI 又是依赖 TLS 的,所以需要配置证书才能正常访问 TCP 服务,其实 Traefik 除了支持我们手动配置 TLS 证书之外,还支持自动生成 TLS 证书,本文就来为大家介绍如何在 Traefik 2.0 中配置自动化 HTTPS 服务。

Traefik 2.0 暴露 Redis(TCP) 服务

前面我们已经提到了 Traefik2.0 已经正式发布了,Traefik2.0 已经支持了 TCP 服务的,但是 Traefik 的官方文档实在是有点混乱,特别是在 Kubernetes 下面的使用更不详细,我在业余时间已经在尝试对官方文档进行翻译,地址:https://www.qikqiak.com/traefik-book,去掉了一些多余的文档,增加一些在 Kubernetes 下面的使用案例。

免费获取 JetBrains 全系产品正版 License

要说现在最好用的 IDE 工具,可能除了微软系列的就得算 jetbrains 系列了,几乎支持所有主流的编程语言,可以说是目前最好用的 IDE 工具,比如 IntelliJ IDEA、PyCharm、GoLand、WebStorm,这些 IDE 工具其实平时我都有使用,但是我们也知道这些工具都属于商业产品,价格是非常昂贵的,虽然说这些工具给我们带来的便利远远不是金钱能来衡量的,但是毕竟对于我们大部分个人用户来说还是一笔不小的开支。

对 Kubernetes 应用进行自定义指标扩缩容

前面我们学习了很多关于 Prometheus 的内容,也学习了 HPA 对象的使用,但是一直没有对自定义指标来对应用进行扩缩容做过讲解,本篇文章我们就来了解下如何通过自定义指标来做应用的动态伸缩功能。当前前提是你需要熟悉 KubernetesPrometheus,如果不熟悉的话可以查看我们前面的一系列文章,或者直接查看我们的 Kubernetes 进阶视频课程

使用 inlets 和 kubernetes 访问本地服务

我们经常有在外网访问我们本地服务的需求,特别是在开发调试阶段,比如做微信登录或者微信支付的时候就需要使用外网正式的域名,然而我们很多时候都是在本地进行开发,我们不可能频繁的部署到外网环境去进行测试,因为这样效率太低了,这是我们开发会经常面临的一个问题。