Kubernetes-3-
这是yann的第98次分享[TOC]今日状态:帮助我一直被窃听的同事一天。Kubernetes-3-这是Yann的第98次分享part1承前昨天在视频中演示了构建Deployment的过程,讨论了crd的过程和实现过程。从本文开始,这个过程将一步步实现。Yann保证每个人都能完成一次crd开发体验。Part2项目官方示例先来看看官方示例程序。网址如下:https://github.com/kubernetes...CRD官方的示例程序还是很正规的,比较满意。如果你正在学习Go语言,以类似的例子作为起点还是不错的,这比选择个人兴趣创建的项目或网页上可以找到的HelloWorld要好得多。很多同学不喜欢看官方的示例程序,觉得又臭又长又复杂,版本还老。喜欢个人博客里介绍的精简,一行结束,操作几下就出来结果了。平心而论,Yann也不爱看。但是为了认知的准确性,我会强迫自己去读。个人项目从上面的截图来看,官方的例子还是稍微复杂一点。我们从头开始创建一个更精简的项目。或者先创建一个crd.yaml,注意内容和文件路径,会用到一些值。位置:github.com/kubernetes/yann-controller/artifacts/examples/crd.yamlapi版本:apiextensions.k8s.io/v1beta1kind:CustomResourceDefinitionmetadata:name:tests.yanncontroller.k8s.iospec:group:yanncontroller.k8s.ioversion:v1alpha1names:kind:Testplural:testscope:Namespaced我们第一篇提到的apiVersion、kind、metadata、spec等几个固定字段都出现了。k8s中有很多类似的情况,所以我们只需要关注变化的部分。本次重点介绍tests和yanncontroller,分别是类型名和组名的复数。它可以在元数据中看到。另请注意,第一个字母T大写表示定义的测试类型。项目文件的最后,yann带着大家把代码生成的所有文件都补全了。在这篇文章中,Yann只会给大家展示基本的文件结构,代码的具体内容以及每个文件的用途,在后面的章节中会逐步讲解。我们只需要查看pkg目录中的文件即可。该目录包含两个子目录,apis和signals,它们是固定的,分别代表api和semaphore相关的文件。apis下的目录和子目录是自定义的,对应crd.yaml配置文件中组名前缀yanncontroller和spec定义的版本号v1alpha1。除了这两个目录外,其他文件的名称都是固定的。这样分析一下,应该就容易理解多了。Part3WrapUp今天的内容不是很多,重点是理解。弄清楚crd.yaml中的字段与构建项目的关系是最重要的。理解之后,你会发现没有什么困难。在下一篇文章中,我们将开始解析各个文件的内容,同时搭建官方示例的环境。交互式操作是一种很好的做法。通过搭建环境编译执行官方示例,可以加深对项目的理解。同时,拥有一个正确的环境对于调试自己创建的项目也是很有帮助的。如果项目和环境都不能保证正确,排错的难度就会成倍增加。本文由博客多发平台OpenWrite发布!平台发布的文章格式与原文不同,不便之处敬请见谅。最新内容请关注公众号: