【云计算•云原生】4.云原生之什么是Kubernetes

文章目录

    • Kubernetes概念
    • Kubernetes核心概念
      • 集群
      • pod
      • ConfigMap
    • Kubernetes架构
      • master节点的组件
      • worker节点组件
    • Kubernetes网络架构
      • 内部网络
      • 外部网络
    • k8s各端口含义

Kubernetes概念

K8S就是Kubernetes,Kubernetes首字母为K,末尾为s,中间一共有8个字母,所以简称K8s。

它是一个为容器化应用提供集群部署和管理的开源工具,由 Google 开发。通过k8s可以使用配置文件轻松管理上千台机器。

k8s的部署配置文件和docker的dockerfile很类似,其内容描述了整个部署过程。

Kubernetes核心概念

集群

由多个节点组成的、共同对外提供服务的一个节点组,可添加或删除节点

pod

K8S 调度、管理的最小单位,一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。

如果一组应用紧耦合,那么他们应该在一个pod中编排

ConfigMap

微服务上线时根据不同服务需要有一些可变配置,为了实现对微服务各个节点的灵活配置,k8s内置支持微服务的配置configmap,将配置信息写入configmap,然后configmap以环境变量的方式注入到pod中,pod中的容器可以访问这些配置。

Kubernetes架构

架构中分为master/worker两个部分
在这里插入图片描述

在这里插入图片描述

master节点的组件

  • etcd: 负责存储k8s集群的状态数据、节点数据等
  • API server: 是操作etcd的唯一接口
  • Scheduler: 负责资源调度
  • Controler Manager: 集群状态的协调控制者,维护集群状态

worker节点组件

  • Controller Runtime: 下载镜像和容器的组件

  • kubelet: 与master节点上API server交互,负责管理worker节点上的组件,运行在集群中每个节点node上。注意他是一个进程而不是组件。

  • pod: K8S 调度、管理的最小单位,一个 Pod 可以包含一个或多个容器,每个 Pod 有自己的虚拟IP。一个工作节点可以有多个 pod,主节点会考量负载自动调度 pod 到哪个节点运行。

  • kube-proxy: 对pod进行寻址和负载均衡

用户操作 k8s 集群一般是通过 kubectl命令行工具或者 dashboard;

Pod 之间进行通讯是通过集群内部的覆盖网络 Overlay Network,外部流量想要进入集群访问 Pod 则是通过负载均衡 Load Balander 设备进行。

Kubernetes网络架构

k8s有四层网络,从上到下分别是

  • 外部接入网络(NodePort/LoadBalancer/Ingress)
  • service网络
  • pod网络
  • node节点网络

内部网络

节点网络用来保证master和worker,以及worker节点之间能够做正常寻址和通讯

pod之间通过pod网络(在节点网络之上)寻址和通信

不同节点之间的pod访问可以通过路由或者其他方式访问;节点的ip可能会随着关机挂起而改变,需要service网络维护。

worker节点中的kubelet将信息传给master节点中的etcd来实现服务注册。

kube-DNS和kube-proxy获取etcd中的信息来实现服务发现。

kube-DNS保存serviceName->ClusterIP的信息。(service服务的ip叫ClusterIp)

ClusterIP并不是一成不变的,ServiceName是唯一的。

Kube-Proxy保存CluserIP->PodIP的信息。这样两层可以实现POD 在集群之间的网络连接。kube-proxy是集群中每个节点node上运行的网络代理。

外部网络

  • NodePort

将service暴露在节点网络上

  • LoadBalancer

将service暴露在节点网络上+负载均衡

  • Ingress

如果需要暴露在节点网络中的服务有很多,仅仅使用 load balancer 的话成本是很高的。Ingress 可以等价于反向代理或者网关,它的主要作用就是反向路由,它可以将多个 k8s 内部的服务同时暴露出去但仅需一个 load balancer。Ingress 还有一些其他功能如动态路由更新、安全认证、日志监控等。

k8s各端口含义

  • port: 是k8s集群内部访问service的端口,即通过clusterIP: port可以访问到某个service
  • nodePort: 是外部访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service
  • targetPort: 是pod的端口,从port和nodePort来的流量经过kube-proxy流入到后端pod的targetPort上,最后进入容器
  • containerPort: 是pod内部容器的端口,targetPort映射到containerPort
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/20510.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BEV(0)---Transformer

1 Transformer Transformer是一个Sequence to Sequence model,特别之处在于它大量用到了self-attention,替代了RNN,既考虑了Sequence的全局信息也解决了并行计算的问题。 1.1 self-attention: ①. 输入x1 ~ x4为一个sequence&…

MySQL基础(三十一)数据库其它调优策略

1 数据库调优的措施 1.1 调优的目标 尽可能 节省系统资源 ,以便系统可以提供更大负荷的服务。(吞吐量更大)合理的结构设计和参数调整,以提高用户操作 响应的速度 。(响应速度更快)减少系统的瓶颈&#xf…

服务网关Gateway

前言 API 网关出现的原因是微服务架构的出现,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 破坏了服务无状态…

DJ6-4 文件存储空间的管理

目录 6.4.1 空闲表 1、存储空间的分配与回收 2、空闲表法的优缺点 6.4.2 空闲链表 1、空闲盘块链 2、空闲盘区链 6.4.3 位示图 1、位示图的表示 2、存储空间的分配 3、存储空间的回收 4、位示图法的优缺点 6.4.4 成组链接 1、空闲盘块的组织 plus 个人理解图…

上海亚商投顾:沪指震荡调整跌0.21% 两市成交金额不足8000亿

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日震荡调整,上证50午后一度跌超1%,以保险为首的权重板块走低。军工股逆市大涨&a…

Python基本数据类型之一——set(集合)

Python基本数据类型之一——set(集合) 一、python集合定义 集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。 二、创建方式 在Python中,创建集合有两种方式: 一种是用一对大括号将多个用逗号分隔的数据括起来。 另一种…

【周末闲谈】超越ChatGPT?科大讯飞星火认知大模型

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录 前言星火名字的由来科大讯飞星火落地应用演示赶超ChatGPT的底气在哪里?“硬…

如何使用sbvadmin进行私有化部署的代码开发

前言 本文主要讲述如何使用sbvadmin进行私有化部署的代码开发,这里我们用的私有化仓库是gitee,当然你也可以用自己搭建的gitlab来做,原理差不多。 一、新建仓库 1.后端api 导入后端仓库:https://github.com/billyshen26/sbvadmi…

搭建Redis主从集群+哨兵+代理predixy

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Redis是什么?二、搭建Redis集群步骤1.环境和版本2.Redis 安装部署3.主从同步配置4.哨兵模式配置5.代理predixy配置 总结 前言 提示&#xff1a…

SpringSecurity框架学习与使用

SpringSecurity框架学习与使用 SpringSecurity学习SpringSecurity入门SpringSecurity深入认证授权自定义授权失败页面权限注解SecuredPreAuthorizePostAuthorizePostFilterPreFilter 参考 SpringSecurity学习 SpringSecurity入门 引入相关的依赖,SpringBoot的版本…

R语言 | 数据框

目录 一、认识数据框 7.1 建立第一个数据框 7.2 验证与设定数据框的列名和行名 二、认识数据框的结构 三、获取数据框内容 3.1 一般获取 3.2 特殊字符$ 3.3 再看取得的数据 四、使用rbind()函数增加数据框的行数据 五、使用cbind()函数增加数据框的列数据 5.1 使用$符号…

超星学习通小助手多线程工具Python

话不多说,直接开始,不会安转的直接使用后面两款,下载直接打开exe运行 第一款:网课小助手python,需要自行安装Python环境(支持Windows、Mac、Linux各种环境) https://wwiv.lanzoul.com/ifVrC0vk…

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测

时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现BO-CNN-GRU贝叶斯优化卷积门控循环单元时间序列预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 基于贝叶斯(bayes)优化卷积神经网络-门控循环单元(CNN-GR…

数据库设计与前端框架

数据库设计与前端框架 学习目标: 理解多租户的数据库设计方案 熟练使用PowerDesigner构建数据库模型理解前端工程的基本架构和执行流程 完成前端工程企业模块开发 多租户SaaS平台的数据库方案 多租户是什么 多租户技术(Multi-TenancyTechnology&a…

力扣sql中等篇练习(二十一)

力扣sql中等篇练习(二十一) 1 最大数量高于平均水平的订单 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # Write your MySQL query statement below WITH t1 as (SELECT order_id,avg(quantity) AquantityFROM OrdersDeta…

GEE:如何进行对MOD09GA数据集进行水体/云掩膜并计算NDVI将其导出至云盘?

目录 01 为什么用GEE而不是传统的下载ENVIArcGIS? 02 操作详解 01 为什么用GEE而不是传统的下载ENVIArcGIS? 由于地理空间数据云中缺少2015年10月份的NDVI月合成影像,于是查看了地理空间数据云的NDVI数据集处理的一些介绍如下(地理空间数据…

什么是SpringBoot自动配置

概述: 现在的Java面试基本都会问到你知道什么是Springboot的自动配置。为什么面试官要问这样的问题,主要是在于看你有没有对Springboot的原理有没有深入的了解,有没有看过Springboot的源码,这是区别普通程序员与高级程序员最好的…

【C++】8.编译:CMake工具入门

😏*★,*:.☆( ̄▽ ̄)/$:*.★* 😏这篇文章主要介绍CMake工具的入门使用。————————————————学其所用,用其所学。——梁启超————————————————— 欢迎来到我的博客,一起学习知识…

【前端客栈】使用CSS实现畅销书排行榜页面

📬📫hello,各位小伙伴们,我是小浪。大家都知道,我最近是在更新各大厂的软件测试开发的面试真题,也是得到了很大的反馈和好评,几位小伙伴也是成功找到了测开的实习,非常不错。如果能前…

Java的线程

介绍线程 线程是系统调度的最小单元,一个进程可以包含多个线程,线程是负责执行二进制指令的。 每个线程有自己的程序计数器、栈(Stack)、寄存器(Register)、本地存储(Thread Local&#xff09…