简介
  它是一个全新的基于容器技术的分布式解决方案,基于强大的自动化机制解决传统系统架构中负载均衡和实施部署的问题,从而节省了30%开发成本,其次具有完备的集群能力,

包括服务注册、服务发现、故障的发现和修复、服务滚动升级、在线扩容、健康监测等能力。使用kubernetes可以是开发人员更多精力在业务实现上,同时全面的拥抱微服务架构

架构

基本概念和术语

1、master 集群的控制节点。

每个kubernetes集群都需要有个master节点负责整个集群的管理和控制。mater节点包括一组关键进程:

  • kube-apiserver 资源增删改查操作的入口,门卫
  • kube-controller-manage 所有资源的自动化控制中心,大总管
  • kube-schedule 负责资源的调度,调度室

2、node 集群的负载节点

每个node都会被master分配一定的工作负载(容器),当node停止运行后,master将容器调度到其他node,node节点包括一组关键进程:

  • kubelet 负责pod对应容器的创建、启停任务
  • kube-proxy 实现service通信和负载均衡
  • docker engine docker引擎负责本机的容器的创建和管理

常用命令

查看集群节点

kubectl get nodes

查看节点详细信息

kubectl describe node xxx

3、pod 资源调用基本单位

每个pod包含一个根容器(Pause) 容器和其他若干的业务容器,其中根容器的状态代表了容器整体的状态,业务容器共享Pause容器的IP和挂在的Volumn 。集群中每个pod都分配了唯一的IP,称pod ip , 一个pod里的多个容器共享Pod IP地址。

pod某个容器停止,k8s检测并重启该pod中的所有容器,所以适合一个POD中存放一个业务相关的容器

(1) Replication Controller (rc) 副本的数量在任何时刻都达到期望值

rc定义包括如下几个部分:

    • pod期待的副本数
    • 用于筛选目标Pod的label Selector
    • 副本数小于期望数量时候,创建新的副本‘

例子:定义了在kubenetes集群中 tier: frontend的副本只有一个

(2)Replication Set (rs) 下一代的RC

与RC区别是RS支持集合类型的Label Selector,而rc只支持基于等式的Label Selector。其他特点类型。

(3)Label和Label Selector

Label和Label Selector概念,kubernetes可以为对应的资源(pod,rc,service,deployment)设置key=value形式的label,简单理解就是分类。同时label selector可以根据指定的label与资源进行管理。例如service可以根据label selector选择具有对应label的pod进行负载均衡。label selector分为等式形式(env=test)和集合形式(env not in[test,dev])

(4)Deployment 在rs的基础上增加服务启动状态的控制和统计

在rc的基础上进行了一次升级,更好解决了服务编排问题。可以知道当前POD的“部署的进度”

常用命令

创建Deployment

kubectl create -f tomcat-deployment.yaml

查看信息’

kubectl get deployments

(5)service kubernetes的核心资源对象,POD RC RS等资源对象都是为service提供服务

kubernetes里面每个service就是我们所说的微服务。

    • rc的作用是保证Service的服务能力和服务质量始终处于预期的biaozhun
    • service与后端的副本集群通过label selector做负载均衡

service一旦创建,kubernetes就会自动为它分配一个可用的Cluster IP,并且整个service的生命周期内不会改变,service name 和 service ip DNS映射解决了服务发现问题

常用命令

查看service

kubectl get svc -n XXX

创建service

kubectl create -f xxx

最新文章

  1. 使用 JavaScriptService 在.NET Core 里实现DES加密算法
  2. [Android] 升级了新的android studio之后 发生如下的报错,The following classes could not be instantiated:
  3. 对ASM存储管理的一些初步理解记录
  4. Leetcode 190 Reverse Bits 位运算
  5. 【SpringMVC】SpringMVC系列15之SpringMVC最佳实践
  6. Winform_播放声音文件
  7. Android EditText 获得输入焦点 以及requestfocus()失效的问题
  8. AngularJs记录学习03
  9. Java转换
  10. 11427 - Expect the Expected(概率期望)
  11. 关于页面传参,decodeURI和decodeURIComponent
  12. Windows服务器如何查看共享目录信息
  13. AE插件:能量激光描边光效特效Saber Mac汉化版
  14. UWP简单示例(二):快速开始你的3D编程
  15. Centos7配置JAVA_HOME
  16. 阿里巴巴Java开发规范---个人总结
  17. JAVA代码中最常见到的关键字表
  18. CKEditor 4 & markdown & rich text editor
  19. day 8 list列表
  20. C++入门级 一

热门文章

  1. Linux启动U盘制作
  2. 由friend用法引出的声明与定义那些事儿
  3. Spring 中bean的作用、定义
  4. linux socket读数据错误解释
  5. asp.net web系统开发浏览器和前端工具
  6. 【C语言天天练(二三)】errno变量
  7. chrome mp4格式支持问题
  8. Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache.
  9. 摄像头驱动_摄像头驱动程序必需的11个ioctl及摄像头数据的获取过程
  10. C++语言基础(19)-模板的显式具体化