首页 > 其他分享 >k8s介绍与重要概念

k8s介绍与重要概念

时间:2023-02-22 10:44:57浏览次数:39  
标签:容器 Kubernetes 介绍 概念 pod k8s Pod 运行

1、k8s介绍

Kubernetes(k8s)是Google开源的容器集群管理系统。

在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

Kubernetes最主要的设计思想是,从更宏观的角度,以统一的方式来定义任务之间的各种关系,并且为将来支持更多种类的任务留足余地。

Kubernetes所擅长的,是按照用户的意愿和整个系统的规则,完全自动化地处理好容器之间的各种关系。这种功能,就是我们经常听到的一个概念:编排

所以说,Kubernetes的本质,是为用户提供一个具有普遍意义的容器编排工具

2、k8s中几个重要概念

1)Cluster(集群)

Cluster是 计算、存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用。

2)Master

Master是cluster的大脑,他的主要职责是调度,即决定将应用放在那里运行。

master运行linux操作系统,可以是物理机或者虚拟机。

为了实现高可用,可以运行多个master。

3)Node

Node的职责是运行容器应用

node由master管理,node负责监控并汇报容器的状态,同时根据master的要求管理容器的生命周期。

node运行在linux的操作系统上,可以是物理机或者是虚拟机。

4)pod

pod是k8s的最小工作单元

每个pod可以包含一个或者多个容器。

pod中的容器会作为一个整体被master调度到一个node上运行。

Pod有两种使用方式,运行单一容器和运行多个容器, 运行单一容器是Kubernetes 最常见的模型,即便是只有一个容器,Kubernetes 管理的也是 Pod 而不是直接管理容器。而pod中运行多个容器的话,这些容器联系必须非常紧密,而且需要直接共享资源

5)controller(控制器)

k8s不会直接创建pod,而是通过controller来管理pod的。

controller中定义了pod的部署特性,比如有几个副本,在什么样的node上运行等。

为了满足不同的业务场景,k8s提供了多种controller,包括Replication Controller(RC)Replica Set (RS)Deploymentdaemonsetstatefulsetjob等。

RC是K8s集群中最早的保证Pod高可用的API对象,通过监控运行中的Pod来保证集群中运行指定数目的Pod副本。

指定的数目可以是多个也可以是1个;少于指定数目,RC就会启动运行新的Pod副本;多于指定数目,RC就会杀死多余的Pod副本。即使在指定数目为1的情况下,通过RC运行Pod也比直接运行Pod更明智,因为RC也可以发挥它高可用的能力,保证永远有1个Pod在运行。

RC是K8s较早期的技术概念,只适用于长期伺服型的业务类型。比如提供高可用的Web服务。

6)Replica Set (RS)

RS是新一代RC,提供同样的高可用能力,区别主要在于RS后来居上,能支持更多种类的匹配模式。

RS对象一般不单独使用,而是作为Deployment的理想状态参数使用。

使用deployment时会自动创建Replica Set ,也就是说deployment是通过Replica Set来管理pod的多个副本的,我们通常不需要直接使用Replica Set 。

7)deployment(部署)

Deployment表示用户对K8s集群的一次更新操作,它是一个比RS应用模式更广的API对象,可以是创建一个新的服务,更新一个新的服务,也可以是滚动升级一个服务。

以K8s的发展方向,未来对所有长期伺服型的的业务的管理,都会通过Deployment来管理。

8)daemonset(后台支撑型服务)

长期伺服型和批处理型服务的核心在业务应用,可能有些节点运行多个同类业务的Pod,有些节点上又没有这类Pod运行;

后台支撑型服务的核心关注点在K8s集群中的节点(物理机或虚拟机),要保证每个节点上都有一个此类Pod运行

节点可能是所有集群节点选定的一些特定节点。

典型的后台支撑型服务包括,存储日志监控等在每个节点上支持K8s集群运行的服务。

9)statefuleset

能够保证pod的每个副本在整个生命周期中名称是不变的,而其他controller不提供这个功能。

当某个pod发生故障需要删除并重新启动时,pod的名称不会发生变化,同时statefulset会保证副本按照固定的顺序启动、更新或者删除。、

10)job

用于运行结束就删除的应用,而其他controller中的pod通常是长期持续运行的。

11)service

deployment可以部署多个副本,每个pod 都有自己的IP,外界就是通过service访问这些副本。

k8s的 service定义了外界访问一组特定pod的方式。service有自己的IP和端口,service为pod提供了负载均衡。

k8s运行容器pod与访问容器这两项任务分别由controller和service执行。

12)namespace

可以将一个物理的cluster逻辑上划分成多个虚拟cluster,每个cluster就是一个namespace。

不同的namespace里的资源是完全隔离的。

Kubernetes 默认创建了两个 Namespace:

  • default -- 创建资源时如果不指定,将被放到这个 Namespace 中。

  • kube-system :Kubernetes 自己创建的系统资源将放到这个 Namespace 中。

标签:容器,Kubernetes,介绍,概念,pod,k8s,Pod,运行
From: https://www.cnblogs.com/guangdelw/p/17143523.html

相关文章

  • K8S部署&DevOps
    一、k8s集群部署1、k8s快速入门1)、简介Kubernetes简称k8s。是用于自动部署,扩展和管理容器化应用程序的开源系统。中文官网:https://kubernetes.io/zh/中文社区:https......
  • fusion app自定义事件源码介绍(上)
    前言文章主要说明在FA中的中文函数的代码实现,不仅要知道用法,更要知其实现的原理。前面的用法为FA中的用法,仅支持在FA中使用,源码可以在其它app中使用。非原创,代码收集整......
  • SparkContext介绍
    想要使用PySpark库完成数据处理,首先需要构建一个执行环境上下文对象,PySpark的执行环境上下文是SparkContext。SparkContext是Spark应用程序的主要入口,其代表与Spark集群的连......
  • Go 中的反射 reflect 介绍和基本使用
    一、什么是反射在计算机科学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候......
  • k8s服务端二进制部署-kubectl
    本文章是 k8s二进制高可用集群部署 的分支。详细步骤请参考目录。二进制下载地址压缩包下载:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG......
  • RabbitMQ(—)基础概念
    一个生产者-消费者模型,主要用于接收、存储和转发消息。可以类比成A寄东西给B,A将包裹送到邮局,邮局根据包裹地址和自己服务区域的地址匹配,打包装车,最后通过快递员送到B手上......
  • k8s多节点二进制部署以及Dashboard UI
    一、多Maser集群架构的了解Kubernetes作为容器集群系统,通过健康检查+重启策略实现了Pod故障自我修复能力,通过调度算法实现将Pod分布式部署,并保持预期副本数,根据Node失效......
  • Flink基本概念及架构
    1、基本概念无界和有界数据。任何类型的数据都可以形成一种事件流。信用卡交易、传感器测量、机器日志、网站或移动应用程序上的用户交互记录,所有这些数据都形成一......
  • 17、神经网络----线性层以及其他层的介绍
    1、正则化层  Normalization Layers对 输入 采用正则化的话,可以加快神经网络的训练速度  也就是通道数的大小2、RecurrentLayers****(特定网络使用)一般用......
  • k8s 控制平面地址修改
    修改kubeadm-configconfigmapkubectleditcm-nkube-systemkubeadm-config对应的位置dataClusterConfigurationcontrolPlaneEndpoint修改kube-proxyc......