Micro-PaaS(Docker+K8S)
1、概述
Docker是一种Linux容器工具集,它是为构建(Build)、交付(Ship)和运行(Run)分布式应用而设计的。
Kubernates:是开源的容器集群管理系统。它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一套功能,本质上可看作是基于容器技术的Micro-PaaS平台。
即第三代PaaS的代表性项目。
K8S的核心概念:
Kubernetes的核心概念
Pod:是若干相关容器的组合,Pod包含的容器运行在同一台宿主机上,这些容器使用相同的网络命名空间、IP地址和端口,相互之间能通过localhost来发现和通信。另外,这些容器还可共享一块存储卷空间。在K8s中创建、调度和管理的最小单位是Pod,而不是容器,Pod通过提供更高层次的抽象,提供了灵活的部署和管理模式。
Replication Controller:用来控制管理Pod副本(Replica,或者称为实例),Replication Controller确保任何时候K8s集群中有指定数量的Pod副本在运行。如果少于指定数量的Pod副本,Replication Controller会启动新的Pod副本,反之会杀死多余的副本以保证数量不变。另外,Replication Controller是弹性伸缩、滚动升级的实现核心。
Service:Service是真实应用服务的抽象,定义了Pod的逻辑集合和访问这个Pod集合的策略。Service将代理Pod对象表现为单一访问接口,外部不需要了解后端Pod如何运行,提供了一套简化的服务代理和发现机制。
Label:用于区分Pod、Service、Replication Controller的Key/Value对,实际上,Kubernetes中的任意API对象都可以通过Label进行标识,每个API对象可以有多个Lablel,但是每个Label的Key只能对应一个Value。Label是Service和Replication Controller运行的基础,它们都通过Label来关联Pod,相比于强绑定模型,这是一种非常好的松耦合关系。
Node:K8s属于主从分布式集群架构,K8s Node运行并管理容器。Node作为K8s的操作单元,用来分配给Pod进行绑定,Pod最终运行在Node上,Node可以认为Pod的宿主机。
2、Kubernate的架构和组件
K8s属于主从分布式架构,节点在角色上分为Master和Node。它遵循微服务架构理论,整个系统划分出各个功能独立的组件,组件之间边界清晰,部署简单,可以轻易地运行在各种系统和环境中。
K8s使用Etcd作为存储蹭件,Etcd是一个高可用的键值存储系统,灵感来自于Zk和Doozer,通过Raft一致性算法处理日志复制以保证强一致性。K8s使用Etcd作为系统的配置存储中心,K8s中的重要数据都持久化在Etcd中的,使得k8s架构的各个组件属于无状态,可以更简单地实施分布式集群部署。
K8s Master作为控制节点,调度管理整个系统,包含以下组件。
K8s API Server:作为K8s系统的入口,其封装了核心对象的增删改查操作,以REST API接口方式提供给外部客户和内部组件调用。它维护的REST对象将持久化到Etcd中。
K8s Scheduler:负责集群的资源调度,为新建的Pod分配机器。这部分工作分出来变成一个组件,意味着可以很方便地替换成其他的调度器。
K8s Controller Manager:负责执行各种控制器,目前已经实现很多控制器来保证K8s的正常运行。主要包含的控制器如下
| 控制器 | 说明 |
| Replication Controller | 管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定义的副本数量与实际运行Pod的数量是一致的。 |
| Node Controller | 管理维护Node,定期检查Node的健康状态,标识出失效的Node |
| Namespace Controller | 管理维护Namespace,定期清理无效的Namespace,包括Namespace下的API对象,像Pod、Service和Secret等 |
| Service Controller | 管理维护Service,为LoadBalance类型的Service创建管理负载均衡器 |
| Endpoints Controller | 管理维护Endpoints,关联Service和Pod,创建Endpoints作为Service的后端,当Pod发生变化时,实时刷新新的Endpionts. |
| Service Account Controller | 管理维护 |
| Persistent Volume Controller | 管理维护 |
| Daemon Set Controller | 管理维护 |
| Deployment Controller | 管理维护 |
| Job Controller | 管理维护 |
| Pod Autoscaler Controller | 管理维护 |
Micro-PaaS(Docker+K8S)的更多相关文章
- docker k8s 1.3.8 + flannel
docker k8s + flannel kubernetes 是谷歌开源的 docker 集群管理解决方案. 项目地址: http://kubernetes.io/ 测试环境: node-1: 10 ...
- Jenkins+Git+Docker+K8s部署
准备工作 Jenkins已安装 Docker和K8s部署运行成功 代码管理工具使用Git 最近公司项目使用Jenkins+Git+Docker+K8s进行持续化构建部署,这里笔者整理了一下构建部署的相 ...
- docker&k8s填坑记
本篇主要用于记录在实施docker和kubenetes过程中遇到的一个问题和解决办法. 本节部分内容摘自互联网,有些部分为自己在测试环境中遇到到实际问题,后面还会根据实际情况不断分享关于docker/ ...
- docker+k8s基础篇五
Docker+K8s基础篇(五) service资源介绍 A:service资源的工作特性 service的使用 A:service字段介绍 B:ClusterIP的简单使用 C:NodePort的简 ...
- docker+k8s基础篇四
Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...
- docker+k8s基础篇三
Docker+K8s基础篇(三) kubernetes上的资源 A:k8s上的常用资源 Pod的配置清单 A:Pod上的清单定义 B:Pod创建资源的方法 C:spec下其它字段的介绍 Pod的生命周 ...
- docker+k8s基础篇二
Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...
- docker+k8s基础篇一
Docker+K8s基础篇(一) docker的介绍 A:为什么是docker B:k8s介绍 docker的使用 A:docker的安装 B:docker的常用命令 C:docker容器的启动和操作 ...
- Spring Boot + Docker + K8S 简单示例
前言 最近看了看k8s,感觉用这个管理docker确实比自己写一坨脚本进步太多了,简直不是一个次原的东西. 看着k8s的官方文档随手写了个小Demo,一个基于k8s的spring boot服务. 代码 ...
- Docker & k8s 系列一:快速上手docker
Docker & k8s 系列一:快速上手docker 本篇文章将会讲解:docker是什么?docker的安装,创建一个docker镜像,运行我们创建的docker镜像,发布自己的docke ...
随机推荐
- ansible入门六(roles)
一.什么场景下会用roles? 假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成php服务器,第三个要配置成MySQL服务器.我们如何来定义playbook? 第一个play用到 ...
- 【转】netlink socket编程实例
[转]netlink socket编程实例 转自:http://blog.chinaunix.net/uid-14753126-id-2983915.html 关于Netlink IPC方式的介绍,请 ...
- PostgreSQL文档编译
之前一直没有将doc进行编译,最近编译成功了,却无法用man来查看,发现是没有将man的目录添加到搜索路径: MANPATH /usr/pgsql-10/share/man 加入到 /etc/man. ...
- pip安装tensorflow出错怎么办
随着人工智能的开发越来越多人参与,现在下载tensorflow 1.2版本也经常出错了,如下: 这时怎么办呢? 其实比较简单,可以通过pypi的网站来下载: https://pypi.python.o ...
- Aria2 - OS X 下载百度云资源神器
官网介绍: (Aria2 is a light weight multi-protocol & multi-source command-line download utility. It s ...
- 物体识别重要指标——平均准确率(Average Precision, AP )
师兄的截图,不知道出处,仅用于学习,多多包涵.
- windows 按时自动化任务
参考文章: 1. 巧用Windows 7计划任务设置定时提醒 http://jingyan.baidu.com/article/acf728fd279fe5f8e510a333.html 2. cmd ...
- js之广告弹出自动关闭
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- iOS UIWebView 中 js调用OC 打开相册 获取图片, OC调用js 将图片加载到html上
线上html <!DOCTYPE html> <html> <head> <title>HTML中用JS调用OC方法</title> < ...
- ExpressCache
ExpressCache 非联想.等品牌电脑使用的ExpressCache(带破解文件). (原始安装文件+patch+说明).注意,执行eccmd命令时,需要管理员权限.否则报错. http://a ...