k8s学习-资源管理
在云计算领域,资源可被分为计算资源、网络资源、存储资源三大类,也可被分别称作为计算云、网络云、存储云。在以容器为核心的云平台上,应用容器镜像也是一种资源。
一、计算资源管理
计算资源在云平台上主要指应用程序运行时所需的资源,也主要指CPU资源和内存资源。由于云平台默认的基本要求是为多个租户提供服务,所以在同一台工作节点的服务器(物理机或虚拟机)上就有可能同时运行多个租户的应用容器、这些应用容器如何共享该节点上的CPU和内存资源,以及如何避免不必要的资源争抢,是云平台首先要解决的问题。
在k8s体系中,对资源资源的管理可以在Namespace、Pod、Container三个级别完成,同时可以根据应用计算资源的需求和限制,提供不同级别的服务质量管理。
1. 在一个大型企业中,将企业各数据中心的服务器全部纳入一个K8s集群中管理肯定是不切实际的。
需要容灾备份的数据中心提供服务,保证业务的高可用性。
多个数据中心分布在不同的地区,数据中心之间的网络延迟较长。
服务器由不同的云服务商托管,相互之间无法直接互联互通。
多个数据中心的安全策略和安全等级不同。
基于以上因素,我们通常需要部署多个k8s集群,来共同完成应用的发布和运行。
在容器云平台上,对资源的管理首先是将多个k8s集群纳入管理,以便能够对所有资源进行统一分配和管理。
将多个k8s集群纳入统一管理的常见方案有如下两种。
1)通过对接每个k8s集群的Master,来完成集群内的资源管理和应用部署管理。
容器云平台通过k8s master 提供的Restful API 去控制整个集群,包括对各种k8s集群 资源对象的创建、更新、删除、查询等管理功能。还需要完成应用的多集群部署管理、
跨集群的服务发现和自动灾难切换等多集群管理,并设置相应的网络策略,以保护各集群的Master不被攻击。
2)通过使用统一的 Federation控制平面来对多个k8s集群进行统一管理。
Federation来自k8s子项目,也被称作集群联邦。Federation的设计目标是对多个k8s集群进行统一管理,将用户的应用部署到不同地域的数据中心或者云环境下,通过动态优化
部署来节约运行成本,屏蔽了后端的各k8s子集群,向客户提供一个统一的管理入口。
Federation 控制平面 “封装” 了多个k8s集群的master角色,提供了一个统一的Master ,包括Federation API Server 、Federation Controller Manager,用户可以像操作单个集群
一样操作 Federation;还统一管理了全部k8s集群的DNS、ConfigMap,并将数据保存在etcd数据库中。
在方便用户统一操作多个K8s集群的同事,Federation也带来了一些新问题
为确保所有集群的运行状态符合预期,Federation控制平面会持续监控所有集群,导致网络开销和成本显著增加。
Federation 控制平台是 “中心化” 的总控节点,一旦出现问题,就可能会影响到所有集群。
Federation 出现较晚,还很不成熟,目前k8s中资源对象只有一部分在Federation中是可用的。
二、 资源分区管理
在容器云平台纳管了全部k8s集群之后,平台管理员就可以进行资源分配的工作了,为多个租户提供应用部署环境。
在一个k8s集群中,提供计算资源的实体被称为Node,也叫工作节点。Node既可以是物理服务器,也可以是虚拟服务器。每个Node都提供了CPU、内存、网络、磁盘等资源,
应用系统则是这些资源的使用者。
为支持多租户模型,k8s的Namespace提供了一种将一个集群进一步划分为多个虚拟分区进行管理的方法。每个Namespace为某个租户提供的一个逻辑上的分区,与其他租户的
应用相互隔离、互补干扰。与互联网的域名类似
k8s学习-资源管理的更多相关文章
- ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建
当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...
- ASP.NET Core on K8S学习初探(3)部署API到K8S
在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...
- ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览
在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S ...
- k8s学习 - API
k8s学习 - API 之前对k8s并没有很深入的了解,最近想把手头一个项目全部放到k8s上,以方便部署,需要研究.这里记录一下自己研究过程中头脑中的理解. k8s 和 docker 首先,需要先理解 ...
- k8s学习 - 概念 - master/node
k8s学习 - 概念 - master/node 在k8s中,有各种各样的概念和术语.这些概念是必须要学习和掌握的.我们先罗列下所有概念,然后再一个个看具体实例. 大概说一下这些概念: Master: ...
- k8s学习 - 概念 - Pod
k8s学习 - 概念 - Pod 这篇继续看概念,主要是 Pod 这个概念,这个概念非常重要,是 k8s 集群的最小单位. 怎么才算是理解好 pod 了呢,基本上把 pod 的所有 describe ...
- k8s学习 - 概念 - ReplicationController
k8s学习 - 概念 - ReplicationController 我们有了 pod,那么就需要对 pod 进行控制,就是同一个服务的 podv我需要启动几个?如果需要扩容了,怎么办?这里就有个控制 ...
- k8s学习 - 概念 - ReplicaSet
k8s学习 - 概念 - ReplicaSet 首先,ReplicaSet 和 ReplicationController 基本上一样,除了上篇说到的selector有不同之外,没有啥区别.(官网也是 ...
- k8s学习 - 概念 - Deployment
k8s学习 - 概念 - Deployment 有了 ReplicaSet 还需要有 Deployment 的原因是希望有一个控制器能管理部署更新时候的版本控制问题.一个 Deployment 可以管 ...
随机推荐
- Install Weblogic12C
1. 安装JDK软件 1.1)jdk版本选择 由于jdk编译出class文件是一个二进制文件,其中前四个字节是magic位,第五到第六个字节对应于minor和major.class文件的minor和m ...
- 【转】Android 内核初识(6)SystemServer进程
简介 SystemServer的进程名实际上叫做“system_server”,通常简称为SS. 系统中的服务驻留在其中,常见的比如WindowManagerServer(Wms).ActivityM ...
- MySQL IFNULL基本用法
MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFNULL函数返回第二个参数. 两个参数可以是文字值或表达式. 以下说明了IFNU ...
- python基础整理2——Linux
Linux 目录 /:根目录,一般根目录下只存放目录 /bin./usr/bin: 可执行二进制文件的目录,如常用的命令ls.tar.mv.cat等 /boot:放置linux系统启动时用到的一些文件 ...
- 关于vmware workstation10常见问题
简单的说明:win7和win10的解决办法都是这个,都可以用这个解决. 这是一个共性的问题. 出现这个问题的原因是: a.要么是系统更新没有及时正确的关闭虚拟机导致的; b.没有及时将虚拟机手动关闭再 ...
- C++矩阵库 Eigen 简介
最近需要用 C++ 做一些数值计算,之前一直采用Matlab 混合编程的方式处理矩阵运算,非常麻烦,直到发现了 Eigen 库,简直相见恨晚,好用哭了. Eigen 是一个基于C++模板的线性代数库, ...
- python apsheduler cron 参数解析
from:https://apscheduler.readthedocs.io/en/v2.1.2/cronschedule.html Cron-style scheduling This is th ...
- P2280 [HNOI2003]激光炸弹
题目描述 输入输出格式 输入格式: 输入文件名为input.txt 输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi . 输出格式: 输出文件名为out ...
- vue请求本地自己编写的json文件。
1.第一步,这是目录结构 2.接下来是build/webpack.dev.conf.js文件需要配置的内容 代码: //vue配置请求本地json数据const express = require(' ...
- Scala(三):类
类:Class 1.简单类和无参方法 2.带getter和setter属性 3.只带getter属性 4.对象私有字段 5.Bean属性 6.辅助构造器 7.主构造器 8.嵌套类 1.简单类和无参方法 ...