什么是k8s
Kubernetes,简称K8s,是一个开源的容器编排平台,其主要的目的是自动化应用的部署,拓展以及管理。它能帮助你管理容器化的应用,使得服务在不同的主机之间进行调度,从而实现负载均衡,高可用和自动伸缩。
k8s主要组件及其作用
1)Master节点组件
API Server :k8s的前端,提供RESTful接口,是所有资源的操作入口。它是集群的门户,其他组件和用户通过它与集群交互。
etcd:分布式键值存储,用于保存集群的所有数据,比如配置,状态等。确保数据的一致性和高可用性。
Contorller Manager: 运行控制循环来调节集群的状态,如节点控制器,端口控制器,命名空间控制器等,确保集群实际状态与期望状态一致。
Scheduler:负责新创建的或未分配的pod在工作节点上的调度,选择合适的节点运行pod。
2)Node节点组件
Kubelet:负责生命周期管理,可以监听ApI Server指令并执行和报告相应的Pod状态。
Kube-proxy:提供网络代理和负载均衡功能,维护网络规则,允许服务与pod之间的通信。
Container Runtime:运行容器的软件,如docker,containerd等。
3)高层组件
Pod:k8s中最小的部署单位,通常包含一个或多个容器,运行在同一个网络命名空间,使用相同的存储卷。
Service:提供Pod的永久访问方法,通过标签选择器将多pod指定未一个服务,实现负载均衡。
Deployment:声明式管理Pod和ReplicaSet(副本集),提供更新和回滚机制,确保pod达到期望的状态。
Namespace: 提供逻辑隔离机制,用于同一集群中资源的分组和隔离。
ConfigMap和Secret:用于存储配置数据和敏感信息,分别以非加密和加密方式存储。