一次pod无法ready的问题定位
原先可以正常部署的项目,在新的部署中突然提示pod无法ready,本文记录定位思路及解决方式。
原先可以正常部署的项目,在新的部署中突然提示pod无法ready,本文记录定位思路及解决方式。
工作调整后重新配置了电脑,原有的github token没有保存,重新生成了access token。本文介绍如何使用token去cloen和push仓库,及如何对global和local进行不同配置。
项目中使用proto定义接口时,使用到了FieldMask类型。本文将对FieldMask类型的适用场景及方法做一些整理。
在grpc server中进行超时控制,需要感知客户端的超时时间。本文将对grpc client
,http
两种访问方式下如何给grpc server
传递超时时间进行总结。
使用go编写server时,有时需要获取当前连接对应的connection属性。而Linux系统中,Connection本质为socket类型的file descriptor。go源码中多种网络类型(比如tcp/udp/unix)的conn均提供了File方法,用于获取连接对应的socket file descriptor。但使用该方法后,会导致close连接时阻塞,进而造成线程增加,引发系统panic。
虚拟机中流量有时需要访问元数据服务,为了避免此控制面流量与VPC业务流量互相干扰,需要使用用户态协议栈承接此部分流量,与VPC流量使用的内核态协议栈隔离。Go语言主流的用户态协议栈为Netstack,后续作为gVisor的网络模块进行维护。本文将对gVisor中该模块的实现及使用进行介绍。
优雅退出(或者无损发布)是保证服务能力的重要手段。对于集群模式的服务,通常在服务进程前会前置一层代理(例如 nginx)来保证优雅退出过程中服务服务流量的切换。但对于单体服务,在不引入前置流量代理的前提下,实现优雅退出就会比较复杂,需要额外的技术手段进行辅助。本文将对单体服务的优雅退出方式进行讨论。