腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
田飞雨的专栏
专注 k8s 云原生实践 个人博客:https://blog.tianfeiyu.com/
专栏成员
举报
88
文章
185209
阅读量
55
订阅数
订阅专栏
申请加入专栏
全部文章(88)
kubernetes(62)
go(40)
node.js(28)
https(24)
网络安全(22)
api(18)
容器(14)
编程算法(12)
http(11)
缓存(9)
容器镜像服务(8)
tcp/ip(7)
命令行工具(6)
负载均衡(4)
git(4)
linux(4)
负载均衡缓存(4)
NAT 网关(4)
数据分析(4)
nat(4)
android(3)
ide(3)
github(3)
私有网络(2)
c++(2)
bash(2)
数据库(2)
nginx(2)
SSL 证书(2)
云推荐引擎(2)
dns(2)
jenkins(2)
openapi(2)
官方文档(1)
javascript(1)
bootstrap(1)
access(1)
unix(1)
文件存储(1)
存储(1)
开源(1)
分布式(1)
迁移(1)
etcd(1)
搜索文章
搜索
搜索
关闭
Kubernetes 中 Descheduler 组件的使用与扩展
迁移
http
编程算法
实例在新建时,调度器可以根据当时集群状态选择最优节点进行调度,但集群内资源使用状况是动态变化的,集群在一段时间内就会出现不均衡的状态,需要 Descheduler 将节点上已经运行的 pods 迁移到其他节点,使集群内资源分布达到一个比较均衡的状态。有以下几个原因我们希望将节点上运行的实例迁移到其他节点:
田飞雨
2022-09-02
1.1K
0
Golang GPM 模型剖析
https
网络安全
go
Golang 程序启动时首先会创建进程,然后创建主线程,主线程会执行 runtime 初始化的一些代码,包括调度器的初始化,然后会启动调度器,调度器会不断寻找需要运行的 goroutine 与内核线程绑定运行。
田飞雨
2021-12-13
1.2K
0
Golang 程序启动流程分析
https
网络安全
文件存储
ide
SSL 证书
go 源代码首先要通过 go build 编译为可执行文件,在 linux 平台上为 ELF 格式的可执行文件,编译阶段会经过编译器、汇编器、链接器三个过程最终生成可执行文件。
田飞雨
2021-11-24
1.4K
0
golang 中函数使用值返回与指针返回的区别,底层原理分析
编程算法
go
https
网络安全
ide
Go 程序会在两个地方为变量分配内存,一个是全局的堆上,另一个是函数调用栈,Go 语言有垃圾回收机制,在Go中变量分配在堆还是栈上是由编译器决定的,因此开发者无需过多关注变量是分配在栈上还是堆上。但如果想写出高质量的代码,了解语言背后的实现是有必要的,变量在栈上分配和在堆上分配底层实现的机制完全不同,变量的分配与回收流程不同,性能差异是非常大的。
田飞雨
2021-10-19
5.3K
0
kubernetes 中 Evicted pod 是如何产生的
node.js
unix
kubernetes
https
网络安全
最近在线上发现很多实例处于 Evicted 状态,通过 pod yaml 可以看到实例是因为节点资源不足被驱逐,但是这些实例并没有被自动清理,平台的大部分用户在操作时看到服务下面出现 Evicted 实例时会以为服务有问题或者平台有问题的错觉,影响了用户的体验。而这部分 Evicted 状态的 Pod 在底层关联的容器其实已经被销毁了,对用户的服务也不会产生什么影响,也就是说只有一个 Pod 空壳在 k8s 中保存着,但需要人为手动清理。本文会分析为什么为产生 Evicted 实例、为什么 Evicted 实例没有被自动清理以及如何进行自动清理。
田飞雨
2021-10-08
5.2K
0
blkio cgroup
缓存
linux
blkio 是 cgroup v1 中的一个子系统,使用 cgroup v1 blkio 子系统主要是为了减少进程之间共同读写同一块磁盘时相互干扰的问题。
田飞雨
2021-09-08
2.6K
1
在 minikube 上部署 knative
https
网络安全
knative 服务所启动的 pod 分别在 knative-serving 和 knative-eventing 两个 namespace 下,查看 pod 是否都已启动成功:
田飞雨
2020-10-09
1.3K
0
knative serving 组件分析
go
knative 部署完成后可以在 knative-serving namespace 下看到创建出的组件:
田飞雨
2020-10-09
1.2K
0
kubernetes 中的增强特性(Kubernetes Enhancement Proposal)
node.js
kubernetes
etcd
go
缓存
kubernetes 增强特性(kep)是为了解决社区中的疑难问题而创建的一个项目,每一个增强特性都对 kubernetes 的部分功能有较大的影响,需要 kubernetes 项目下的多个组(SIG)协作开发,对应的特性通常要经过 alpha、beta以及 GA 三个版本,所以每个方案的开发周期比较长,大多需要经过 9~10 个月才能完成,某些特性甚至已经讨论多年至今仍未开发完成,像 crd、dry-run、kubectl diff、pid limit 等已经开发完成的功能都是在 kep 中提出来的。本文会介绍几个比较重要的已经在 kep 中孵化的特性。
田飞雨
2020-04-15
1.3K
0
kube-apiserver 中 apiserver service 的实现
bootstrap
go
kubernetes
tcp/ip
node.js
在 kubernetes,可以从集群外部和内部两种方式访问 kubernetes API,在集群外直接访问 apiserver 提供的 API,在集群内即 pod 中可以通过访问 service 为 kubernetes 的 ClusterIP。kubernetes 集群在初始化完成后就会创建一个 kubernetes service,该 service 是 kube-apiserver 创建并进行维护的,如下所示:
田飞雨
2020-03-06
2.9K
0
kube-apiserver 的设计与实现
api
openapi
kubernetes
go
android
kube-apiserver 是 kubernetes 中与 etcd 直接交互的一个组件,其控制着 kubernetes 中核心资源的变化。它主要提供了以下几个功能:
田飞雨
2020-02-27
3K
0
kubelet 中垃圾回收机制的设计与实现
容器
kubernetes
go
node.js
本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector controller 源码分析。
田飞雨
2020-02-17
1.5K
0
kubernetes 中 Qos 的设计与实现
http
kubernetes
go
QoS(Quality of Service) 即服务质量,QoS 是一种控制机制,它提供了针对不同用户或者不同数据流采用相应不同的优先级,或者是根据应用程序的要求,保证数据流的性能达到一定的水准。kubernetes 中有三种 Qos,分别为:
田飞雨
2020-02-14
3.3K
1
job controller 源码分析
kubernetes
go
job 在 kubernetes 中主要用来处理离线任务,job 直接管理 pod,可以创建一个或多个 pod 并会确保指定数量的 pod 运行完成。kubernetes 中有两种类型的 job,分别为 cronjob 和 batchjob,cronjob 类似于定时任务是定时触发的而 batchjob 创建后会直接运行,本文主要介绍 batchjob,下面简称为 job。
田飞雨
2020-02-10
836
0
NodeController 源码分析
node.js
在早期的版本中 NodeController 只有一种,v1.16 版本中 NodeController 已经分为了 NodeIpamController 与 NodeLifecycleController,本文主要介绍 NodeLifecycleController。
田飞雨
2020-01-13
990
0
kubelet 启动流程分析
kubernetes
go
http
命令行工具
本来这篇文章会继续讲述 kubelet 中的主要模块,但由于网友反馈能不能先从 kubelet 的启动流程开始,kubelet 的启动流程在很久之前基于 v1.12 写过一篇文章,对比了 v1.16 中的启动流程变化不大,但之前的文章写的比较简洁,本文会重新分析 kubelet 的启动流程。
田飞雨
2020-01-05
2.3K
0
garbage collector controller 源码分析
node.js
kubernetes
go
在前面几篇关于 controller 源码分析的文章中多次提到了当删除一个对象时,其对应的 controller 并不会执行删除对象的操作,在 kubernetes 中对象的回收操作是由 GarbageCollectorController 负责的,其作用就是当删除一个对象时,会根据指定的删除策略回收该对象及其依赖对象,本文会深入分析垃圾收集背后的实现。
田飞雨
2019-12-31
1.1K
0
kubelet statusManager 源码分析
kubernetes
go
缓存
本篇文章没有接上篇继续更新 kube-controller-manager,kube-controller-manager 的源码阅读笔记也会继续更新,笔者会同时阅读多个组件的源码,阅读笔记也会按组件进行交叉更新,交叉更新的目的一是为了加深印象避免阅读完后又很快忘记,二是某些代码的功能难以理解,避免死磕,但整体目标是将每个组件的核心代码阅读完。
田飞雨
2019-12-26
1.7K
0
kube-scheduler 优先级与抢占机制源码分析
node.js
编程算法
go
kubernetes
前面已经分析了 kube-scheduler 的代码逻辑以及 predicates 与 priorities 算法,本节会继续讲 scheduler 中的一个重要机制,pod 优先级与抢占机制(Pod Priority and Preemption),该功能是在 v1.8 中引入的,v1.11 中该功能为 beta 版本且默认启用了,v1.14 为 stable 版本。
田飞雨
2019-12-20
880
0
replicaset controller 源码分析
kubernetes
go
在前面的文章中已经分析过 kubernetes 中多个组件的源码了,本章会继续解读 kube-controller-manager 源码,kube-controller-manager 中有数十个 controller,本文会分析最常用到的 deployment controller。
田飞雨
2019-12-20
795
0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
立即查看
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档