go深入解析goroutine Goroutine Scheduler 概述调度器是go语言运行时最核心的内容,其基本理论建立在三种基本对象(系统线程对象M,抽象处理器对象P,goroutine对象G) M、P、G关系GO运行时存在两种类型队列(queue): 全局queue 每个P维护自己的G的queue 基本对象数据结构MPG 调用go func(){...}()起一个协程,都会创建一个gorou 2019-11-28 go
go深入解析channel 常见问题 往未初始化的Channel写数据,会发生什么? nil channel会永远阻塞对该channel的读写操作 1234 func main() { var cc chan int cc <- 1} 运行后,报错: 123fatal error: all goroutines are asleep - deadlock!goroutine 1 [chan 2019-11-18
go并发控制 go实现对并发控制的几种方式 WaitGroup Channel + Select Context WaitGroup123456789101112131415func main() { var wg sync.WaitGroup wg.Add(2) go func() { time.Sleep(3 * time.Second) fmt.Println("&l 2019-10-30 go
Istio安装与实践 前提 Ubuntu 16.04 安装kubernetes集群(kubeadm/minikube),本次使用的是kubeadm搭建的1.15版本k8s集群 下载 Istio 发行版本,本次安装的是Istio 1.4.0。 执行任何必要的 特定于平台的设置。 检查 Pods 和 Services 的要求。 2019-09-08 k8s Istio
kube-apiserver Aggregation Layer 配置Aggregation Layer允许通过新增一个扩展apiserver服务来扩展非核心api。 与CRD扩展api的方式不同, Aggregation API需要另一个扩展的apiserver(aggregated apiserver)。扩展apiserver(aggregated apiserver)与kube-apiserver(aggregator)之间需要互相通信。为了保证通信安全, 2019-06-08 k8s
Service Account Token Volume Projection 特性介绍社区实现的pod 通过 volume 方式引用service account 的 token,支持audience和token有效期设置。在1.11引入(Alpha),在1.12为Beta。 使用ServiceAccountTokenVolumeProjection 在 k8s 1.11版本需要手动设置 TokenRequestProjection 这个feature gate 为 tru 2019-05-28 k8s
default-token default-token得先从service account说起,Service account是Pod里面的进程调用Kubernetes API或其他外部服务而设计的,每个namespace下有一个名为default的默认的ServiceAccount对象,如下图: Token controller监测service account的创建,并为它们创建默认token,即每个ServiceAc 2019-05-08
kubernetes下的DNS Kubernetes中的DNS主要用作服务发现,在集群中调度Pod和Service,并且配置kubelet使得容器可以使用DNS Service的IP解析域名 2018-10-03 k8s
go http middleware 12345678910111213141516171819202122232425262728293031323334353637package mainimport ( "fmt" "net/http" "strings")func buildHandlerChain(apiHandler http.Handler) http.Hand 2017-11-13 go