江哥架构师笔记

路漫漫其修远兮
吾将上下而求索

按时间排序目录 第3页

client-go:informer架构说明

上图是整个 client-go 的完整架构图,或者说是我们要去实现一个自定义的控制器的一个整体流程,其中黄色图标是开发者需要自行开发的部分,而其它的部分是 client-go 已经提供的,直接使用即可。 由于 client-go 实现非常复...

client-go:informer使用

介绍 前面我们在使用 Clientset 的时候了解到我们可以使用 Clientset 来获取所有的原生资源对象,那么如果我们想要去一直获取集群的资源对象数据呢?岂不是需要用一个轮询去不断执行 List() 操作?这显然是不合理的,实际上除...

client-go:资源类型 Scheme

本节主要讲解 Kubernetes 核心的资源类型 Scheme 的定义和用途。 介绍 当我们操作资源和 apiserver 进行通信的时候,需要根据资源对象类型的 Group、Version、Kind 以及规范定义、编解码等内容构成 Sc...

client-go:Kubernetes API

本节主要讲解 kuberntes API 接口模型 介绍 Kubernetes 中最核心的就是 kube-apiserver 组件,其他组件都是和 kube-apiserver 进行通信的,本节主要就来研究下 Kubernetes API ...

k8s学习:raft协议在etcd中应用

cap理论,base理论 一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。 BASE强调牺牲高一致性,从而获得可用性,数...

k8s学习:有状态服务容器化调研

1、背景 公司部分业务功能的实现是有状态的方式实现,部署在亚马逊的ec2上,为了方便这部分业务进行容器化改造,需要调研业界常见的有状态服务容器上部署方式,通过开源的方案来查看里面架构和实现逻辑,进行讨论来找出一种适合公司业务的部署改造方式。...

go学习:channel 源码分析

这部分看的是 golang1.2 的源码(其实是 3 年前看的,最近又拿出来复习整理了下),C语言实现的。 如果只是为了学习,而不是为了实际参与项目的开发,还是建议阅读低版本源代码,因为更纯粹些。 越是新的版本,里面掺杂的周边逻辑越多,比如...

go学习:切片和数组注意事项

先抛出几个问题 声明一个 slice 并赋值为 nil, 如 var slice []int = nil,此时 len(slice) 的运行结果是什么? func(arr []int) 和 func(arr [10]int) 两个函数内部都...

k8s学习:万级规模,阿里巴巴k8s性能优化

【编者的话】本文主要介绍阿里巴巴在大规模生产环境落地 Kubernetes 的过程中,在集群规模上遇到的典型问题以及对应的解决方案,内容包含对 etcd、kube-apiserver、kube-controller 的若干性能及稳定性的增强...