alastairruhm / alastairruhm.github.io

agile learning practice, blog https://blog.ruhm.me issues: https://github.com/alastairruhm/alastairruhm.github.io/issues
0 stars 1 forks source link

kubernetes research #11

Open alastairruhm opened 6 years ago

alastairruhm commented 6 years ago

实战分享

alastairruhm commented 6 years ago

Reading: Golang在Kubernetes语境下的编程范式

video: http://www.itdks.com/dakalive/detail/4020


1. Kubernetes项目为什么选择Golang?

2. Kubernetes的设计模式?

  1. controller: Level driven ,not edge driver(event driven)
  2. 「这样的Controller就是Kubernetes设计得最核心的点,无论是Kubernetes还是Scheduller,还是Controller Manager,它们可以全部简单看或简单或复杂的Controller」

这样的机制,一方面简化架构,另一方面系统通过用户自己写 controller 扩展 kubernetes 的能力

编程范式

1. Controller

2. Code generator

client-gen: generate typed kubernetes API client for type conversion-gen: seamless upgrades between API versions deepcopy-gen: deepcopy defaultrer-gen: set default values for fields go-to-protobuf: generate protobuf messag for yoour types informer-gen: generate informers that can be used to watch for updates to your types openapi-gen: generate openapi compatible API documentation