- 博客(18)
- 收藏
- 关注
转载 deployment controller
deployment 的本质是控制 replicaSet,replicaSet 会控制 pod,然后由 controller 驱动各个对象达到期望状态。DeploymentController 是 Deployment 资源的控制器,其通过 DeploymentInformer、ReplicaSetInformer、PodInformer 监听三种资源,当三种资源变化时会触发 DeploymentController 中的 syncLoop 操作。
2023-02-15 23:21:12
202
1
原创 kubelet VolumeManager
VolumeManager主要负责在kubelet中进行volume状态的管理。其整体思路同样遵循k8s声明式的设计思想,通过循环同步volume的预期状态与实际状态来触发pod与volume的attach/detach,mount/unmount等行为。
2023-02-13 22:39:45
285
原创 kubernetes CRI
容器运行时接口(Container Runtime Interface),简称 CRI。本质上就是 Kubernetes 定义的一组与容器运行时进行交互的接口,所以只要实现了这套接口的容器运行时都可以对接到 Kubernetes 平台上,kubelet不需要适配就可以对接多种容器运行时对容器进行管理。CRI的定义主要包括两部分,ImageService和RuntimeService。
2023-02-06 22:03:54
260
1
原创 kubernetes源码阅读(1):clientSet
client-go中的client - clientSet文章目录client-go中的client - clientSet从官方的demo说起restClient.ConfigclientSet定义以及构建过程使用ClientSet对资源进行操作从官方的demo说起先看一下官方给到的example流程比较明确获取配置文件路径构造配置文件通过配置文件生成clientset通过clientset对pod进行list、get等操作func main() { var kubeconfig
2020-09-30 15:39:30
835
原创 leetcode 63. 不同路径Ⅱ golang实现
文章目录题目描述解法:动态规划代码思路题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?解法:动态规划代码func uniquePathsWithObstacles(obst...
2020-02-22 14:59:37
236
原创 leetcode 46. 全排列 golang实现
文章目录题目描述解法:回溯法(深度遍历)代码思路题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]解法:回溯法(深度遍历)代码func permute(nums []int) [][]int { l := len(nu...
2020-02-21 22:04:32
490
原创 leetcode 35. 搜索插入位置 golang实现
文章目录题目描述解法一:递归代码思路解法二:循环代码思路题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。解法一:递归代码func searchInsert(nums []int, target int) int { l := len(nums) if l == 0 { ...
2020-02-20 11:24:36
150
原创 leetcode 27.移除元素 golang实现
文章目录题目描述解法:快慢指针代码思路题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。解法:快慢指针代码先上代码,能看懂就不用看思路了func removeElem...
2020-02-18 22:01:29
174
原创 leetcode 24.两两交换链表中的节点 golang实现
文章目录题目描述解法一:递归代码思路解法二:循环遍历代码思路题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。给定 1->2->3->4, 你应该返回 2->1->4->3.解法一:递归代码代码简单,先上代码。看懂了就不用看后边的讲解了type ListNode stru...
2020-02-17 10:25:27
285
原创 golang-lru源码解析(3)ARC缓存
文章目录ARCARCCache数据结构构造方法提供的方法Get方法Add方法其他方法总结ARCARCCache数据结构还是先来看数据结构。主体和2Q类似,由两个LRU缓存构成。2Q的代码可戳《golang-lru源码解析(2)2q缓存》最近被使用的元素缓存最频繁被使用的元素缓存并且为这两个缓存都添加了淘汰队列。从数据结构上看和2Q最大的区别在于,没有为两个缓存给定一个固定的大小...
2020-02-11 21:18:04
980
1
原创 golang-lru源码解析(2)2q缓存
文章目录2qTwoQueueCache结构构造方法Get方法Add方法其他方法2qTwoQueueCache结构TwoQueueCache 包含了三个基础的LRU缓存simplelru的代码可戳 《golang-lru源码解析(1)项目结构、simplelru》从名称上来看,分别用来存储:最近被使用的元素最频繁被使用的元素从最近缓存中被淘汰出来的元素相比基本的LRU缓存,增...
2020-01-27 15:42:50
622
原创 golang-lru源码解析(1)项目结构、simplelru
文章目录项目结构LRUCache接口simplelruentry结构LRU结构提供的方法构造方法Purge方法Add方法Get方法Contains方法Peek方法Remove方法RemoveOldest方法GetOldest方法Keys方法Resize方法总结项目git地址点我golang-lru提供了三个模块。LRU,2Q,ARC三个模块。本文主要介绍整个包的结构,以及为三个模块提供最底层功...
2020-01-24 14:56:29
1086
原创 redis zskiplist 跳跃表源码学习
数据结构typedef struct zskiplistNode { sds ele; double score; // 指向最下层的上一个节点 struct zskiplistNode * backward // 层,代表跳跃表的一列,包含了每一层的这个节点 struct zskiplistLevel { //...
2020-01-22 11:23:42
215
原创 python GC
引用计数python的GC主要依靠引用计数来进行垃圾回收。python给所有对象维护一个引用计数的属性,在一个引用被创建或复制的时候,相关对象的引用计数+1,引用被销毁的时候相关对象的引用计数-1。对象引用计数为0的时候,系统会立即回收该内存// object.hstruct _object { Py_ssize_t ob_refcnt; // 引用计数值 struct Py...
2020-01-20 19:04:41
280
原创 ConfigParser 读取section大小写
ConfigParser 读取section大小写ConfigParser读取的配置文件中,section是默认全部小写的。源码中optionxform方法:def optionxform(self, optionstr): return optionstr.lower()很多资料中都是修改源码来处理大小写的问题,但是修改源码对生产环境下的部署很不友好。实际在代码中读取...
2020-01-19 14:56:10
474
原创 centos系统下的时间校正
centos系统下的时间校正问题描述系统时间校正问题描述最近在做项目的时候遇到的一个小问题,系统需要做一个任务倒计时,创建30分钟后任务失效,而且这个倒计时会在前端页面上展示。由于不是支付或者其他一些非常精确的场景,因此直接使用了任务在数据库的保存时间和当前时间来做倒计时的计算。测试的时候发现一个问题,刚创建的任务展示的时间大于30分钟。经过排查,发现是测试服务器和mysql服务器系统时间不一...
2019-07-27 15:44:45
2091
原创 Sklearn源码阅读(2):随机森林
Sklearn源码阅读(1):随机森林决策树的集合并行计算基于学习器的多样性决策树的集合随机森林原理上就是多颗决策树表决结果。RandomForestClassifier在初始化的时候直接使用了DecisionTreeClassifier来初始化自己的分类器。这里RandomForestClassifier其实也是BaseEnsemble的一个子类,通过对已有的分类器来做各种组合。然后通过...
2019-07-14 18:36:21
1182
原创 Sklearn源码阅读(1):决策树的两种构造方式
Sklearn源码阅读(1):决策树的两种构造方式DecisionTreeClassifier的一些输入参数splitter:best与depth通过栈和堆结构实现depth与best构造方式由栈实现先左后右的构造方式由堆实现提升最高的节点优先被构建二叉的划分方式DecisionTreeClassifier的一些输入参数criterion : string, optional (defaul...
2019-07-14 18:20:43
1766
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人