K8S-概述

k8s是什么?

go语言开发的开源的跨主机的容器编排工具;全称是kubernetes;

k8s的组件:

在这里插入图片描述

master:

①kube-apiserver 所有服务统一的访问入口,无论对内还是对外;

②kube-controller-manager 资源控制中心,负责管理pod的资源对象和部署的控制器,确保资源在预期值;

③kube-scheduler 管理pod的资源调度,根据调度算法给pod放入合适的node中;

etcd:kubernetes的数据库,以键值对的形式将数据储存在分布式数据库中,只有apiserver有读写权限;

worker node:

④kubelet 管理和创建pod中的容器,和容器引擎交互,管理容器的生命周期。检测node的资源信息和pod的运行状态,发送给master的apiserver

⑤kube-proxy 是service的载体,是pod的网络代理,实现负载均衡和服务发现,同时监听service/endpoints的变化刷新负载均衡的策略

⑥容器引擎,运行容器的

控制器:

1、node controller 节点控制器,在节点发生故障时及时发现和响应;
2、replication controller 副本控制器,控制副本数达到客户的期望值;
3、endpoints controller 端点控制器,负载均衡和服务发现使用
4、service account & token controller 账户和令牌控制器,在创建命名空间时添加默认账户和api访问令牌
5、resourcequota controller 资源限制控制器
6、namespace controller 命名空间控制器,管理namespace的生命周期

K8S创建Pod的工作流程?

1、用户通过客户端发送创建pod的请求到master节点上的apiserver
2、apiserver会先把相关的请求信息写入到etcd中,再找controller-manager根据预设的资源模板创建pod清单
3、然后controller-manager会通过apiserver去找scheduler为新创建的pod选择最适合的Node节点
4、scheduler会通过调度算法的预选策略和优选策略筛选出最适合的Node节点
5、然后再通过apiserver找到对应的Node节点上的kubelet去创建和管理pod
6、kubelet会直接跟容器引擎交互来管理容器的生命周期
7、用户通过创建承载在kube-proxy上的service资源,写入相关的网络规则,实现对pod的服务发现和负载均衡

kubernetes的资源对象:

k8s可以进行增删改查的操作并持久化存储在etcd中,k8s可以根据etcd的预期值和现实中的资源情况进行自动控制和自动纠错;

①pod,是k8s最小/最简单的基本单位。
一个pod是一个集群中正在运行的进程。
pod中的容器(一个或多个)共享命名空间。
pod中的容器可以通过localhost互相访问,也可以进行挂载数据卷,不同的pod不可以。

②pod控制器,是pod启动的一种模板,保证pod按照客户的资源预期值启动。

③label标签 自带也可手动设置标签,便于分类管理资源。
键值对的方式,一个资源对象可以有多个label,一个label也可以给多个资源对象使用。可以被删除和添加

④label selector 标签选择器,根据标签筛选资源对象。

⑤service,每个pod会有一个单独的ip和端口,但是pod有生命周期,ip和端口会变化。
根据标签选择器去选择标签,就可以获取到变化的endpoints,刷新负载均衡了

⑥ingress,七层代理,service只可以四层,对外访问时使用,负责集群内外通讯。

控制器:

1、deployment 无状态应用部署,管理和控制pod和replicaset,管理他们的预期值不变。
相当于deployment是总包,replicaset是小包,干活的是pod,replicaset控制pod的数量,达到用户的预期值
在这里插入图片描述
2、daemonset,保证每个节点都有一个pod运行,可以根据节点的状态添加或删除pod
3、statefulset ,部署有状态应用
4、job:部署一次性任务的pod,pod执行完任务就会自动退出,只部署一次
5、cronjob:周期性的部署一次性任务的pod

资源配置信息:
Apiversion 每种资源对象在K8S中所使用的 api 接口版本
Kind 资源对象的类型
Matedate 资源对象的元数据,比如 资源名称name 命名空间namespace 标签label
Spec 资源对象的资源配置清单,比如 副本数 镜像名 数据卷 资源限制 标签选择器label selector
Status 资源对象当前的运行状态信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14579.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Visual studio 2015下载安装以及缺包提示的处理方法

最近要加入的比赛团队需要用到Visual studio 2015,百度后找到很多资源,自己也转到了百度网盘。中英文都有,需要的可以下载。 链接:https://pan.baidu.com/s/12gpVwXfQxfdkXub-IwhWFw?pwds325 提取码:s325 --来自百…

Docker 私有仓库 harbor 搭建

🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…

有哪些做的问卷调查的工具?

想要洞察市场变化、了解某个特定群体的喜好等情况,使用问卷调查是常见的方法。而互联网的发展,越来越多的人转战网络问卷,而功能各异的问卷工具却让人挑花眼。今天,我们精准针对大家的需求和常见的一些问题,为大家聊一…

C#一个开源跨平台的 HTTP 客户端库——RestSharp

一、RestSharp简介 GitHub - restsharp/RestSharp: Simple REST and HTTP API Client for .NETSimple REST and HTTP API Client for .NET. Contribute to restsharp/RestSharp development by creating an account on GitHub.https://github.com/restsharp/RestSharp …

Kafka的保姆级简易安装启动、关闭注意事项、简单使用

一.安装: 1.1Windows本机tar包安装 1.下载tar包 地址:Apache Download Mirrors,点击下面的连接先将tar包下载下来 2.解压到任意地址但自己要记得位置 3.进入到config文件找到server.properties更改信息 搜索,然后找到下面的地…

uniapp打包app,对接华为厂商,实现unipush离线消息推送

今天终于可以抽出点时间,来记录一下这几天心塞的心情。上周公司派过来一个活,说是使用uniapp制作一个app,同时要实现在线消息推送和离线消息推送,啥话没说就揽了下来。不过说实在的,从来没有开发过app,好歹…

SpringMVC原理分析 | 数据处理:ModelAndView

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 重定向和转发 ModelAndView 设置ModelAndView对象,根据view的名称、视图解析器跳转到指定的页面 页面:{视图解析器前缀} viewName {视图解析器…

基于matlab对于未校准立体图像校正(附源码)

一、前言 此示例说明如何计算两个未校准图像的校正,其中相机内禀函数未知。 立体图像校正将图像投影到公共图像平面上,以使相应的点具有相同的行坐标。此过程对于立体视觉很有用,因为 2-D 立体对应问题被简化为 1-D 问题。例如,…

网络应用基础ENSP环境的安装(NETBASE第三课)

网络应用基础ENSP环境的安装(NETBASE第三课) eNSP(Enterprise Network Simulation Platform)是一款由华为提供的、可扩展的、图形化操作的网络仿真工具平台,主要对企业网络路由器、交换机进行软件仿真,完美呈现真实设备实景,支持大型网络模拟…

vue3+pinia用户信息持久缓存(token)的问题

vue3pinia用户信息持久缓存(token)的问题 对博主来说,这是个相当复杂的问题。 当初在使用vue2vuex进行用户信息持久登录时,写了不下3篇博客,确实是解决了问题,博客链接如下 vue存储和使用后端传递过来的tokenvue中对…

抖音短视频矩阵管理系统源码开发部署(开源定制)

一、什么是短视频矩阵管理系统? 短视频矩阵管理系统是专门为企业号商家、普通号商家提供帐号运营从流量 到转化成交的一站式服务方案,具体包含:点赞关注评论主动私信 ,评论区回复,自动潜客户挖掘,矩阵号营销…

Maven高级(四)--私服

一.作用 我们所拆分的模块是可以在同一个公司各个项目组之间的项目组之间进行资源共享的,这就需要Maven的私服来实现。 二.场景 两个项目组之间如何基于私服进行资源的共享的呢? 例如A开发了一个模块tlias-utils,B团队进行项目开发,要想使用…