(一)Kubernetes/K8s 集群架构与组件


K8s相关概念:master/node
master

Master 是 Cluster 的大脑,它的主要职责是调度,即决定将应用放在哪里运行,实现高可用,可以运行多个 Master。
运行的相关组件:
Kubernetes API Server(kube-apiserver),集群的统一入口,各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给APIServer处理后再提交给Etcd存储。
Kubernetes Controller Manager,处理集群中常规后台任务,一个资源对应一个控制器,而ControllerManager就是负责管理这些控制器的。
Kubernetes Scheduler,根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。
etcd Server,分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息

node

Node 的职责是运行容器应用。Node 由 Master 管理,Node 负责监控并汇报容器的状态,并根据 Master 的要求管理容器的生命周期。运行的相关组件如下:

kubelet:是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、Pod挂载数据卷、下载secret、获取容器和节点状态等工作。kubelet将每个Pod转换成一组容器。
kube-proxy:在Node节点上实现Pod网络代理,维护网络规则和四层负载均衡工作。
Docker Engine (docker):Docker引擎,负责本机的容器创建和管理工作。

k8s相关概念:Pod,Controllers,Service,Label,Namespace
pod:

Pod 是 Kubernetes 的最小工作单元。每个 Pod 包含一个或多个容器。Pod 中的容器会作为一个整体被 Master 调度到一个 Node 上运行。(注意:可以把pod想象成豌豆荚,豌豆就是容器,可以有一个或多个。)
说到Pod,简单介绍其概念。首先,Pod运行在一个我们称之为节点(Node)的环境中,这个节点可能是物理机或虚拟机,通常一个节点上上面运行几百个Pod;其次每个Pod运行着一个特殊的被称之为根容器(Pause),和一组用户容器组成,这些业务容器共享根容器(Pause)的网络栈和Volume挂载卷,因此它们之间的通信和数据交换效率更为高效。在设计时我们可以充分利用这一特性将一组密切相关的服务进程放到同一个Pod中。最后需要注意的是并不是每一个Pod和它里面运行的容器都能映射到一个Service上,只有那些提供服务的一组Pod才会被映射成一个服务。
静态Pod & 普通Pod
普通的Pod:
普通Pod一旦被创建,就会被放入到etcd中存储,随后会被Kubernetes Master调度到某个具体的Node上并进行绑定(Binding),随后该Pod 被对应的Node上的kubelet进程实例化成一组相关的docker容器运行起来。
当Pod里的某个容器停止时,Kubernetes会自动检测到这个问题并且重新启动这个Pod (重启Pod里的所有容器),如果Pod所在的Node宕机,则会将这个Node上所有的Pod从新调度到其他节点上。
静态Pod (STatic Pod):
静态Pod不存放在Kubernetes的etcd存储里,而是存放在某个具体的Node上的文件中,并且只在此Node上启动运行。
静态Pod是由kubelet进行管理的仅存在于特定Node上的Pod。他们不能通过API Server进行管理,无法与ReplicationController(RC)、Deployment、或者DaemonSet进行关联,并且kubelet也无法对它们进行健康检查。静态Pod总是由kubelet进行创建的,并且总是在kubelet所在的Node上运行的.

Controllers:

ReplicaSet : 确保预期的Pod副本数量
? Deployment : 无状态应用部署(可以随意的漂移在任意node上运行,不用去读取状态,不用考虑自身的标识,不用考虑存储,典型的如web应用)
? StatefulSet : 有状态应用部署(考虑存储或者网络ID的唯一 如zookeeper,mysql主从)
? DaemonSet : 确保所有Node运行同一个Pod
? Job : 一次性任务
? Cronjob : 定时任务

servers:

? 防止Pod失联
? 定义一组Pod的访问策略

Label :

标签,附加到某个资源上,用于关联对象、查询和筛选.
版本标签:"release" : "stable" , "release" : "canary"...
环境标签:"environment" : "dev" , "environment" : "production"
架构标签:"tier" : "frontend" , "tier" : "backend" , "tier" : "middleware"
分区标签:"partition" : "customerA" , "partition" : "customerB"...
质量管控标签:"track" : "daily" , "track" : "weekly"

Namespace :

命名空间,将对象逻辑上隔离

原文地址:https://blog.51cto.com/1014810/2472768

时间: 2024-10-09 16:40:37

(一)Kubernetes/K8s 集群架构与组件的相关文章

Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 master 服务器的组件有:kube-apiserver.kube-controller-manager.kube-scheduler 因此需要下载k8s master,下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGE

k8s集群架构及基本操作

首先在k8s集群中要知道有两个部署工具:kubeadm:自动化部署k8s集群的工具.kubectl: k8s命令行工具,用于接收用户输入的指令. kubernetes是由什么组成的? 在硬件级别,一个kubernetes集群由很多节点组成,这些节点被分成以下两种类型: 主节点:它承载着kubernetes控制和管理整个集群系统的控制面板 工作节点: 它们运行用户实际部署的应用. 控制面板(master) 控制面板用于控制集群并使它工作.它包含多个组件,组件可以运行在单个主节点上或者通过副本分别部

Kubernetes(K8S)集群在centos7.4下创建

自己在搭Kubernetes(K8S)集群下遇到的坑写一点随笔. 本次采用192.168.60.21,192.168.60.22,192.168.60.23作为需要装的服务器. master需要安装etcd, flannel,docker, kubernetes   192.168.60.21 yum –y install etcd yum –y install flannel yum –y install docker yum –y install kubernetes 分支上安装flanne

kubernetes (K8S) 集群的搭建方式

kubernetes (K8S) 集群的搭建方式有两种: 守护进程模式和容器模式 (请注意看图,不一样的) 容器的编排管理工具,当然推荐使用容器来部署了.不过容器镜像是在 Google 云上的,需要各位各显神通了. container部署: systemd模式部署: 原文地址:https://www.cnblogs.com/liuxgcn/p/11154259.html

k8s集群架构和概念简述

k8s集群一般由master节点.node节点.etcd数据库.独立存储组成.生产环境总,master节台至少有3台,etcd可以安装在单独的服务器上,也可以安装在master节点上.etcd是保存集群状态的数据库. k8s调度的最小逻辑单元是pod,而pod由一个或多个业务容器和一个根容器(Pause 容器)组成,主要有4类pod:1.kube-system空间内的系统pod2.在master上手动创建的pod3.在master上由各控制器自动创建的pod4.在node上手动创建的不受mast

(二)搭建一个完成的Kubernetes/K8s集群v.1.16

单节点集群多节点集群 注意node通过连接loadbalancer 转发到mateter 的apiserver来进行运作的 集群规划: 角色 ip 组件 K8S-master1 192.168.0.101 kube-apiserver kube-controller-manager kube-scheduleretcd K8S-master2 192.168.0.102 kube-apiserver kube-controller-manager kube-scheduleretcd K8S-n

Kubernetes容器集群部署节点组件五)

master端下载kubernetes组件: wget https://storage.googleapis.com/kubernetes-release/release/v1.9.2/kubernetes-server-linux-amd64.tar.gz node端下工kubernetes node组件: wget https://dl.k8s.io/v1.9.2/kubernetes-node-linux-amd64.tar.gz 部署master组件 master操作: 把二制文件移动到

kubernetes(k8s)集群安装calico

添加hosts解析 cat /etc/hosts 10.39.7.51 k8s-master-51 10.39.7.57 k8s-master-57 10.39.7.52 k8s-master-52 下载calico wget http://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/hosted/calico.yaml 下载所需镜像 # 建议下载后 推到自己的镜像仓库 [[email protected

k8s集群搭建

k8s简介 kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写.是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制 k8s的资源对象 master kubernetes里的master指的是集群控制节点,在每个kubernetes集群里都需要有一个master来负责真个集群的管理和控制,在master上运行着以下关键进