草办_sh
码龄11年
关注
提问 私信
  • 博客:93,829
    社区:83
    93,912
    总访问量
  • 26
    原创
  • 1,794,607
    排名
  • 33
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2013-09-27
博客简介:

草办的学习记录

查看详细资料
个人成就
  • 获得29次点赞
  • 内容获得13次评论
  • 获得168次收藏
创作历程
  • 39篇
    2021年
  • 22篇
    2020年
  • 9篇
    2015年
  • 1篇
    2014年
成就勋章
TA的专栏
  • 系统运维
    1篇
  • zabbix
    6篇
  • 基础知识
  • 趣谈Linux操作系统
    12篇
  • 工作技巧
  • 云原生相关
  • Kubernetes生产化实践之路
    3篇
  • P7云原生架构师
  • 深入剖析Kubernetes
    2篇
  • 容器实战课程
    23篇
  • Service Mesh学习记录
    5篇
  • Serverless入门课学习记录
    3篇
  • 数据库-mysql
    1篇
  • linux操作
    1篇
  • 应用运维
    12篇
  • 工具类
  • python
    1篇
兴趣领域 设置
  • 运维
    容器devops自动化kubernetes系统架构运维开发
  • 服务器
    linuxcentos
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

346人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

1.3kubernetes核心架构_kubernetes生产化实践之路

1.3kubernetes核心架构_kubernetes生产化实践之路
翻译
发布博客 2021.12.08 ·
567 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

1.2kubernetes模型设计_kubernetes生产化实践之路

1.2.1、对象的通用设计原则kubernetes在设计对象时遵循如下原则:1、kubernetes 将业务模型化,对象的操作都是以API的形式发布出来的,因此API 设计都是声明式2、控制器的行为应该是可重入和幂等的,通过幂等的控制器使得系统一致朝用户期望状态努力,且结果稳定。(可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。)3、所有对象应该是互补和可组合的,而不是简单的封装,通过组合关系构建的系统,通常能保持很好的高内聚,松耦合特性4、API操作负责度应该与对象数量成线性
翻译
发布博客 2021.11.07 ·
560 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

1.1云计算的变革_kubernetes生产化实践之路

云原生:将应用程序构建为微服务,并将其运行在完全动态地利用云计算模型优势的容器编排平台上的方法。云原生主要关注的是如何创建和部署程序,而不是运行在哪里。设计云原生应用可以从如下考虑:松耦合的微服务:按照业务功能设计成微服务,之间通过轻量级协议通信(例如HTTP)无状态且可规模化部署故障的容忍性和弹性:跨数据中心、跨云厂商部署时,单个服务部分实例异常不影响整体服务的质量1.1、云计算的变革物理机–虚拟机–容器化1.1.2、虚拟化时代1.基础架构即服务(Infrastructure a
翻译
发布博客 2021.10.26 ·
459 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

06 | 白话容器基础(二):隔离与限制

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。一、隔离上节说明了:Namespace技术实际上修改了应用进程看待整个计算机“视图”,即它的视线被操作系统限制,只能看到某些指定的内容。对于宿主机来说,这些被隔离了的进程和其他进程并没有太大的区别。在这个虚拟机和容器的技术对比图中,不应该把Docker Engine 或者任何容器管理工具放在跟Hypervisor 相同的位置。因为他们并不像Hypervisor 那样对应用的隔离环境负责,也不会创建任何实体的容器,真正对隔离环境负责的是宿.
翻译
发布博客 2021.10.12 ·
366 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

05 | 白话容器基础(一):从进程说开去

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。容器本身没有价值,有价值的是容器编排。进程:一个程序运行起来后的计算机执行环境的总和。 一个程序被执行起来,它就从磁盘上的二进制文件,变成了计算机内存中的数据,寄存器里的值,堆栈中的指令,被打开的文件,以及各种设备的状态的信息集合。容器的核心技术:通过约束和修改进程的动态表现,从而为其创造出一个边界。Cgroups 技术是用来制造约束的主要手段;Namespace 技术用来修改进程视图的主要手段==在容器中可以看到进程的PID 是从.
翻译
发布博客 2021.10.08 ·
365 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

加餐02 | 理解perf:怎么用perf聚焦热点函数?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。一、问题回顾什么情况下使用perf工具的,perf工具给我们带来了哪些信息?在调试网路延时的时候,我们使用了 ebpf 的工具之后,发现了节点上一个 CPU,也就是 CPU32 的 Softirq CPU Usage(在运行 top 时,%Cpu 那行中的 si 数值就是 Softirq CPU Usage)时不时地会增高一下。在发现CPU Usage 异常增高的时候,肯定需要排查是什么程序导致的,这个时候就用到了 perf。抓取数据,.
翻译
发布博客 2021.09.30 ·
992 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

加餐01 | 案例分析:怎么解决海量IPVS规则带来的网络延时抖动问题?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。一、问题背景虚拟机迁移到了 Kubernetes 平台上。迁移之后,用户发现他们的应用在容器中的出错率很高,相比在之前虚拟机上的出错率要高出一个数量级。分析了应用程序的出错日志,发现在 Kubernetes 平台上,几乎所有的出错都是因为网络超时导致的。经过网络环境排查和比对测试,我们排除了网络设备上的问题,那么这个超时就只能是容器和宿主机上的问题了。在虚拟机中的出错率是 0.001%,而在容器中的出错率是 0.01%~0.04%。偶发.
翻译
发布博客 2021.09.29 ·
1034 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

加餐福利 | 课后思考题答案合集

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。
翻译
发布博客 2021.09.28 ·
207 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

20 | 容器安全(2):在容器中,我不以root用户来运行程序可以吗?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。
翻译
发布博客 2021.09.12 ·
2198 阅读 ·
2 点赞 ·
0 评论 ·
5 收藏

19 | 容器安全(1):我的容器真的需要privileged权限吗?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。下面说下容器安全的模块。容器的安全很大程度由容器的架构特性决定的:比如容器与宿主机共享Linux 内核,通过Namespace来做资源的隔离,通过 shim/runC 的方式来启动等。这些容器架构特性,在选择使用容器之后,作为容器的用户,其实没有多少能力去对架构层面做安全上的改动了。你可能会说用Kata Container、gVisor 就是安全“容器”了。不过,Kata 或者 gVisor 只是兼容了容器接口标准,而内部的实现完全是另外.
翻译
发布博客 2021.09.07 ·
2065 阅读 ·
2 点赞 ·
0 评论 ·
4 收藏

18 | 容器网络配置(3):容器中的网络乱序包怎么这么高?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。
翻译
发布博客 2021.09.05 ·
1881 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

17|容器网络配置(2):容器网络延时要比宿主机上的高吗?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。上一节说了网络接口配置中的,veth 的接口配置方式,是大部分容器缺省用的网络配置方式。veth 的方式:一个数据包要从容器里发送到宿主机外,需要先从容器里的eth0(veth_container)把包发送到宿主机上 veth_host ,然后再在宿主机上通过nat或者路由的方式,经由宿主机上的eth0 向外发送。...
翻译
发布博客 2021.09.01 ·
825 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

16 | 容器网络配置(1):容器网络不通了要怎么调试?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。下面了解下容器网络不通了怎么调试。一、问题再现在容器中ping 公网地址不通;在宿主机上是可以的。# docker run -d --name if-test centos:8.1.1911 sleep 36000244d44f94dc2931626194c6fd3f99cec7b7c4bf61aafc6c702551e2c5ca2a371# docker exec -it if-test bash [root@244d44f9.
翻译
发布博客 2021.08.31 ·
2072 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

15 | 容器网络:我修改了/proc/sys/net下的参数,为什么在容器中不起效?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。今天了解下和 Network Namespace 相关的一个问题,容器中的网络参数。一、问题再现容器中运行的应用程序,如果需要用到 tcp/ip 协议栈的话,常常需要修改一些内核中网络协议栈的参数。很大一部分网络参数都在 /proc 文件系统下的 /proc/sys/net/ 目录里。内核网络相关的参数1、直接到/proc 文件系统下的/proc/sys/net/ 目录里对参数做修改2、或者使用sysctl 工具来修改先在宿主机.
翻译
发布博客 2021.08.30 ·
1883 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

14 | 容器中的内存与I/O:容器写文件的延时为什么波动很大?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。Linux 中两种I/O模式:Direct I/O,Buffered I/O模式Buffered I/O 是Linux的系统调用 write() 缺省模式。这种模式的write()函数调用返回要快一些,使用的更普遍一些。当使用Buffered I/O的应用程序从虚拟机迁移到容器后,多了Memory Cgroup的限制后,write()写相同大小的数据块花费的时间,波动延时比较大。一、问题再现场景:从文件中每次读取一个64KB大小的数据.
翻译
发布博客 2021.08.29 ·
891 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

13 | 容器磁盘限速:我的容器里磁盘读写为什么不稳定?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。一、场景再现运行 代码 运行一下make image来做一个带 fio 的容器镜像,用来测试磁盘文件读写性能的工具。mkdir -p /tmp/test1docker stop fio_test1;docker rm fio_test1docker run --name fio_test1 --volume /tmp/test1:/tmp registery/fio:v1 fio -direct=1 -rw=write -ioengi.
翻译
发布博客 2021.08.24 ·
1327 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

12 | 容器文件Quota:容器为什么把宿主机的磁盘写满了?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。
翻译
发布博客 2021.08.24 ·
985 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

11 | 容器文件系统:我在容器中读写文件怎么变慢了?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。把 Linux 从 ubuntu18.04 升级到 ubuntu20.04 之后,在容器里用 fio 这个磁盘性能测试工具,在 ubuntu 20.04 宿主机上的容器中文件读写的性能只有 ubuntu18.04 宿主机上的 1/8 左右了。一、问题再现先启动一个 ubuntu18.04的虚拟机,Linux内核版本是4.15。虚拟机上用命令 docker run -it ubuntu:18.04 bash 启动一个容器接着容器里运行f.
翻译
发布博客 2021.08.01 ·
1143 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

10 | Swap:容器可以使用Swap空间吗?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。swap空间:它就是一块磁盘空间,当内存写满的时候,就可以把内存中不常用的数据暂时写到这个 swap 空间上,这样一来内存空间就可以释放出来,用来满足新的内存申请的需求。它的好处是可以应对一些瞬时突发的内存增大需求,不至于因为内存一时不够而触发OOM killer,导致进程被杀死。那么容器里使用 swap 有什么影响呢?一、问题再现在一个有swap的机器上启动一个容器,设置好memory cgroup 限制。创建swap的命令:.
翻译
发布博客 2021.07.27 ·
1498 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

09 | Page Cache:为什么我的容器内存使用量总是在临界点?

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。上一节我们知道,如果容器使用的物理内存超过了 memory.limit_in_bytes,容器中的进程会被 OOM Killer 杀死。不过在有一些容器使用场景中,容器应用有很多文件读写,你会发现整个容器的内存使用量已经接近 Memory Cgroup 上限值了,但是在容器中再申请内存,还是可以申请出来,并没有发生OOM。一、问题再现测试使用的代码:https://github.com/chengyli/training/tree/ma.
翻译
发布博客 2021.07.18 ·
2493 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏
加载更多