1.说起k8s,先得讲讲微服务,来个图(百度上找到的图),初识

  1.微服务架构强调的是一种架构模式,提倡将单一的应用程序,划分为一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调配合,为用户提供最终的价值

   2.服务之间的通信(轻量级)基于http的 restful api

   3.每个服务都是围绕着具体的业务进行构建,能够独立部署

  4.核心:将传统的一站式应用,根据业务拆分成一个一个的服务,每个微服务提供单个业务功能的服务,一个服务做一件事,类似进程的概念,能够自行的单独启动或者销毁,拥有自己独立的数据库

  (先注册再调用)

微服务的缺点:

1.处理分布式系统的复杂度----开发

2.多服务运维成本增加---运维

3.系统部署依赖----运维

4.服务之间通信的成本---运维

5.数据的一致性--运维

6.系统的集成测试---测试

7.性能监控---测试

针对这个图中的两个点(网关/nacos):

1.SpingCloud-gateway (网关):

  1.过滤器:filter   拦截修改请求,对上游的响应做二次处理

  2.路由:routes  根据目标URL进行路由

  3.断言:predicates   根据yaml文件,做路径匹配

2.Nacos(注册中心)

2018年6月阿里推出的开源注册管理中心,常用端口:8848

1.支持DNS,基于RPC的服务器发现(springcloud的注册中心),动态的配置服务(配置中心),动态DNS服务

2.可视化平台

3.所有的微服务模块都得在注册中心注册

第二块基础知识笔记:

1.kubernetes (简称k8s),google开源容器集群管理系统

2.k8s用于容器集群的自动化部署,扩容,运维的一个开源平台

3.k8s特点:快速响应用户需求,快速且有预期的部署,快速扩展应用,无缝对接新应用,节省资源,优化硬件资源,容器编排

4.k8s负责管理服务中所有的docker容器,创建,运行,重启容器,删除容器,实现容器集群的自动化部署,自动缩容,维护

5.可以根据不同的条件,进行动态的扩容,缩容,快速响应

6.k8s在部署应用时会自动检查各个服务器的cpu与内存的使用量,同时会根据申请的cpu与内存资源,将服务部署到合适的服务器上(容器调度策略)

k8s基础组件:

 1.master节点

1.kube-apiserver: k8s API 集群的统一入口,各组件的协调者,以restful api 提供接口服务,所有的对象资源的增删改查,监听都是交给apiserver处理后,再提交给etcd存储

2.kube-controller-manager: 处理集群中常规的后台任务,一个资源对应一个控制器,controller-manager负责管理这么控制器

3.kube-scheduler: 根据调度算法为新建的pod选择一个node节点,可以任意部署

4.etcd: 分布式键值存储系统,用于保存集群状态数据,比如pod,service等对象信息

2.nodde节点

1.kubelet:负责pod对应的容器的创建,启停等任务,同时与master密切协作,实现集群管理的基本功能

2.kube-proxy:实现kubernetes service 的通信与负载均衡机制的重要组件

3.docker engine:docker引擎,负责本机的容器的创建与管理工作

1.node是k8s集群架构中运行pod的服务节点,node是k8s集群操作的单元,用来承载被分配的pod的运行,是pod运行的宿主机

2.每个node都会被master分配一些工作负载,当某个node宕机,其上的工作负载会被master自动转移到其他的节点上

3.kubelet 会向master注册自己,一旦node被纳入集群的管理范围,kubelet进程就会定时向master汇报自己的信息(例如机器的cpu,内存,pod的运行情况),这样master就可以获取每个node的资源使用情况,并实现了高效均衡的资源调度策略

4.当某个node在运行超过指定的时间不上报信息时,会被master判定为死亡,node的状态会被标记为不可以用

3.pod解释:

1.运行在node节点上的,若干相关的容器的组合,pod内包含的容器运行在同意宿主机上,使用相同的网络命名空间,ip地址,端口,可以通过localhost进行通信

2.pod是k8s进行创建,调度,管理的最小单位,一个pod包含了一个容器或者多个容器

3.一个node上运行同一个类型的pod(比如mysql,一个node上运行一个MySQL的pod)

4.k8s三层网络模型:

1.NodeIP:每个节点服务器的IP

2.PodIP:每个服务的ip,可以解决端口冲突问题,同时也是每个服务的唯一标识,podip无法通过外网访问,只能在内网访问

3.ClusterIP:集群IP,对同一个服务多个实例(每个服务都有自己的podIP)组成的集群的入口IP

关于k8s微服务的基础知识分享总结的更多相关文章

  1. .NET Core微服务系列基础文章索引(目录导航Final版)

    一.为啥要总结和收集这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有 ...

  2. .NET Core微服务系列基础文章

    今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感性的认识.虽然只做了两个 ...

  3. .NET Core微服务系列基础文章索引(目录导航Draft版)

    一.为啥要写这个系列? 今年从原来的Team里面被抽出来加入了新的Team,开始做Java微服务的开发工作,接触了Spring Boot, Spring Cloud等技术栈,对微服务这种架构有了一个感 ...

  4. 【性能测试实战】jmeter + k8s + 微服务 + skywalking + efk,测试都在学的热门技术

    原文持续更新完善:https://www.cnblogs.com/uncleyong/p/15475614.html 前言:当前的热门主流技术是哪些?测开为啥那么火?90%以上的测试对测开认识不准确 ...

  5. 小D课堂 - 新版本微服务springcloud+Docker教程_2_02 微服务核心基础讲解

    笔记 2.微服务核心基础讲解     简介:讲解微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断         1.网关:路由转发 + 过滤器                ...

  6. 微服务架构基础之Service Mesh

    ServiceMesh(服务网格) 概念在社区里头非常火,有人提出 2018 年是 ServiceMesh 年,还有人提出 ServiceMesh 是下一代的微服务架构基础. 那么到底什么是 Serv ...

  7. GO基础知识分享

    目录 GO基础知识分享 go语言的基本事项 关键字 字符串的拼接和变量的定义方式 空白符 const常量 iota的用法 运算符 Go 没有三目运算符,不能适用?: 语言条件语句 for循环的方式 函 ...

  8. Blazor+Dapr+K8s微服务之开发环境调试

    1         安装Dapr开发调试环境 1.1         Dapr 完整安装模式不支持开发调试 在上一篇随笔<Blazor+Dapr+K8s微服务之服务调用>中,我们通过为每个 ...

  9. 【性能测试实战:jmeter+k8s+微服务+skywalking+efk】系列之:性能测试场景设计

    说明: 本文是基于虚拟机环境配置设计的 性能测试需求 总tps≥100 每个业务的rt<500ms 持续稳定跑50万业务量 单场景 目的:找到单场景的性能问题,为容量场景提供参考,如果低于容量场 ...

  10. 【性能测试实战:jmeter+k8s+微服务+skywalking+efk】系列之:性能监控、分析、调优等

    说明: 本文是基于虚拟机演示的,资源有限 skywalking中拓扑图 kubectl get po -A -owide 测试执行:单场景 查询礼品 jmeter -n -t gift.jmx -l ...

随机推荐

  1. uniapp滚动组件scroll-view

    //scroll-x="true"  || scroll-y="true" <view class="scroll-view"> ...

  2. JWT & 用户身份认证演变过程

    一.起源 0.HTTP无状态 HTTP是无状态的,服务端和客户端如何保持登录状态? 工程师在服务端搞了亿点事情, 就有了下面的解决方案. 1.session认证 (1)什么是session? 服务器为 ...

  3. 网络编程之 requests 模块

    1. get 请求 1 import requests 2 url = 'http://api.xxxx.cn/api/user/stu_info?stu_name=xiaohei' 3 data = ...

  4. 【2020NOI.AC省选模拟#7】C. 逃课

    题目链接 原题解: 我们需要找出两个距离不超过$k-1$的位置,使他们的和尽量大. 被修改过得位置比较少,所以我们可以先求出连个位置都没有被修改过的答案,然后只关心那些涉及到至少一个被修改过的位置的方 ...

  5. Kubernetes--案例:使用Ingress发布tomcat

    假设有这样一套环境: Kubernetes集群上的tomcat-deploy控制器生成了两个运行于Pod资源中的tomcat实例,tomcat-svc是将它们统一暴露于集群中的访问入口.现在需要通过I ...

  6. 各种相机以及图片-SLAM14CP5

    --2020.10.20 开始学习SLAM.想着从SLAM开始然后做三维重建.前面的李群李代数以及旋转四元数有点复杂.都看过了一遍.但不太理解就先放放.希望接下去能够顺利进行.数学基础可能不是很好,公 ...

  7. 在SQLServer中将数据从高版本导入低版本的方法

    一般的软件都是向下兼容的,高版本通常都是可以兼容低版本.但是如果想将高版本数据库中的数据导入到低版本中,直接采用常规的备份还原或是分离附加操作就会因为结构不同而报错. 要想实现数据从高版本到低版本,除 ...

  8. Edge浏览器相关

    Ctrl+T 新建页面 Ctrl+W 关闭页面 不可复制的页面,前加read: 若是不可访问 变read://http:// 阅读可翻译,也可有图片字典 还可用插件: 截图软件:Snipaste  微 ...

  9. 微服务注册到Nacos上的Ip错误,是内网ip不是公网ip

    spring.cloud.nacos.discovery.ip = 本机公网IP spring.cloud.nacos.discovery.port = 服务端口

  10. Cubemx 生成工程代码失败的原因

    折腾了好久(躺)翻了很多解答试了试终于捣鼓正常了,就在这里汇总一下看到过的问题 1.文件名.工程名或者工程文件路径/库路径上有中文名 2.Cubemx的版本过高 3.java环境的版本不适配 4.可能 ...