k8s基础 ~1

K8S基础架构

基础架构

https://www.cnblogs.com/wwchihiro/p/9261607.html

K8S源码包导览 

/api:OpenAPI/Swagger 规范,JSON 模式文件,协议定义文件

/build:打包和持续集成,存放构建相关文件

/CHANGELOG:存放每个版本的变动

/cluster:存放一些脚步和yaml信息,该目录将会被弃用,已经进入维护模式,不会接受新的providers

/cmd:本项目的主干,存放可执行文件的入口代码,不会在这个目录放太多的代码,每个可执行文件都会对应一个 main 函数

/docs:设计和用户文档

/hack:存放与构建、测试等相关的脚本

/LICENSES:证书信息

/logo:logo

/pkg:核心库代码,可被项目内或外部直接使用

/plugin:存放k8s插件目录,例如准入、认证、授权

/staging:此目录是已拆分到各自库。这里的内容将定期发布给各自k8s.io库。存放部门核心库的暂存目录

/test:测试工具以及测试数据

/third_party:第三方工具、代码或脚本

/translations:存放国际化语言包相关文件

/vendor:存放项目依赖的库代码,第三方库代码

GO代码基础

https://github.com/golang-standards/project-layout

/cmd     main函数文件,每个文件在编译生成一个可执行文件

/internal   应用程序的复用封装的代码

/pkg   一些通用的可以被其他项目所使用的代码

/vendor   项目依赖的其他第三方库,使用 glide 工具来管理依赖

/api   协议文件,Swagger/thrift/protobuf 等

/web   web服务所需要的静态文件

/configs   配置文件

/init   服务启停脚本

/scripts   其他一些脚本,编译、安装、测试、分析等等

/build   持续集成目录 云 (AMI), 容器 (Docker), 操作系统 (deb, rpm, pkg)等的包配置和脚本放到 /build/package/ 目录

/deployments  部署相关的配置文件和模板

/test   其他测试目录,功能测试,性能测试等

/docs   设计文档

/tools   常用的工具和脚本,可以引用 /internal 或者 /pkg 里面的库

/examples   应用程序或者公共库使用的一些例子

/assets   其他一些依赖的静态资源

相关三方包

cobar命令方式 https://www.cnblogs.com/borey/p/5715641.html

go-restful,k8s中作为apiserver的rest框架来实现,实现路由和handler的对接 

  https://studygolang.com/articles/7896

  https://pkg.go.dev/github.com/emicklei/go-restful

client-go kubernetes对外提供的就是Rest API

https://www.cnblogs.com/charlieroro/p/10330390.html

https://yuerblog.cc/2018/12/13/k8s-client-go-usage/

***https://github.com/owenliang/k8s-client-go

apimachinery apimachinery 解决的是 kubernetes 的 API Object 的 Scheme, typing, encoding, decoding, and conversion问题

https://cloud.tencent.com/developer/article/1519826

k8s.io/api 定义k8s api

例如:在kubernetes中需要有一个Pod的类型,每次执行kubectl create -f xxx.yaml创建Pod对象的时候需要实例化Pod,并把xxx.yaml中的参数赋值到Pod对象中

https://www.cnblogs.com/yuxiaoba/p/9803284.html

原文地址:https://www.cnblogs.com/it-worker365/p/15201344.html