Kubernetes 学习2 k8s基础概念
一、架构描述
1、基本架构

2、pod ,有两类

a、自主式pod
自我管理的,创建之后,任然是需要提交给API Server,API Server接受之后然后由调度器调度到指定的 node节点,由node启动此pod,如果有pod中的容器出现故障,需要重启容器时需要kubelet来完成的,但是,如果节点故障了那么这个pod就消失了。没事实现全局调度。
b、控制器管理的pod。
1)、正是控制器的引入和使用,使得在k8s的集群设计中pod完成可以成为有生命周期的对象。由调度器将其调度到集群中的某节点运行以后任务也就被终止了,但是有一些任务比如nginx或tomcat时,他们是作为守护进程运行的这种如果运行为pod容器的话要确保时刻处于运行状态,一旦出现故障我们必须要第一时间发现,要么是取代他要么是重启他。因此k8s提供了pod控制器来时刻监控pod状态。
2)、最早的控制器叫ReplicationController(副本控制器)
a)、时刻保持定义pod的副本数。
b)、还能实现滚动更新,有两个pod副本,先创建一个pod删掉一个老的pod然后再创建一个pod再删除一个老的pod。
3)、新版本后又是新版本控制器叫ReplicaSet(副本集控制器),他不直接使用,他有一个声明式更新的控制器Deployment来负责管理,Deployment控制器还支持二级控制器,叫HPA(HorizontalPodAutoscaler:水平pod自动伸缩控制器)。Deployment只能管理那些无状态的应用。
4)、有状态的应用需要使用新的控制器叫statefulSet(有状态副本集)。
5)、如果我们需要在每一个node上运行一个副本那么叫DaemonSet
6)、如果运行作业叫job
7)、周期化容器作业Ctonjob。
3、服务发现service(注册中心,zookeepr等都算)
a)、k8s为每一组提供同类服务的pod和客户端之间添加了一个中间层,这个中间层就叫service,service只要不删除那么他的名称和地址就是固定的。当访问某一个服务时,不用自动再去发现什么功能,他只需要在配置文件中写明这个服务的地址或者服务的名称就行。而这个服务不但能提供一个稳定的访问入口,并且还能起到调度器的功能,服务能将请求代理到后端的Pod上,一旦pod宕机了那么又会自动新建一个pod和service关联。service关联后端的pod不是通过ip地址或者主机名,而是通过lable,因此只要你创建的pod lable只要是固定的那么都能被service识别,当pod被关联进service后service才会探测pod的ip地址和主机名作为自己调度的后端可用服务器主机对象。在k8s中service不是应用程序也不是组件,而是iptable中的dnet规则。我们创建一个dnat规则说所有到达某地址的都统统被目标地址转换成某某某地址。当前iptables已经把负载均衡的功能交给ipvs来实现,因此如果service背后的同一组pod由很多dnat来实现那么调度效果上可能不尽人意,因此,1. 11版本中已经把iptables规则进一步改成了ipvs规则,也就意味着当创建一个service就相当于生成了一条nat 模型的ipvs规则。因此支持用户自己指定调度算法,因此lvs算是基础性服务。
b)、service作为k8s对象来讲,有service名称,而service的名称也相当于是这个服务的名称,可以被解析,可以把service名直接解析为service IP,名称解析靠dns,我们装完k8s集群后你会发现第一件事就是需要在k8s集群上部署一个dns pod以确保各dns被解析。因此dns pod是基础级的系统架构级的对象。因此他们也被称为集群的附件(AddOns)。
4、附件(AddOns)
a)、DNS。service作为k8s对象来讲,有service名称,而service的名称也相当于是这个服务的名称,可以被解析,可以把service名直接解析为service IP,名称解析靠dns,我们装完k8s集群后你会发现第一件事就是需要在k8s集群上部署一个dns pod以确保各dns被解析。因此dns pod是基础级的系统架构级的对象。因此他们也被称为集群的附件(AddOns)。DNS会动态更新解析记录,当集群中IP或名称有变动时DNS pod中的解析记录也会动态改变。
31分37秒
Kubernetes 学习2 k8s基础概念的更多相关文章
- Elasticserach学习笔记-01基础概念
本文系本人根据官方文档的翻译,能力有限.水平一般,如果对想学习Elasticsearch的朋友有帮助,将是本人的莫大荣幸. 原文出处:https://www.elastic.co/guide/en/e ...
- 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍
第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...
- k8s 基础概念和术语
Master k8s里的master指的是集群控制节点,每个k8s集群里需要有一个Master节点来负责整个集群的管理和控制,基本k8s所有控制命令都发给它,它负责整个具体的执行过程,后面执行操作基本 ...
- k8s 基础概念
摘录自k8s中文社区https://www.kubernetes.org.cn/course kubernetes 源自希腊文,意为舵手,k与s之间是8个字母,所以也叫k8s, docker就像一个个 ...
- Docker:学习笔记(1)——基础概念
Docker:学习笔记(1)——基础概念 Docker是什么 软件开发后,我们需要在测试电脑.客户电脑.服务器安装运行,用户计算机的环境各不相同,所以需要进行各自的环境配置,耗时耗力.为了解决这个问题 ...
- OpenFlow Switch学习笔记(一)——基础概念
OpenFlow Switch v1.4.0规范是在2013年10月14号发布,规范涵盖了OpenFlow Switch各个组件的功能定义.Controller与Switch之间的通信协议Open F ...
- K8S基础概念
一.核心概念 1.Node Node作为集群中的工作节点,运行真正的应用程序,在Node上Kubernetes管理的最小运行单元是Pod.Node上运行着Kubernetes的Kubelet.kube ...
- Kubernetes学习之k8s
k8s是什么 云原生 越来越多的开发者不仅使用容器作为应用部署和运行的载体,还积极使用了与容器这个应用载体天生匹配的微服务的架构,并依靠容器调度编排引擎的帮助,以保持对外部的敏捷性,这种容器化的微服务 ...
- zookeeper,及k8s基础概念
1.描述zookeeper集群中leader,follower,observer几种角色 Zookeeper: 分布式系统:是一个硬件或软件组件分布在网络中的不同的计算机之上,彼此间仅通过消息传递进行 ...
随机推荐
- mac平台安装配置TomCat
1.下载Tomcat 7.0 地址:http://tomcat.apache.org/download-70.cgi Binary Distributions -> Core 选择zip或tar ...
- linux centOs中安装好数据库,客户端用plsql连接oracle
原创作品,转载请在文章显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10030375.html 首先,回顾上篇 CenOs7安装oracle图文详细过 ...
- Oracle数据库基本操作(四) —— PLSQL编程
Procedure Language 实际上是Oracle对SQL语言的能力扩展,让SQL语言拥有了if条件判断,for循环等处理. 一.PLSQL基本语法 DECLARE -- 声明部分 变量名 变 ...
- Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML
一.Oracle数据库介绍 1.基本介绍 Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/ ...
- 停课+2week
可真是,累啊. 本以为停课之后会轻松一点,结果天天好累的说... 今天开始得去锻炼锻炼了... 已经好几次突然一阵晕眩了qwq... 希望我还能挺得住吧,至少要挺到WC结束啊... 这次,可是关系到我 ...
- 利用Metaweblog技术的API接口同步到多个博客网站(详细)
很早就有这个想法:自己有时候会用到多个博客,有些博客在一个网站上写完之后,要同步到其他博客网站,自己只能复制粘贴,感觉特别没意思,复制粘贴的麻木了.一直在想有哪些技术能实现一次写博,多站同步.最近网上 ...
- MAVLink Linux/QNX/MacOs Integration Tutorial (UDP)
MAVLink Linux/QNX/MacOs Integration Tutorial (UDP) Overview This program was written to test the udp ...
- Xshell启动时显示丢失MSVCP110.dll
重装系统,装完Xshell5启动时,出现丢失MSVCP110.dll文件 这种情况不要相信网上所说的什么下载“MSVCP110.dll”文件或者下载微软的vcredist 2012 这样没用 正确的姿 ...
- JavaScript的本地对象、内置对象、宿主对象
首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. ...
- Mybatis源码解析优秀博文
最近阅读了许久的mybatis源码,小有所悟.同时也发现网上有许多优秀的mybatis源码讲解博文.本人打算把自己阅读过的.觉得不错的一些博文列出来.以此进一步加深对mybatis框架的理解.其实还有 ...