前言
众所周知,现在基本全国的中小或大厂都已经进入容器时代了,如果你还是一名运维工程师,不会k8s的话,那基本就是low炮了,所以本期带着大家一起学习k8s,因为我也是初学了一段时间,这期更加是互相交流,互相学习。
k8s简介
k8s简单的说就是管理docker容器的,如果说docker是主管,那k8s就是项目经理了。k8s就是容器的编排工具,但这只是其中一个特性。具体功能如下
:
滚动更新:k8s能够做到我在更新我的网址,app的时候,还能够让用户正常访问。
自愈:k8s能够随时随地的检查我容器的副本数,一旦少了一个副本数,立马就给你重新启动一个
弹性伸缩:我们能够通过k8s进行拓展副本和缩小副本,灵活性很高,不再用传统的手动删副本。
服务的安全:k8s的安全性足够的高,他里面有一个组件叫api service的加密网关。(后期会讲解到)
快速发布:k8s能够快速的发布我们的项目,利用一个yaml脚本就能够直接实现服务的搭建。
日志监控:日志的监控在k8s中其实并不是那么好用,但官方说了,我也就提一下,其实在企业中会用“普罗米修斯”去监控我们的k8s。
配置的管理:k8s可以通过更改一个配置文件就可以将多个pod,多个服务一并更改,节约了很多的人工成本。
------------------------------------------------------------------------------------------------------------------
k8s的组件
前言
可能有些小白会觉得k8s,安装个k8s还不简单吗,跟mysql或者nginx一样,直接把包下载好,解压,编译就ok了。我个人认为k8s的安装是最难的,他涉及到的东西实在是太多了,因为k8s是又多个组件构建而成的,就像是一台汽车一样。轮子,发动机,方向盘,避震器,悬挂,等等才能组装成一个车,k8s就是那样。
k8s组成
api service,kubelet,etcd,controller-manager,kube-scheduler,kube-proxy,Dashboard,CoreDNS
以上就是k8s的所有组件了,看的是不是眼花缭乱,要学会安装这些组件如果说是困难,那要理解这些组件的底层逻辑那基本就是地狱难道,你要是能理解了并且比较熟练掌握,那你基本就是k8s专家了。
api service:他可以说就是k8s中的一个门岗一样,他坚守着etcd这个资料库,任何需要从资料库里找东西的人都要经过他,他是加密的,没有授权的组件是无法通过他这一关,他唯一能操作etcd的一个成员。
etcd:etcd他是一个分布式存储机制,学过zk的应该就知道,他与zk很像,我们在k8s所部署的所有东西,都会记录到etcd中,类似一个资料库
controller-manager:相当于集群中的主管,翻译过来就是控制器,他随时随地的检查集群的状态,etcd给他一个名单,名单里该做什么,他就一定确保集群里面是什么样的,如果缺了什么马上出来做事。比如故障检测、自动扩展、滚动更新等。
kube-scheduler:翻译过来就是调度器,他是负责每一个服务应该调度到哪个节点上,避免一个节点堆积了一堆的服务导致宕机。简单的说对号入座。
kubelet:负责管理 worker 节点上的组件,与 master 节点上的 API server 节点进行交互,接受指令执行操作。简单说就是接受k8s自己的命令
kube-proxy:负责对 pod(容器)进行寻址和负载均衡,跟nginx的proxy-pass很像
dashboard:k8s的可视化页面,但很low炮,实际小企业可能要,中型企业基本上自己开发一个页面。不是很重要
coredns:负责给pod分配自己的ip,域名解析
总结:好了,以上就是k8s的组成部分以及简介,因为我也是初学者,所以都是按照自己的理解意思去讲解的,希望可以帮助到正在学习k8s的小白,下期我们开始尝试部署k8s集群,麻烦点个关注吧!