k8s>基础认识

k8s是一个分布式集群管理平台。
Kubernetes优势: 容器编排 轻量级 开源 弹性伸缩 负载均衡
我的环境:Linux CentOS-7(VMware虚拟机)


k8s的安装

kubernets的作用(管理容器)
  • 真实的生产环境应用会包含多个容器,而这些容器还很可能会跨越多个服务器主机部署。
    Kubernetes 提供了为那些工作负载大规模部署容器的编排与管理能力。Kubernetes 编排让你能够构建多容器的应用服务,在集群上调度或伸缩这些容器,以及管理它们随时间变化的健康状态。

Kubernets中的一些基础名词
  • Master(主节点): 控制 Kubernetes 节点的机器,也是创建作业任务的地方。

  • Node(节点): 这些机器在 Kubernetes 主节点的控制下执行被分配的任务。

  • pod:实例,
    一个Pod代表集群上正在运行的一个进程。Pod是Kubernetes创建或部署的最小/最简单的基本单位。 由一个或多个容器(container)构成的>集合,作为一个整体被部署到一个单一节点。同一个 pod 中的容器共享 IP 地址、进程间通讯(IPC)、主机名以及其它资源。Pod 将底层>容器的网络和存储抽象出来,使得集群内的容器迁移更为便捷。

  • volume:存储卷,
    持久化保存容器的数据。是k8s数据卷,常见的数据卷有4种类型,即EmptyDir,HostDir,NFS,Secret。

  • Replication controller: 拷贝控制器,
    Replication Controller简称RC,控制一个 pod 在集群上运行的实例数量。它能够保证Pod持续运行,并且在任何时候都有指定数量的Pod副本,在此基础上提供一些高级特性,比如滚动升级和弹性伸缩,可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。

  • Service:微服务,
    定义了一个服务的多个pod逻辑合集和访问pod的策略;
    将服务内容与具体的pod分离。Kubernetes 服务代理负责自动将服务请求分发到正确的pod处,不管pod移动到集群中的什么位置,甚至可以被替换掉,仍然不会影响到服务请求的分发。

  • Kubelet
    这个守护进程运行在各个工作节点上,负责和master节点进行通信,获取容器列表,保证被声明的容器已经启动并且正常运行。

  • kubectl
    是操作kubernets常用和最成熟的途径**: 这是 Kubernetes 的命令行配置工具。

  • namespace:命名空间,
    在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。

  • Lable:标签,
    在为对象定义好Label后,其他对象就可以通过Label来对对象进行引用。一个对象可以有任意数量lable
    Label以key/value键值对的形式附加到任何对象上,如Pod,Service,Node,RC(ReplicationController)/RS(ReplicaSet)等。

  • ReplicaSet
    ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector(ReplicationController 仅支持等式)。

  • Deployment:部署
    它为ReplicaSet和Pod的创建提供了一种声明式的定义方法,从而无需像手动创建ReplicaSet和Pod对象。

  • Job:任务
    Job负责处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个Pod成功结束。
    CronJob在Job的基础上加上了时间调度,我们可以:在给定的时间点运行一个任务,也可以周期性地在给定时间点运行。

  • helm:Kubernetes 应用(服务)的包管理工具
    类似与CentOS的yum。
    对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
    对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。

  • chart:说明
    chart 由一系列文件组成,这些文件描述了 Kubernetes 部署应用时所需要的资源,
    比如 Service、Deployment、PersistentVolumeClaim、Secret、ConfigMap 等。

  • PV/PVC
    PV是群集中的资源。PVC是对这些资源的请求,并且还充当对资源的检查。
    使用目的:实现存储的持久化,在k8s中并非绑定宿主机的目录即为存储持久化


docker 在 Kubernetes 中的角色
  • 当 kubernetes 把 pod 调度到节点上,节点上的 kubelet 会指示 docker 启动特定的容器。
    接着,kubelet 会通过 docker 持续地收集容器的信息,然后提交到主节点上。
  • Docker 如往常一样拉取容器镜像、启动或停止容器。
    不同点仅仅在于这是由自动化系统控制而非管理员在每个节点上手动操作的。

Kubernets基础架构

在这里插入图片描述

  • ❄️Kubernetes 主控组件(Master) 包含三个进程,都运行在集群中的某个节上,主控组件通常这个节点被称为 master 节点。这些进程包括:
    kube-apiserver,整个系统的数据总线和数据中心。
    kube-controller-manager,集群内部的管理控制中心,
    kube-scheduler,负责Pod调度。在整个系统中起"承上启下"作用。
  • ❄️集群中的每个非master节点都运行两个进程:
    kubelet,和master节点进行通信。
    kube-proxy,一种网络代理,将 Kubernetes 的网络服务代理到每个节点上。
    (Master和Node的交互原理图)
    在这里插入图片描述
  • k8s API Server提供了k8s各类资源对象(pod,RC,Service等)的增删改查等HTTP Rest接口,是整个系统的数据总线和数据中心。
     提供了集群管理的REST API接口,提供其他模块之间的数据交互和通信的枢纽,资源配额控制的入口,有完备的集群安全机制。(工作原理)
     k8s通过kube-apiserver这个进程提供服务,该进程运行在单个k8s-master节点上。默认有两个端口。本地端口默认值8080,安全端口默认值6443。
     通过API Server访问Node、Pod和Service,k8s API Server最主要的REST接口是资源对象的增删改查,另外还有一类特殊的REST接口—k8s Proxy API接口,这类接口的作用是代理REST请求,即kubernetes API Server把收到的REST请求转发到某个Node上的kubelet守护进程的REST端口上,由该kubelet进程负责响应。(接口介绍)
  • Controller Manager作为集群内部的管理控制中心,
    负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,
    当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态。
  • scheduler负责Pod调度。在整个系统中起"承上启下"作用。
    承上:负责接收Controller Manager创建的新的Pod,为其选择一个合适的Node。
    启下:Node上的kubelet接管Pod的生命周期。
  • Kubelet在kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。
    kubelet会在API Server上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。是Node上的pod管家。
  • kube-proxy它是实现Kubernetes Service的通信与负载均衡机制的重要组件,
    kube-proxy负责为Pod创建代理服务,从apiserver获取所有server信息,并根据server信息创建代理服务,实现server到Pod的请求路由和转发,从而实现K8s层级的虚拟转发网络。
  • etcd集群管理器的状态存储在一个高度分布的 key/value存储etcd中,是一个可靠的共享存储服务。

Kubernets部署应用程序

在这里插入图片描述

  • ConfigMap,kubernetes提供了的管理配置文件一套方案。
    创建ConfigMap的方式有两种,一种是通过yaml文件来创建,另一种是通过kubectl直接在命令行下创建。
  • Deployment:部署
    它为ReplicaSet和Pod的创建提供了一种声明式的定义方法,从而无需像手动创建ReplicaSet和Pod对象。

secret保存小片敏感数据的k8s资源。
pesistent volume claims持久卷声明,它和Pod类似,Pod消耗Node资源,而PVC消耗PV资源。
volume持久化保存容器的数据,是k8s数据卷,常见的数据卷有4种类型,即EmptyDir,HostDir,NFS,Secret。


参考文献


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值