一、k8s
kubernetes:k8s----希腊语,舵手,飞行员
1.1、k8s作用:
用于自动部署,扩展,管理容器化部署的应用程序。开源(半开源。)
k8s的底层语言是由go语言。
k8s理解成负责自动化运维管理多个容器化的应用的集群。
谷歌基于go语言开发的。
1.2、k8s的版本
1.18-1.2之间
常用的1.20-----docker
1.24-------container
1.3、k8s的使用场景:
1、docker部署了一个nginx,–cpu,-m一旦访问量增大,nginx有可能沾满了系统资源。
内存告警 ,cpu告警。
运维人员入场,要么对服务器扩容,要么就重新部署服务。对cpu和内存做限制,防止再一次占满整个服务器。
自动化运维管理:k8s
1、多节点部署,不再是单机部署
2、自动完成更新和部署
3、跨节点之间的通信问题
4、k8s有自我修复机制,使得整个容器集群开源再用户的期望状态下运行。
1.4、k8s的特点:
1、自我修复,在节点故障时,或者容器启动失败,节点故障时,会自动把该节点上的容器重新部署到其他节点。
容器启动失败时,启动失败,他会自动的重新启动容器,3次失败后,就认为服务不可用。
在容器启动时,也会检测机制(探针),检测容器是否正常。
确保集群内部的服务能够正常工作。
2、弹性伸缩,在一个容器(pod)占用机器的资源比较高时,k8s会自动增加pod的数量,在资源占用下降时,会自动释放pod的数量。以最小的成本运行服务。(重点)
3、自动发布(滚动发布模式,默认模式)和回滚
k8s在更新的时候,不是一次性的更新所有,而是更新一部分,然后在更新剩余的部分。如果有问题,可以随时回滚。
4、服务发现和负载均衡。
多个容器有一个统一的访问入口,内部地址和统一的对外地址。自动负载均衡所有管理的容器。无需考虑容器的ip地址
5、存储编排,支持外挂存储,内部挂载,内部存储卷,外部挂载,本地存储,也可以公有云,NFS,ceph都可以支持。
6、集中化配置和密钥管理:
k8s大的所有的配置可以加密的形式保存在集群信息中,提供集群的安全性。
7、任务的批量处理
二、核心组件(重点)
架构:主从架构,master----slave模式,所有操作、管理,运维都是在主节点完成。
从节点:node节点,工作节点,负载工作的节点。pod一般在从节点。
2.1、组件:
1、kuber-apiserver
1、kuber-apiserver:这个是整个集群的大脑。每个组件之间的资源请求和调度操作都是通过apiserver完成的,通过api接口发送到各个组件。
api接口:内部的组件和组件之间通信的接口,内部调用方法(代码)(程序与程序之间)
端口:应用和