logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

k8s中文件描述符与线程限制

背景linux中为了防止进程恶意使用资源,系统使用ulimit来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等)。同样地在容器化场景中,需要限制其系统资源的使用量。限制方法ulimit: docker 默认支持ulimit设置,可以在dockerd中配置 default-ulimits 可为宿主机所有容器配置默认的ulimit,docker启动时可添加 --ulimit 为每个...

#kubernetes#docker
如何做一个优雅的Pod

没有人不想优雅的活着,在这喧闹的生活中过得优雅从容并不容易。但在k8s的世界中,如何做个优雅的Pod还是有套路可循的。Pod的生命周期在优雅之前,我们先谈谈Pod的一生,大体分为以下几个阶段创建,通过kubectl或者api创建pod, apiserver收到请求后存储到etcd调度,scheduler检测到pod创建后,通过预选优选为pod选取合适的人家(node)启动,kubele...

#kubernetes#docker
Kubernetes中的Golang设计模式

随着Kubernetes成为容器编排领域的事实标准,Golang在云原生方面应用的也越来越多。今天我们跟随K8s的脚步,学习下在K8s中使用哪些经典的设计模式。创建型模式创建型模式顾名思义提供了对象的创建机制,封装了内部的复杂性,提高代码复用和灵活性。包括:单例模式工厂模式建造者模式原型模式单例模式单例模式用来保证一个类只有一个实例,并提供调用它的一个全局访问点。单例模式是设计模式中最简单,使用最

#golang#kubernetes#设计模式
Kubernetes调试利器Nsenter

在k8s云环境中,我们需要在容器内抓包进行Debug, 但通常大多容器都没有安装tcpdump以及其他网络工具;在托管k8s中我们想登录node,不是没权限就是步骤太麻烦。本文的主角nsenter正是很擅长解决这些问题,nsenter可以进入指定namespace的工具,一般用来在容器环境中进行调试。调试容器网络通过nsenter可以轻松在宿主机进入容器的网络命令空间,命令如下:# 设置conta

#kubernetes#容器#云原生
开启shareProcessNamespace后容器异常

背景目前k8s不支持容器启动顺序,部分业务通过开启shareProcessNamespace监控某些进程状态。当开启共享pid后,有用户反馈某个容器主进程退出,但是容器并没有重启,执行exec会卡住,现象参考issue复现创建deploymentapiVersion: apps/v1kind: Deploymentmetadata:labels:app: nginxname: nginxspec:

#kubernetes#docker
K8S中为什么需要Unstructured对象

K8S中为什么需要Unstructured对象,通过源码分析原因

#kubernetes#容器#云原生
apline 容器中执行shell脚本报错 executable file not found

问题今天在创建java镜像时,使用了(openjdk:8-jdk-alpine)[https://hub.docker.com/_/openjdk],启动容器后需要运行一java脚本,直接执行./test.sh报错sh:.sh test.sh: not found网上有说由于权限文件不能执行,chmod +x test.sh,仍然报错在k8s pod中部署,describe报错Error...

#docker#bash
k8s中基于资源锁的选主分析

简介k8s中为了实现高可用,需要部署多个副本,例如多个apiserver、scheduler、controller-manager等,其中apiserver是无状态的每个组件都可以工作,而scheduler与controller-manager是有状态的,同一时刻只能存在一个活跃的,需要进行选主。k8s使用了资源锁(endpoints/configmap/lease)的方式来实现选主,多个副本..

#kubernetes#分布式#golang
nginx ingress controller 最后的倔强: admission webhook

背景k8s中大多使用nginx-ingress-controller来实现ingress, 但是脆弱的nginx-controller通过ingress解析出nginx配置, 对于某些annotation会reload nignx配置失败, 然后controller就卡死了, 不断重启, 除非删除对应的ingress.问题复现创建有问题的ingressapiVersion: extensi...

#kubernetes#nginx
容器内存分析

背景在容器化环境中,平台需要提供准确的业务监控指标,已方便业务查看。那么如何准确计算容器或Pod的内存使用率,k8s/docker又是如何计算,本文通过实验与源码阅读相结合来分析容器的内存实际使用量。预备知识不管docker还是k8s(通过cadvisor)最终都通过cgroup的memory group来得到内存的原始文件,memory相关的主要文件如下:cgroup.event_con...

#docker#kubernetes
    共 16 条
  • 1
  • 2
  • 请选择