了解K8S

一、什么是K8S?干什么的?

  k8s全称(kubernetes),是一个docker容器管理工具,适合跑微服务架构。

  假如在微服务,你有100万用户,是不是起码得100台云主机?100台云主机你怎么部署?运行着 ,主机停电死掉了,你怎么知道哪些死掉了?停机上的主机的服务是不是要移动到正常的主机上?100台主机的运维 K8S就诞生了!那么100台主机对于操作的人来说,也就相当于1台主机。

  一开始只有docker,因为有docker才有k8s,k8s特点就是所有主机上都装上docker,然后用k8s把这些连接起来。

二、k8s的核心功能

  • 自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。
  • 弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量。
  • 服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。
  • 滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

三、k8s架构

了解K8S

  k8s 集群的架构,从左到右,分为两部分,第一部分是 Master 节点(也就是图中的 Control Plane),第二部分是 Node 节点。

Master 节点一般包括四个组件,apiserver、scheduler、controller-manager、etcd,他们分别的作用:

  • Apiserver:上连其余组件,下接ETCD,提供各类 api 处理、鉴权,和 Node 上的 kubelet 通信等,只有 apiserver 会连接 ETCD;
  • Scheduler:调度,打分,分配资源;
  • Controller-manager:控制各类 controller,通过控制器模式,致力于将当前状态转变为期望的状态;
  • Etcd:整个集群的数据库,也可以不部署在 Master 节点,单独搭建。

Node 节点一般也包括三个组件,docker,kube-proxy,kubelet,他们分别作用:

  • Docker:具体跑应用的载体;
  • Kubelet:agent,负责管理容器的生命周期;
  • Kube-proxy:主要负责网络的打通,早期利用 iptables,现在使用 ipvs技术。

总结一下就是 k8s 集群是一个由两部分组件 Master 和 Node 节点组成的架构,其中 Master 节点是整个集群的大脑,Node 节点来运行 Master 节点调度的应用。

上一篇:01-python实现自动化接口测试基础知识(有网和离线情况下安装requests库)


下一篇:爬取超级鹰当前用户的个人详情页数据