kubernetes(k8s)容器集群管理系统
kubernetes
文章目录
- kubernetes
- 什么是k8s?
- 为什么需要K8S?
- 多机编排管理容器
- k8s的特性
- Kubernetes集群架构与组件
- 核心组件
- Master组件
- Kube-apiserver
- Kube-controller-manager
- Kube-scheduler
- 配置存储中心
- Node组件
- Kube-Proxy
- docker或rocketdwf1
- 小结
- Kubernetes核心概念
- Pod
- Pod控制器
- Label
- Label 选择器(Label selector)
- service
- Ingress
- Name
- Namespace
- 常见的K8s按照部署方式:
- Minikube
- Kubeadmin
- 二进制安装部署
- 常见的K8s按照部署方式:
- Minikube
- Kubeadmin
- 二进制安装部署
什么是k8s?
kubernetes 是一个可移植、可扩展的开源平台,用于 管理容器化工作负载和服务,有助于声明式配置和自动化。它拥有庞大且快速发展的生态系统。Kubernetes 服务、支持和工具随处可见。
Kubernetes 的名字来源于希腊语,意思是舵手或飞行员。K8s 作为缩写的结果来自计算“K”和“s”之间的八个字母。Google 于 2014 年开源了 Kubernetes 项目。Kubernetes 结合了 Google 超过 15 年的大规模运行生产工作负载的经验以及来自社区的最佳创意和实践。
参考文献官网:https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/,
主要介绍kubernetes的基本概念以及应用场景,K8s的设计理念,以及K8s能干什么不能干什么。
作用:
用于自动部署、扩展和管理"容器化( containerized)应用程序"的开源系统。
可以理解成KBS是负责自动化运维管理多个容器化程序(比如 Docker)的集群,是一个生态极其丰富的容器编排框架工具。
由来:
KBS由google的Borg系统(博格系统,google内部使用的大规模容器编排工具)作为原型,后经co语言延用Borg的思路重写并捐献毁CNCF基金会开源。
含义:
词根源于希腊语的舵手、飞行员
为什么需要K8S?
试想下传统的后端部署办法:把程序包(包括可执行二进制文件、配置文件等)放到服务器上,接着运行启动脚本把程序跑起来,同时启动守护脚本定期检查程序运行状态、必要的话重新拉起程序。
设想一下,如果服务的请求量上来,已部署的服务响应不过来怎么办?传统的做法往往是,如果请求量、内存、CPU超过阈值做了告警,运维人员马上再加几台服务器,部署好服务之后,接入负载均衡来分担已有服务的压力。这样问题就出现了:从监控告警到部署服务,中间需要人力介入!那么,有没有办法自动完成服务的部署、更新、卸载和扩容、缩容呢?而这就是K8S要做的事情:自动化运维管理容器化(Docker)程序。
K8S的目标是让部署容器化应用简单高效。
K8s解决了裸跑 Docker 的若干痛点:
单机使用,无法有效集群
随着容器数量的上升,管理成本攀升
没有有效的容灾、自愈机制
没有预设编排模板,无法实现快速、大规模容器调度
没有统一的配置管理中心工具
没有容器生命周期的管理工具
没有图形化运维管理工具
K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系列功能。
多机编排管理容器
docker swam
apache-mesos
kubernetes
k8s的特性
**弹性伸缩:**使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小成本运行服务。
**自我修复:**在节点故障时重新启动失败的容器,替换和重新部署,保证预期的副本数量;杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。
**服务发现和负载均衡:**K8S为多个容器提供一个统一访问入口(内部IP地址和一个DNS名称),并且负载均衡关联的所有容器,使得用户无需考虑容器IP问题。
自动发布(默认滚动发布模式)和回滚:K8S采用滚动策略更新应用,一个更新一个Pod,而不是同时删除所有的Pod,如果更新过程中出现问题,将回滚更改,确保升级不收影响业务。
**集中化配置管理和密钥管理:**管理机密数据和应用程序配置,而不需要把敏感数据暴露在镜像里,提高敏感数据安全性,并可以将一些常用的配置存储在K8S中,方便应用程序使用。
**存储编排:**支持外挂存储并对外挂存储资源进行编排,挂载外部存储系统,无论是来自本地存储,公有云(如:AWS),还是网络村存储(如:NFS、Glusterfs、Ceph)都作为集群资源的一部分使用,极大提高存储使用灵活性。
**任务批量处理运行:**提供一次性任务,定时任务,满足批量数据处理和分析的场景。
Kubernetes集群架构与组件
K8S是属于主从设备模型(Master-Slave架构),即有 Master节点负责集群的调度、管理和运维,Slave节点是集群中的运算工作负载节点。
在K8S 中,主节点一般被称为Master节点,而从节点则被称为 worker Node 节点,每个 Node 都会被Master分配一些工作负载。
Master组件可以在群集中的任何计算机上运行,但建议Master节点占据一个独立的服务器。因为Master
是整个集群的大脑,如果Master所在节点宕机或不可用,那么所有的控制命令都将失效。除了Master,在K8S
集群中的其他机器被称为Worker Node节点,当某个Node 宕机时,其上的工作负载会被Master自动转移到其他节点上去。
核心组件
Master组件
Kube-apiserver
用于暴露Kubernetes API,任何资源请求或调用操作都是通过 kube-apiserver提供的接口进行。以HTTP Restful API提供接口服务,所有对象资源的增删改查和监听操作都交给 API Server 处理后再提交给 Etcd存储。
可以理解成API Server 是KBS 的请求入口服务。API Server 负责接收K8S所有请求(来自UI界面或者CLIT命令行工具),然后根据用户的具体请求,去通知其他组件干活。可以说**API Server 是K8S集群架构的大脑。**
Kube-controller-manager
运行管理控制器,是K8S集群中处理常规任务的后台线程,是K8S集群里所有资源对象的自动化控制中心。在K8s集群中,一个资源对应一个控制器,而 Controller manager就是负责管理这些控制器的。
由一系列控制器组成,通过 API Server监控整个集群的状态,并确保集群处于预期的工作状态,比如当某个Node意外宕机时,Controller Manager 会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态
这些控制器主要包括:
Node Controller (节点控制器):负责在节点出现故障时发现和响应。
**Replication Controller(副本控制器)**∶负责保证集群中一个Rc(资源对象Replication Controller)所关联的 pod副本数始终保持预设值。可以理解成确保集群中有且仅有N个Pod实例,N是RC中定义的 Pod副本数量。
Endpoints Controller(端点控制器)︰填充端点对象(即连接Services和 Pods),负责监听Service和对应的 Pod副本的变化。可以理解端点是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道它的endpoint。
Service Account & Token Controllers(服务帐户和令牌控制器)∶为新的命名空间创建默认帐户和API访问令牌。
ResourceQuota Controller(资源配额控制器)∶确保指定的资源对象在任何时候都不会超量占用系统物理资源。
**Namespace Controller(命名空间控制器)
kubernetes(k8s)容器集群管理系统相关推荐
- K8s容器集群管理系统
https://jimmysong.io/kubernetes-handbook/ 转载于:https://www.cnblogs.com/wangjizhen/p/10320626.html
- 初识容器集群管理系统 Kubernetes
什么是 Kubernetes Kubernetes 是 Google 2014 年创建管理的,是 Google 10 多年大规模容器管理技术 Borg 的开源版本. Kubernetes 是容器集群管 ...
- Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述
文章目录 Linux云计算虚拟化-Kubernetes 容器集群管理系统基础概念讲述 1. kubernetes简介 2. k8s常见组件介绍 3. k8s原理持续更新...... Linux云计算虚 ...
- (转帖)开源容器集群管理系统Kubernetes架构及组件介绍
最近在搞Docker还有她的管理工具,选型Kuberetes后,被她的术语和概念搞得晕头转向...看了一篇文章还不错,放到这里分享出来. 地址:http://www.linuxidc.com/Linu ...
- Docker学习总结(19)——Google开源的容器集群管理系统Kubernetes介绍
Kubernetes是Google开源的容器集群管理系统.它构建Ddocker技术之上,为容器化的应用提供资源调度.部署运行.服务发现.扩容缩容等整一套功能,本质上可看作是基于容器技术的mini-Pa ...
- 开源容器集群管理系统Kubernetes架构及组件介绍
Together we will ensure that Kubernetes is a strong and open container management framework for any ...
- Kubernetes容器集群管理系统调研与对比
Kubernetes简介 1.1 什么是Kubernetes 首先,Kubernetes是一个全新的基于容器技术的分布式架构领先方案.Kubernetes是Google开源的容器集群管理系统,其提供应 ...
- Docker应用:Kubernetes(容器集群)
Docker应用:Kubernetes(容器集群) 原文:Docker应用:Kubernetes(容器集群) 阅读目录: Docker应用:Hello World Docker应用:Docker-co ...
- 2022版使用云服务器搭建公网k8s容器集群
总体流程一览 主要流程如下: 1.准备云主机,升级CentOS系统到7.9 2.所有节点上安装Docker和Kubeadm,拉取相关镜像 3.在Master节点初始化集群,包括kubectl和部署CN ...
最新文章
- MDFR:基于人脸图像复原和人脸转正联合模型的人脸识别方法
- 使用 Docker 让传统 .NET 应用程序现代化
- 关于gcc扩展中的宏定义中用 # 和 ##
- JDBC连接数据库(Java DataBase Connectivity,java)
- python apriori算法 sklearn_R 和 Python (numpy scipy pandas) 用于统计学分析,哪个更好?...
- java 将map转List对象
- AVX2指令集浮点乘法性能分析
- 无法定位程序输入点K32Get Module File Name Ex于动态链接库KERNEL32.dll上 的错误解析
- 记录第二次进行的助教培训-评分
- html+css实现星系图
- iOS项目集成unity(2020+ 版本)
- 下载微软官方原版系统镜像
- 和画意思相近的字_写出两个与画横线词语意思相近的四字词语: ——青夏教育精英家教网——...
- 3G时会有两次 Activate PDP context request消息
- 真容慧表NxCells 构建模板 管理数据表详解
- 路由器的硬件测试软件,刚做的简易网线测试工具 - 无线路由器硬件改造以及故障维修 - 恩山无线论坛 - Powered by Discuz!...
- 服务器禁用账号登录,服务器如何防止被爆破账号密码
- 群晖NAS搭建Docker私服
- 神州数码项目管理最佳实践之四
- 如何写好一篇拆书稿? | 知乎写作课
热门文章
- kafka消息中间件
- 记一次MySQL数据库备份恢复演练实验
- 交叉编译libX11
- java list pair_JavaTuples(元组)中的Pair类 - Break易站
- 【分集/不分集OFDM】分集/不分集多跳OFDM信道容量,分别考虑功率分配带子载波配对,功率分配不带子载波配对等
- 【向生活低头】拷贝文件到文件夹中
- 【TencentOS-tiny】小熊派TencentOS-tiny测试,TencentOS-tiny调度
- 数电实训-八路电子抢答器的设计
- 中国联通和中国电信恐惧中国移动的低频5G,或推进低频频段共享
- v2.2发布,CNC Fanuc、QnA 1E驱动即将到来
- K8s容器集群管理系统