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: 分布式系统:是一个硬件或软件组件分布在网络中的不同的计算机之上,彼此间仅通过消息传递进行 ...
随机推荐
- 八、window搭建spark + IDEA开发环境
本文将简单搭建一个spark的开发环境,如下: 1)操作系统:window os 2)IDEA开发工具以及scala插件(IDEA和插件版本要对应): 2-1)IDEA2018.2.1:https:/ ...
- 传统的MapReduce框架慢在那里
为什么之前的MapReduce系统比较慢 常理上有几个理由使得MapReduce框架慢于MPP数据库: 容错所引入的昂贵数据实体化(data materialization)开销. 孱弱的数据布局(d ...
- Apache shiro的简单介绍与使用(与spring整合使用,并加入ehcache缓存权限数据)
apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它 ...
- Spring入门(一)— IOC、DI
一.Spring介绍 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成 ...
- Algorithm——无重复字符的最长子串
一.问题 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "a ...
- Sublime Text3之安裝Emmet及使用技巧
首先准备工作: 如果你的Sublime Text3没有Package Control组件先看一下这里,如果以安装请忽略: 1.按Ctrl+`调出sublime text的console 2.粘贴以下代 ...
- 【转载】MySQL数据库可以用任意ip连接访问的方法
通过CMD命令行修改数据库表的一个字段的值,实现连接,访问. 第一步.找到MYSQL软件安装所在的bin目录: (1)cd\当前目录 (2)指定MYSQL安装的bin目录 (3)输入 -h local ...
- 出售基于Html5的高性能GIS平台源码
远景地理信息系统平台软件 远景地理信息系统平台软件,简称"RemoteGIS",版本V1.0,它是基于HTML5自主研发的新一代WEBGIS平台,它使用Javascript开发,具 ...
- Android dialog圆角显示及解决出现的黑色棱角
最近在开发一个天气预报的app,看到一个比较不错友情提示,如下: 怎么样,看起来比原始的dialog好看吧.好了,做法也许有很多,我介绍下我的做法吧, 首先,我第一个想到 ...
- [算法练习]Add Two Numbers
题目说明: You are given two linked lists representing two non-negative numbers. The digits are stored in ...