初识kubernetes
kubernetes是什么?
在聊到k8s之前,需要知道云原生的概念,按照我自己的理解,与传统的开发方式相比,云原生是指一种使用容器化的方式开发程序,并与开发环境一同上传为镜像,镜像可以理解为java中的类,而容器可以视为对象,那么就没有开发环境与部署环境的差别了,都是同一个镜像,也就是是同一个环境的应用程序,这是容器技术应用容器引擎docker所解决的问题:即解决了开发与部署环境的差异性。
那么还存在着一个问题,就是应用集群不大的时候,我们可以很好的应对,可当集群规模变大,我们就需要做一些繁琐又无技术含量的软件更新等重复性操作,很消耗人力物力,而且对服务器资源的分配与把控也不能得心应手。kubernetes就是一个为容器化应用提供集群部署和管理的开源工具。
kubernetes的具体优点
高可用,不宕机,自动灾难恢复
灰度更新,不影响业务正常运转
一键回滚到历史版本
方便的伸缩扩展(应用伸缩,机器加减)、提供负载均衡
有一个完善的生态
//学习k8s之前的前置知识docker、linux//
k8s一些概念
master
主节点,控制平台,不需要很高性能,不跑任务,通常一个就行了,也可以开多个主节点来提高集群可用度。
worker
工作节点,可以是虚拟机或物理计算机,任务都在这里跑,机器性能需要好点;通常都有很多个,可以不断加机器扩大集群;每个工作节点由主节点管理
重要概念 Pod
豆荚,K8S 调度、管理的最小单位,一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。
Kubernetes 组件
kube-apiserver API 服务器,公开了 Kubernetes API
etcd 键值数据库,可以作为保存 Kubernetes 所有集群数据的后台数据库
kube-scheduler 调度 Pod 到哪个节点运行
kube-controller 集群控制器
cloud-controller 与云服务商交互
还在学习中,持续更新中…