thumbnail
在 K8S 节点上使用非 Nodeport 默认端口范围暴漏服务
需求背景 服务 A 部署在 K8S 中,集群外的服务 B 需要调用服务 A,同时调用服务 A 的端口是指定了的,必须是 5000,无法修改。 K8S 集群是客户的,我们只能部署服务,不能修改集群。 服务 A 需要得到真实的客户端 IP。 解决方案一 通过 Nodeport 的方式暴漏服务 A。 5000 端口不在 Nodeport 默认端口范围内(…
thumbnail
在 K8S 中利用 sidecar 控制 Pod 重启
需求一 A 容器负责授权管理,当用户更改了授权时,需要重启 B 容器生效。 解决方案 通过 sidecar 启动一个 http server,并提供两个接口,接口一用于 K8S 的存活探针;接口二用于接收重启信号,供容器 A 调用。当收到重启信号时,修改接口一返回值,使其返回 500 http code,从而让 K8S 重启 Pod 内容器。 方案…
thumbnail
Pod里的容器如何设置IP?
背景 最近遇到一个docker compose部署的产品(旧版本)想部署到k8s中,而该产品应用的多个容器都在docker compose中设置了ip地址,镜像里的应用配置也是配置的这些预设ip,容器之间通过预设IP进行通信。 但是该产品的云化已经在最新版本中完成,并做了大量修改。现在希望对那个旧版本以最小成本部署到k8s中就行,也就是不想动产品应…
Github Copilot 是如何提升我的工作效率?
最近字节的朋友要在公司分享Copilot,但是他们公司当前是禁止使用Copilot的,所以找到了我。正好总结下半年来的使用感受。 减少重复的、逻辑少的工作。 例如经常写依赖注入wire的New方法,没有包含太多逻辑,仅仅是依赖注入,初始化对象。针对这类代码,Copilot一般都能正确生成。 参照本地项目里已有逻辑(不限于当前项目,不限IDE),生成…
博客迁移,开始省钱之路
搭建博客的服务器还有半年就要过期了。以前都是到期了再去买一个,后来发现,即使是用新用户,优惠也比不上双十一。想起有年双十一,同事买了个腾讯云的1h2g三年才200多,简直比杀了我还难受! 这次学聪明了,服务器到期前的双十一就开始做打算。是续费,还是重新买一个,要不要选择其他云厂商,或者想想有没有其他选择。 当前拥有的服务器资源 一台国内阿里云服务器…
thumbnail
邮件系统原理
前言 邮件已成为日常工作中必备的工具,常常作为正式交流的一种方式,那发送一封邮件是如何到达目标邮箱的呢? 相关协议 邮件系统中各组件之间交互使用的协议。 SMTP Simple Mail Transfer Protocol,即简单邮件传输协议,用来发送邮件。 POP3 Post Office Protocol,邮局协议第3版,用于支持使用客户端远程…
利用 Apisix 网关解决跨域问题
背景 运营同学经常需要将运营系统上的url拷贝到virustotal去查询安全性,这个重复操作想优化下,提高效率。通过调研,发现virustotal是支持api查询的,就想在运营系统的前端集成这个查询功能,因此产生了跨域问题。 解决方案 Apisix的cros插件 这个插件是通过给后端接口响应头里增加支持跨域的响应头以支持跨域请求,不符合我们的场景…
Docker 容器应用构建 deb 包
背景 我们的应用发布都是以镜像为基础,git打tag触发cicd,发布对应version的镜像。现在有个应用需要部署到客户内网中,如果以导出镜像的形式,再给客户部署,是比较繁琐的。并且无法做一些额外的工作,例如安装前的环境检测,卸载时删除镜像,以及更新等。当然这些都可以通过脚本实现,但不够优雅。而同事之前做过以linux安装包的形式发布容器应用,这…
thumbnail
使用Kubebuilder实现自定义Controller
背景 还是之前的需求,上一篇文章:Operator示例:通过Operator+CRD实现部署自动化是基于官方的sample-controller来修改,实现我们的逻辑。这次使用kubebuilder来生成代码。 主要步骤 使用kubebuilder生成项目代码 定义 CRD 的 struct 重新生成CRD资源 实现Reconcile逻辑 部署CR…
thumbnail
Operator示例:通过Operator+CRD实现部署自动化
前言 在上一篇通过Operator自动暴露集群内部服务中,遗留了一个问题:开发人员or业务上游是需要关注k8s内建资源,例如deployment如何定义,这和K8S自动化的目标背道而驰。 本篇文章将采用CRD(CustomResourceDefinition)来屏蔽底层K8S资源,让开发人员只需要按照我们制定的规则来定义CR即可。至于创建deplo…