首页 > 其他分享 >K8s

K8s

时间:2024-07-04 17:57:43浏览次数:10  
标签:容器 控制器 kube Kubernetes controller 应用 K8s

kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。
容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release 的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。
外文名
    kubernetes
别    名
    K8s
内容简介
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
产品特点
    可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
    可扩展: 模块化,插件化,可挂载,可组合
    自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

产品组件

    1Master 组件
        1.1kube-apiserver
        1.2ETCD
        1.3kube-controller-manager
        1.4cloud-controller-manager
        1.5kube-scheduler
        1.6插件 addons
        1.6.1DNS
        1.6.2用户界面
        1.6.3容器资源监测
        1.6.4Cluster-level Logging
    2节点(Node)组件
        2.1kubelet
        2.2kube-proxy
        2.3docker
        2.4RKT
        2.5supervisord
        2.6fluentd

本文介绍了Kubernetes集群所需的各种二进制组件。
Master 组件
Master组件提供集群的管理控制中心。
Master组件可以在集群中任何节点上运行。但是为了简单起见,通常在一台VM/机器上启动所有Master组件,并且不会在此VM/机器上运行用户容器。请参考构建高可用群集以来构建multi-master-VM。
kube-apiserver
kube-apiserver用于暴露Kubernetes API。任何的资源请求/调用操作都是通过kube-apiserver提供的接口进行。请参阅构建高可用集群。
ETCD
etcd是Kubernetes提供默认的存储系统,保存所有集群数据,使用时需要为etcd数据提供备份计划。
kube-controller-manager
kube-controller-manager运行管理控制器,它们是集群中处理常规任务的后台线程。逻辑上,每个控制器是一个单独的进程,但为了降低复杂性,它们都被编译成单个二进制文件,并在单个进程中运行。
这些控制器包括:

    节点(Node)控制器。
    副本(Replication)控制器:负责维护系统中每个副本中的pod。
    端点(Endpoints)控制器:填充Endpoints对象(即连接Services&Pods)。
    Service Account和Token控制器:为新的Namespace创建默认帐户访问API Token。

cloud-controller-manager
云控制器管理器负责与底层云提供商的平台交互。云控制器管理器是Kubernetes版本1.6中引入的,还是Alpha的功能。
云控制器管理器仅运行云提供商特定的(controller loops)控制器循环。可以通过将--cloud-providerflag设置为external启动kube-controller-manager ,来禁用控制器循环。
cloud-controller-manager 具体功能:

    节点(Node)控制器
    路由(Route)控制器
    Service控制器
    卷(Volume)控制器

kube-scheduler
kube-scheduler监视新创建没有分配到Node的Pod,为Pod选择一个Node。
插件 addons
插件(addon)是实现集群pod和Services功能的。Pod由Deployments,ReplicationController等进行管理。Namespace 插件对象是在kube-system Namespace中创建。
DNS
虽然不严格要求使用插件,但Kubernetes集群都应该具有集群 DNS。
群集 DNS是一个DNS服务器,能够为 Kubernetes services提供 DNS记录。
由Kubernetes启动的容器自动将这个DNS服务器包含在他们的DNS searches中。
用户界面
kube-ui提供集群状态基础信息查看。
容器资源监测
容器资源监控提供一个UI浏览监控数据。
Cluster-level Logging
Cluster-level logging,负责保存容器日志,搜索/查看日志。
节点 Node 组件
节点组件运行在Node,提供Kubernetes运行时环境,以及维护Pod。
kubelet
kubelet是主要的节点代理,它会监视已分配给节点的pod,具体功能:

    安装Pod所需的volume。
    下载Pod的Secrets。
    Pod中运行的 docker(或experimentally,rkt)容器。
    定期执行容器健康检查。
    Reports the status of the pod back to the rest of the system, by creating amirror podif necessary.
    Reports the status of the node back to the rest of the system.

kube-proxy
kube-proxy通过在主机上维护网络规则并执行连接转发来实现Kubernetes服务抽象。
docker
docker用于运行容器。
RKT
rkt运行容器,作为docker工具的替代方案。
supervisord
supervisord是一个轻量级的监控系统,用于保障kubelet和docker运行。
fluentd
fluentd是一个守护进程,可提供cluster-level logging.。

标签:容器,控制器,kube,Kubernetes,controller,应用,K8s
From: https://www.cnblogs.com/cuihongyu3503319/p/18284355

相关文章

  • k8s实战 ---- pod 基础
    如果你对k8s还不了解,可以看下前文k8s实战1----初识    (https://www.cnblogs.com/jilodream/p/18245222)什么是pod,pod在英文中是豌豆荚、分离仓、集装箱的意思。在k8s中,pod就是融合一堆容器实例的一个大容器(称之为集合更贴切)。K8s所能部署的最小单元就是容器,就是pod,一......
  • K8S学习教程(二):在 PetaExpress KubeSphere容器平台部署高可用 Redis 集群
    前言Redis是在开发过程中经常用到的缓存中间件,为了考虑在生产环境中稳定性和高可用,Redis通常采用集群模式的部署方式。在制定Redis集群的部署策略时,常规部署在虚拟机上的方式配置繁琐并且需要手动重启节点,相较之下,使用PetaExpress提供的Kubernetes(k8s)服务进行Redis集......
  • k8s组件有哪些?
    Kubernetes是谷歌公司一款开源的容器编排管理工具,它的本质是一组服务器集群管理工具,能够在集群的每个节点上运行特定的程序,它的目的是实现资源的管理自动化,主要提供了自我修复,弹性伸缩、服务发现、负载均衡、版本回退、存储编排等功能。1、自我修复:一个容器崩溃,会立......
  • k8s-核心组件
    核心组件组成Kubernetes主要由以下几个核心组件组成:-etcd:保存整个集群的状态-APIServer:提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制-ControllerManager:负责维护集群的状态,如故障检测、自动扩展、滚动更新等-Scheduler:负责资源的调度......
  • VMware vSphere Tanzu部署_12_下载使用Tanzu-K8S工具
    下载使用Tanzu-K8S工具Tanzu-K8S工具支持windows、linux、macoswindows下载安装tanzu-k8s工具访问命名空间内的链接到CLI工具链接将二进制文件复制到windows内的system32文件夹内linux下载安装tanzu-k8s工具#192.168.203.194这个IP地址替换为您环境下看到的IP地址......
  • k8s 模型
    K8s(Kubernetes)模型主要涉及到其架构、组件以及资源对象的管理方式。以下是对K8s模型的详细解析:一、K8s架构与组件K8s的架构可以大致分为两部分:控制平面(ControlPlane)和节点(Nodes)。控制平面:控制平面是K8s集群的管理核心,负责整个集群的调度、状态管理和资源分配。它主要由以下......
  • k8s安装详细介绍
    Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。下面是一个关于如何安装Kubernetes的简要介绍,包括一些基本步骤和注意事项。安装Kubernetes的方法有很多种,这里将以使用kubeadm工具进行安装为例,因为这是官方推荐且相对简便的安装方式之......
  • Kubernetes k8s pod 生命周期 init容器(初始化容器) 钩子配置
    目录Pod生命周期Init容器 初始化容器使用案例 初始化容器生产应用主容器 容器钩子:postStart和preStop文档中的YAML文件配置直接复制粘贴可能存在格式错误,故实验中所需要的YAML文件以及本地包均打包至网盘链接:https://pan.baidu.com/s/1RMVT8hj_rELprNeTlX10Vg ......
  • 39、k8s-数据存储-基本存储-EmptyDir(空目录)
    EmptyDirEmptyDir(空目录)是最基础的Volume类型、一个EmptyDir就是Host上的一个空目录、EmptyDir是在pod分配到Node时创建的、它的初始化内容时空的、并且无需指定宿主机上对应的目录文件、因为kubernetes会自动分配一个目录、当pod销毁时、EemptyDir中的数据也会备永久的删除。......
  • 45、k8s-数据存储-配置存储-secret-(用于存储配置信息的-比configMap安全)-密文存储
    作用:用于存储敏感信息、例如密码、密钥、证书等实验:创建secret、再将secret挂载到容器里去、使用容器查看secret存储的信息1、先使用base64对数据进行编码·echo-n'admin'|base64---------------------------YWRtaW4=---------------------------......