成为k8s大佬,从这个操作开始(伪) - 程序员学点xx 42 k8s
目录

Kubernetes -2-
这是yann的第97篇分享
本日状态:
饿着肚子写公众号的 yann 同学。
第 1 部分 反省
昨天的内容被熊哥批评了。
熊哥说,「你光想着自己爽,一句我认为如何如何,洋洋洒洒半屏幕结论,完全不考虑别人能不能看得懂。」
yann 一想好像是这么回事,一激动全讲出来了。所以,今天会稍微再细致的给大家解说一下昨天的概念。
第 2 部分 知识
Deployment
昨天提到的 Deployment 其实相当于订单或需求清单。比如说,yann 需要建立一个集群,里面有3个容器副本,就可以用 Deployment 来建立。
当然,这么定义是不严谨的。但是暂时可以这样理解:Deployment 包含了一个任务中的容器数量及所用的镜像,还有的其他一些属性。
yann 觉得先有概念,在逐步完善是一个很好的学习过程。yann 很不喜欢接受新事物的开始,就背负一堆负担。正常的学习路线应该是先搞懂原理,了解主要组件,然后再细化实践。而不是精雕细琢,记住每一个细碎知识点。结果半年以后还停在第1章,那就已经凉凉了。
演示
下面通过视频的方式给大家演示,通过 Deployment 创建一个集群的过程。大家只要有个概念:什么样的操作会产生什么样的结果就好了, 不必深究细节。
微信里的视频拿不出来,麻烦跳转观看.
视频有一分半, 中间电脑有点卡了,所以画面停顿,请多等一下。
看完视频只要体会了以下两个知识点就可以了:
- Deployment 类型的配置文件就像资源清单一样,yann 在里面定义需要3个 nginx 容器
- 通过 kubectl 命令 + 配置文件, 可以创造出容器集群
其实视频里面还定义了服务,并检验了容器和服务的可用性。不过这些目前不是很重要, 不了解也罢。
不过要注意,Deployment 并不是一份死板的资源清单,而是对资源动态的保证,例如一个 节点 node 宕机了, Deployment 的控制器只要发现定义数量不满足了,就要在存活节点上重新发起新的需求,以保证满足设定。
CRD
既然搞清楚了 Deployment 的用途,那 CRD 也就很容易说明了。Deployment 是一种资源定义清单, 定义了容器的副本数和数量。而CRD就是用户自己去自定义某些资源清单。
那这样就会有人问了,「我没事自己定义个资源清单干嘛? 」。这个问题问的好,昨天 yann 也说过,光是资源的定义没有任何意义,要配合控制器 controller 来处理这个清单。所以我们自定义了一个清单。自然也要自定义控制器去处理这个清单。而在控制器中,可以附加各种业务逻辑来完成相应的控制,这就是我们的目的。
搞清楚了前因后果,我们再来看一下 CRD 项目的具体的操作方式。昨天 yann 演示了一个 CRD 的一个配置文件,其实这只是第1步。后续还要补充另外一些文件,来构造成一个特定的工程。
然后我们会安装代码生成器,代码生成器检测工程文件的结构,来生成一些通用代码和组件,在此基础上我们再来编写控制器。最后把编译好的二进制控制器文件放到 k8s 服务器上, 再加上权限,指定配置文件就可以使用了。
为什么会这样操作?是因为k8s的处理过程还是相对复杂,厂商为了方便用户会自动生成一部分代码,只有部分比较灵活的代码由用户来完成。
第 3 部分 总结
下一篇,yann 会带领大家理清需要补充的文件和代码,再尝试使用代码生成器,产生相应的代码出来。为编写 controller 做好准备。
把复杂、困难的东西,讲的简洁明了, 确实挺困难的。yann 会尽量放慢速度,并辅以图表和视频。尽量展现出其中的原理。学习不能贪图爽快,一定要搞清楚原理。不然很容易陷入一个脚本跑起来, 各种问题都奇怪的状况。
运维开发时间
关注我们
关注我们就可以看到其他不一定好看的文章
网站其他文章
深度科普 (CNCF→) 毕业项目 | 生态 | Ansible | Chef | Puppet | VMware | OpenStack | registry | Harbor| Docker | Containerd | RKT | ROOK | Calico | Flannel | Open vSwitch | Kubernetes | Zookeeper | Consul | Etcd | GRPC | thrift | MySQL | Spark | Storm | RocketMQ | kafka| RabbitMQ | Helm | Docker Composer | Packer | Jenkins | Bamboo | (Prometheus→) 构建 | DBA | 系统 | Grafana | Zabbix | Fluentd | ElasticSearch | Logstash | Jaeger | Go语言 (go web)网站 | Request | Response| 模板| 数据存储 | 处理 JSON (go docker)冒烟| 限制资源| Python 期末总结 | ELK 任务 | 部署ES | 最小模式 | 集群 | Logstash | 中转 | 输出 | kafka | 消息定制 | 过滤 | geoip | grok | kibana | es head | 使用 | CURD | 指引 Redis 集群 | 脚本 |迁移 | 加固 | 持久化 | 性能 | 缓存思考 | Kafka 集群 | 故障排查 | 命令行 | 术语 | 集群原理 | 近期文章 寂寞的时候, Siri在帮我数羊 - 100期纪念
本文由博客一文多发平台 OpenWrite 发布!
发布在平台的文章, 和原文存在格式差异, 阅读不便请见谅
最新内容欢迎关注公众号:
成为k8s大佬,从这个操作开始(伪) - 程序员学点xx 42 k8s的更多相关文章
- 构建CRD工程 - 程序员学点xx 43 k8s
目录 Kubernetes -3- 这是yann的第98篇分享 本日状态: 帮同事排了一天bug. Kubernetes -3- 这是yann的第98篇分享 第 1 部分 承前 昨天用视屏的方式演 ...
- Android程序员学WEB前端(7)-CSS(2)-伪类字体文本背景边框-Sublime
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/76618373 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 伪类: <!DOC ...
- python(三)一个文件读写操作的小程序
我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...
- 【转帖】远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm) https://zhuanlan.zhihu.com/p/310 ...
- IT观察】网络通信、图片显示、数据库操作……Android程序员如何利用开源框架
每个Android 程序员都不是Android应用开发之路上孤军奋战的一个人,GitHub上浩如烟海的开源框架或类库就是前人为我们发明的轮子,有的轮子能提高软件性能,而有的轮子似乎是以牺牲性能为代价换 ...
- 你是否听说过 HashMap 在多线程环境下操作可能会导致程序死循环?
作者:炸鸡可乐 原文出处:www.pzblog.cn 一.问题描述 经常有些面试官会问,是否了解过 HashMap 在多线程环境下使用时可能会发生死循环,导致服务器 cpu 100% 的线上故障? 关 ...
- 『与善仁』Appium基础 — 30、操作微信小程序
目录 1.测试微信小程序前提 2.获取微信小程序的进程 3.代码示例 4.补充:(了解) 微信小程序和微信公众号的测试方式基本上是一样的. 微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化 ...
- 【性能测试实战】jmeter + k8s + 微服务 + skywalking + efk,测试都在学的热门技术
原文持续更新完善:https://www.cnblogs.com/uncleyong/p/15475614.html 前言:当前的热门主流技术是哪些?测开为啥那么火?90%以上的测试对测开认识不准确 ...
- 在C#中使用 SendMessage 实现操作外部其他程序上的控件教程
一.C#代码实现 本案例使用的是c# winform .NET Framework 4.7.2 首先我们声明一个寻找窗体的函数 [DllImport("User32.dll", E ...
随机推荐
- Ldap 从入门到放弃(一)
OpenLDAP 2.4版本 快速入门 本文内容是自己通过官网文档.网络和相关书籍学习和理解并整理成文档,其中有错误或者疑问请在文章下方留言. 一.Introduction to OpenLDAP D ...
- 一篇面试的考题----jQuery
一.jQuery测试题 下面哪种不是jquery的选择器?(单选)A.基本选择器 B.后代选择器 C.类选择器 D.进一步选择器考点:jquery的选择器 (C) 当DOM加载完成后要执行的函数,下面 ...
- 插头DP讲解+[BZOJ1814]:Ural 1519 Formula 1(插头DP)
1.什么是插头$DP$? 插头$DP$是$CDQ$大佬在$2008$年的论文中提出的,是基于状压$D$P的一种更高级的$DP$多用于处理联通问题(路径问题,简单回路问题,多回路问题,广义回路问题,生成 ...
- Java数据结构与算法(4):二叉查找树
一.二叉查找树定义 二叉树每个节点都不能有多于两个的儿子.二叉查找树是特殊的二叉树,对于树中的每个节点X,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项. 二叉查找树节点的 ...
- MySQL的性能指标计算和优化方法
MySQL的性能指标计算和优化方法1 QPS计算(每秒查询数) 针对MyISAM引擎为主的DB mysql> show global status like 'questions';+----- ...
- nginx代理前端项目
参考:https://segmentfault.com/a/1190000013980557 https://segmentfault.com/a/1190000013267839 注意 1.只能有 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_06 Properties集合_3_Properties集合中的方法load
键值对文件,读取到集合中来使用 分隔符也可以用空格 读出来乱码
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第6节 static静态_11_静态static关键字概述
static静态关键字的基本含义 红色教室都划掉 一份数据分给三个人用,而不是三个人相同的数据,三个对象写三遍没有必要. 只写一遍教室,写在学生的类当中.这样还就可以省内存.如果要换教室的话 ,只需要 ...
- Linux负载均衡实现
配置之前清空所有服务器防火墙规则 iptables -F 关闭selinux: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开 ...
- Java 高级-集合框架
参考资料 参考 HashMap 类似 C++ 中的 STL 标准模板库,Java 也在 java.util 包中封装了一套常用数据结构及其算法,称为集合框架.所有的集合框架都包含如下内容: 接口:代表 ...
