K8s -Kubernetes学习

文章引用: https://blog.csdn.net/qq_21187515/article/details/101290820
https://xie.infoq.cn/article/e88daded3d5947a1064a5255f

首先推荐k8s官方的在线实操的交互学习k8s的平台:
https://kubernetes.io/docs/tutorials/kubernetes-basics/

在这里插入图片描述

基础概念

K8s提供的功能:服务发现和负载均衡、存储编排、自动部署和回滚、自动二进制打包、自我修复、密钥与配置管理。
Master
集群的"大脑",Kubernetes里的Master指的是集群控制节点,负责整个集群的管理和控制,基本上接收Kubernetes的所有控制命令,master负责具体的执行过程。master相当于Kubernetes集群的大脑,非常重要(高可用部署建议用3台服务器)。一旦master宕机或者不可用,那么对集群内容器应用的管理都将失效。
运行在master上的组件:

  1. Kubernetes API Server(kube-apiserver)
    Kubernetes API,集群的统一入口,各组件协调者,以HTTP API提供接口服务,Kubernetes里所有资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。

  2. Kubernetes Controller Manager(kube-controller-manager)
    Kubernetes里所有资源对象的自动化控制中心,可以理解为资源对象的大总管

  3. kube-scheduler
    负责资源调度(Pod调度)的进程

Node
work节点,在Kubernetes集群中除了master节点外的机器被称为Node。每个Node都会被Master分配一些工作负载(Docker容器),当某个Node宕机时,其上的工作负载会被Master自动转移到其他Node节点上。
运行在Node上的组件:

  1. kubelet
    kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,负责Pod对应容器的创建、启停等任务。同时与Master密切协作,实现集群管理的基本功能,获取Node节点上Pod的运行状态等

  2. kube-proxy
    在Node节点上实现Pod网络代理,实现Kubernetes Service的通信和负载均衡机制的重要组件。

  3. docker
    Docker引擎,负责本机的容器的创建和管理工作

以下为核心组件:

apiserver:所有服务访问的唯一入口,提供认证、授权、访问控制、API 注册和发现等机制

controller manager:负责维护集群的状态,比如副本期望数量、故障检测、自动扩展、滚动更新等

scheduler:负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上

etcd:一个高可用的键值存储系统,保存了整个集群的状态

kubelet:负责维护容器的生命周期,同时也负责 Volume 和网络的管理

kube-proxy:负责为 Service 提供 cluster 内部的服务发现和负载均衡

Container runtime:负责镜像管理以及 Pod 和容器的真正运行

Replication Controller
简称RC,RC是Kubernetes系统中的核心概念之一。它能够保证Pod持续运行,并且在任何时候都有指定数量的Pod副本,在此基础上提供一些高级特性,比如滚动升级和弹性伸缩

在我们定义了一个RC并将其提交到Kubernetes集群中后,Master上的Controller Manager组件就会得到通知,定期巡检系统中当前存活的目标Pod,并确保目标Pod实例的数量刚好等于此RC的期望值,如果有过多的Pod副本在运行,系统就会停掉一些Pod,过少则会再创建一些Pod。相比传统的IT环境,如果程序意外挂掉,需要手工重启,但是在k8s通过RC,就大大减少这些手工运维工作

ReplicaSet
ReplicaSet 实现了 Pod 的多副本管理。使用 Deployment 时会自动创建 ReplicaSet,也就是说 Deployment 是通过 ReplicaSet 来管理 Pod 的多个副本,所以我们通常不需要直接使用 ReplicaSet。
注:
1.Replication Controller由于与Kubernetes代码中的模块Replication Controller同名,并且“Replication Controller”无法准确表达它的本意,所以在Kubernetes1.2中,升级为另外一个新概念——Replica Set,官方解释为“下一代的RC”
2.我们很少单独使用Replica Set,它主要被Deployment这个更高层的资源对象所使用。

Deployment
应用管理者,是用于部署应用的对象,Deployment内部使用了Replica Set来实现的,我们可以把Deployment看做RC的一次升级

注:
创建Deployment对象后,master会根据Deployment对象的配置文件去描述应用,应用名称,使用的镜像名称,需要几个实例,多少内存,多少CPU资源

Pod
Pod 是一组容器(当然也可以只有一个)容器本身就是一个小盒子了,Pod 相当于在容器上又包了一层小盒子。Pod是Kubernetes的最小调度单位。

注: Pod中的容器共享数据卷volume Pod中的容器共享IP地址和端口

Service
Service是一组逻辑pod的抽象,为一组pod提供统一入口,用户只需与service打交道,service提供DNS解析名称,负责追踪pod动态变化并更新转发表,通过负载均衡算法最终将流量转发到后端的pod。Kubernetes里的每个Service其实也可以理解为我们的微服务架构中的一个微服务。

Service对外提供多种入口:

  1. ClusterIP:Service在集群内的唯一ip地址,虚拟的IP,只能在 Kubernetes集群里访问。通过ClusterIP,负载均衡的访问后端的Pod
  2. NodeIP+NodePort:Service会在集群的每个Node上都启动一个端口,通过NodeIP:NodePort访问后端的Pod

注:
1.Service负责服务发现,找到每个Pod,不管Deployment的Pod有多少个,不管它是更新,销毁还是重建,Service总是能发现并维护好它的ip列表。
2.kube-proxy是kubernetes核心组件,运行在集群中每一个节点上,负责监控集群中service、endpoint变更,维护各个节点上的转发规则,是实现servcie功能的核心部件。

Label
标签,一个Label是一个key=value的键值对。Label可以被附加到各种资源对象上,例如Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label。
Volume
Volume(存储卷)Volume是Pod中能够被多个容器共享的磁盘目录。我们知道,默认情况下Docker容器中的数据都是非持久化的,在容器消亡后数据也会消失。因此Docker提供了Volume机制以便实现数据的持久化。Kubernetes中Volume的概念与Docker中的Volume类似,但不完全相同。
Kubernetes提供了非常丰富的Volume类型:

  1. emptyDir:临时空间,Pod分配到Node时创建,无须指定宿主主机上对应的目录,在Kubernetes会自动分配当前Node的一个目录,当Pod被移除时,emptyDir中的数据也会永久删除。
  2. hostPath:为Pod挂载宿主主机上的文件或目录。用于数据永久保存。在不同的Node上具有相同配置的Pod,可能会因为宿主机上的目录和文件不同而导致Volume上的目录和文件的访问结果不一致。
  3. gcePersistentDisk:使用谷歌公有云提供的永久磁盘。数据永久保存。
  4. NFS:NFS 是 Network File System 的缩写,即网络文件系统。Kubernetes 中通过简单地配置就可以挂载 NFS 到 Pod 中,而 NFS 中的数据是可以永久保存的,同时 NFS 支持同时写操作。k8s挂载NFS
  5. Persistent Volume:简称PV,就是网盘,网络存储,不属于任何Node,但可以在每个Node上访问。

Namespace
命名空间,Namespace在很多情况下用于实现多租户的资源隔离。Namespace通过集群内部的资源对象"分配"到不同的Namespace中,形成逻辑上纷纷组的不同项目,便于不同的分组共享使用整个集群的资源的同时还能被分别管理。
ConfigMap
ConfigMap顾名思义,是用于保存配置数据的键值对,可以用来保存单个属性,也可以保存配置文件。就是为了让镜像 和 配置文件解耦,以便实现镜像的可移植性和可复用性,因为一个configMap其实就是一系列配置信息的集合,将来可直接注入到Pod中的容器使用,而注入方式有两种,一种将configMap做为存储卷,一种是将configMap通过env中configMapKeyRef注入到容器中.

应用部署

文章:https://blog.csdn.net/qq_21187515/article/details/112320972

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值