简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
一直以来使用Ubuntu开发,前两天Ubuntu桌面环境崩了,一些工作软件在Ubuntu下很不好用,恰好WSL2(Windows Linux子系统)发布已经有一段日子,而且支持了Docker,上手看看可用性如何。配置WSL2必要条件Windows 10 Build 18917或更新版本启用虚拟化安装步骤启用“虚拟机平台”可选组件,以管理员身份打开 PowerShell 并运行:...
背景linux中为了防止进程恶意使用资源,系统使用ulimit来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等)。同样地在容器化场景中,需要限制其系统资源的使用量。限制方法ulimit: docker 默认支持ulimit设置,可以在dockerd中配置 default-ulimits 可为宿主机所有容器配置默认的ulimit,docker启动时可添加 --ulimit 为每个...
一直以来使用Ubuntu开发,前两天Ubuntu桌面环境崩了,一些工作软件在Ubuntu下很不好用,恰好WSL2(Windows Linux子系统)发布已经有一段日子,而且支持了Docker,上手看看可用性如何。配置WSL2必要条件Windows 10 Build 18917或更新版本启用虚拟化安装步骤启用“虚拟机平台”可选组件,以管理员身份打开 PowerShell 并运行:...
Go+Vue实现前后端管理平台,支持Gin、Postgres、Redis、ELement等
没有人不想优雅的活着,在这喧闹的生活中过得优雅从容并不容易。但在k8s的世界中,如何做个优雅的Pod还是有套路可循的。Pod的生命周期在优雅之前,我们先谈谈Pod的一生,大体分为以下几个阶段创建,通过kubectl或者api创建pod, apiserver收到请求后存储到etcd调度,scheduler检测到pod创建后,通过预选优选为pod选取合适的人家(node)启动,kubele...
简介kube-apiserver中与权限相关的主要有三种机制,即认证、鉴权和准入控制。本文主要分析apiserver的认证流程。认证流程分析权限相关代码从k8s.io/apiserver/pkg/server/config.go中DefaultBuildHandlerChain函数开始执行func DefaultBuildHandlerChain(apiHandler http.Handl...
随着Kubernetes成为容器编排领域的事实标准,Golang在云原生方面应用的也越来越多。今天我们跟随K8s的脚步,学习下在K8s中使用哪些经典的设计模式。创建型模式创建型模式顾名思义提供了对象的创建机制,封装了内部的复杂性,提高代码复用和灵活性。包括:单例模式工厂模式建造者模式原型模式单例模式单例模式用来保证一个类只有一个实例,并提供调用它的一个全局访问点。单例模式是设计模式中最简单,使用最
背景单个Prometheus Server可以轻松的处理数以百万的时间序列。但当机器规模过大时,需要对其进行分区,Prometheus也提供了集群联邦的功能,方便对其扩展。我们采用Prometheus来监控k8s集群,节点数400,采集的samples是280w,Prometheus官方的显示每秒可抓取10w samples。当集群规模扩大到上千节点时,单个Prometheus不足以处理大量数..
在k8s云环境中,我们需要在容器内抓包进行Debug, 但通常大多容器都没有安装tcpdump以及其他网络工具;在托管k8s中我们想登录node,不是没权限就是步骤太麻烦。本文的主角nsenter正是很擅长解决这些问题,nsenter可以进入指定namespace的工具,一般用来在容器环境中进行调试。调试容器网络通过nsenter可以轻松在宿主机进入容器的网络命令空间,命令如下:# 设置conta
背景在k8s或docker中,有时候我们需要通过shell来启动程序,但是默认shell不会传递信号(sigterm)给子进程,当在pod终止时应用无法优雅退出,直到最大时间时间后强制退出(kill -9)。分析普通情况下,大多业务的启动命令如下command: ["binary", "-flags", ...]主进程做为1号进程会收到sigterm信号,优雅退出(需要程序捕获信号); 而通过脚本