学习k8s

学习k8s

我为什么要用k8s 和其他部署方式的区别是什么?

  1. 传统部署方式

    java --> package --> 放到服务器上 --> Tomcat

    在这里插入图片描述

    如果是同时进行写操作,会存在并发问题.

    用户 --网络带宽–> 服务器 -->服务

    同一个服务器上,多个服务:

    网络资源的占用

    内存的占用

    cpu的占用

    资源争抢

    复杂度可以通过脚本来解决.

  2. 虚拟化部署/隔离机制/占用资源过多

    java --> package --xx.jar–> linux服务器(虚机[Tomcat < xx.jar文件 >])

    带来了,资源占用过度问题

    在这里插入图片描述

    虚机的启动是分钟级别

  3. 容器化部署

    在这里插入图片描述

    容器的启动是 秒级别的.

k8s的特点?为什么选择k8s?

  1. 为了解决以上问题,需要什么?

    自我修复

    弹性伸缩

    自动部署和回滚

    服务发现和负载均衡

    机密和配置管理

    存储编排

    批处理

  2. 企业级服务调度平台有哪些?

    • Apache Mesos

    概念: 资源管理器,把所有的资源管理,调度,主从模式,zookeeper给主节点提供服务注册,服务发现功能,通过Framework Marathon 提供容器调度能力.

    优势: 发布时间早,5w+节点控制,大规模节点的管理.

    缺点: 面向节点,而不是容器

    • Docker Swarm

    概念: 标准版的Docker API

    优势: 和Docker是集成的.

    缺点: 已经弃用了.没人用.

    • Google Kubernetes(一家独大)

    概念: 使用Label和Pod的概念来将容器分为逻辑单元.Pods是同步地写作(co-located)容器的集合. 这是kubernetes 和其他两个框架哎的主要区别.简化了管理.

    优势: 通过pods这一抽象的概念,解决了Container之间的依赖于通信问题,Pods,Services, Deployment 是独立部署的部分,可以通过 Selector 提供更多的灵活性,内置服务注册表和负载均衡.

    缺点: 相比于 Apache Mesos 管理节点规模小

学习K8s

集群架构和组件

相关组件
控制面板组件(Master)
  1. kube-apiserver

    接口服务,REST风格,k8s接口服务
    在这里插入图片描述

  2. kube-controller-manager

    控制器管理器: 管理各个类型的控制器,管理k8s的各个资源

  3. cloud-controller-manager

    云控制器管理器: 第三方云平台提供的控制器API对接管理平台

  4. kube-scheduler

    调度器: 负责将pod给予一定算法,将其调用到合适的节点(Node)上

  5. etcd

  6. k8s的数据库,键值对,分布式数据库,基于Raft算法,

    老版本: 基于内存

    新版本: 持久化存储

节点组件(Node)一般是多个Nodes
  1. kubelet

    负责容器的生命周期

    负责Volume(CVI)挂载,存储

    网络(CNI)管理

  2. kube-proxy

    网络代理,负责Service的服务发现,负载均衡(4层负载)

  3. container-runtime

    负责镜像管理已经Pod和容器的真正运行(CRI容器运行环境接口)

    docker,containerd,CRI-O,

附加组件
  1. kube-dns

    kube-dns 负责为整个集群提供 DNS 服务

  2. ingress Controller

    Ingress Controller 为服务提供外网入口

  3. Prometheus

    Prometheus 提供资源监控

  4. Dashboard

    Dashboard 提供 GUI

  5. Federtion

    Federation 提供跨可用区的集群

  6. Fluentd-elasticsearch

    Fluentd-elasticsearch 提供集群日志采集、存储与查询

分层架构
  1. 生态系统

    • Kubernetes 外部:日志、监控、配置管理、CI、CD、Workflow、FaaS、OTS 应用、ChatOps 等
    • Kubernetes 内部:CRI、CNI、CVI、镜像仓库、Cloud Provider、集群自身的配置和管理等
  2. 接口层

    kubectl 命令行工具、客户端 SDK 以及集群

  3. 管理层

    系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态 Provision 等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy 等)

  4. 应用层

    部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS 解析等)

  5. 核心层

    Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境

核心概念与专业术语
服务的分类
  1. 无状态

    举例: Nginx /Apache

    优点: 对客户端透明,无依赖关系,可以高效实施扩容,迁移

    缺点: 不能储存数据,需要额外的数据服务支撑

  2. 有状态

    举例: Mysql/Redis

    优点: 可以独立存储数据,实现数据管理

    缺点: 集权环境下需要实现主从,数据同步,备份,水平扩容复杂

资源和对象

在这里插入图片描述

元数据型
  1. Horizontal Pod Autoscaler(HPA)

    Pod 自动扩容:可以根据 CPU 使用率或自定义指标(metrics)自动对 Pod 进行扩/缩容。

    • 控制管理器每隔30s(可以通过–horizontal-pod-autoscaler-sync-period修改)查询metrics的资源使用情况
    • 支持三种metrics类型
      • 预定义metrics(比如Pod的CPU)以利用率的方式计算
      • 自定义的Pod metrics,以原始值(raw value)的方式计算
      • 自定义的object metrics
    • 支持两种metrics查询方式:Heapster和自定义的REST API
    • 支持多metrics
  2. PodTemplate

    Pod Template 是关于 Pod 的定义,但是被包含在其他的 Kubernetes 对象中(例如 Deployment、StatefulSet、DaemonSet 等控制器)。控制器通过 Pod Template 信息来创建 Pod。

  3. LimitRange

    可以对集群内 Request 和 Limits 的配置做一个全局的统一的限制,相当于批量设置了某一个范围内(某个命名空间)的 Pod 的资源使用限制。

集群级别
  1. Namespace

    Kubernetes 支持多个虚拟集群,它们底层依赖于同一个物理集群,这些虚拟集群被称为命名空间。

    作用是用于实现多团队/环境的资源隔离。

    命名空间 namespace 是 k8s 集群级别的资源,可以给不同的用户、租户、环境或项目创建对应的命名空间。

    默认 namespace:

    • kube-system 主要用于运行系统级资源,存放 k8s 自身的组件
    • kube-public 此命名空间是自动创建的,并且可供所有用户(包括未经过身份验证的用户)读取。此命名空间主要用于集群使用,关联的一些资源在集群中是可见的并且可以公开读取。此命名空间的公共方面知识一个约定,但不是非要这么要求。
    • default 未指定名称空间的资源就是 default,即你在创建pod 时如果没有指定 namespace,则会默认使用 default
  2. Node

    不像其他的资源(如 Pod 和 Namespace),Node 本质上不是Kubernetes 来创建的,Kubernetes 只是管理 Node 上的资源。虽然可以通过 Manifest 创建一个Node对象(如下 json 所示),但 Kubernetes 也只是去检查是否真的是有这么一个 Node,如果检查失败,也不会往上调度 Pod。

  3. ClusterRole

    ClusterRole 是一组权限的集合,但与 Role 不同的是,ClusterRole 可以在包括所有 Namespace 和集群级别的资源或非资源类型进行鉴权。

  4. ClusterRoleBinding

    ClusterRoleBinding:将 Subject 绑定到 ClusterRole,ClusterRoleBinding 将使规则在所有命名空间中生效。

命名空间级别

####### 工作负载型

对象规约和状态
微服务项目k8s环境演示

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三、W5100S/W5500+RP2040之MicroPython开发<DNS示例>

文章目录 1. 前言2. 相关网络信息2.1 简介2.2 DNS工作过程2.3 优点2.4 应用 3. WIZnet以太网芯片4. DNS解析示例讲解以及使用4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 烧录验证 5. 注意事项6. 相关链接 1. 前言 在这个智能硬件和物联网时代&#xff0c;MicroPyt…

【一】FPGA实现SPI协议之SPI协议介绍

【一】FPGA实现SPI协议之SPI协议介绍 一、spi协议解析 spi协议有4根线&#xff0c;主机输出从机输入MOSI、主机输入从机输出MISO、时钟信号SCLK、片选信号SS\CS 。 一般用于主机和从机之间通信。由主机发起读请求和写请求&#xff0c;主机的权限是主动的&#xff0c;从机是被…

C/C++编程中的算法实现技巧与案例分析

C/C编程语言因其高效、灵活和底层的特性&#xff0c;被广大开发者用于实现各种复杂算法。本文将通过10个具体的算法案例&#xff0c;详细探讨C/C在算法实现中的技巧和应用。 一、冒泡排序&#xff08;Bubble Sort&#xff09; 冒泡排序&#xff08;Bubble Sort&#xff09;是一…

【Hadoop精讲】HDFS详解

目录 理论知识点 角色功能 元数据持久化 安全模式 SecondaryNameNode(SNN) 副本放置策略 HDFS写流程 HDFS读流程 HA高可用 CPA原则 Paxos算法 HA解决方案 HDFS-Fedration解决方案&#xff08;联邦机制&#xff09; 理论知识点 角色功能 元数据持久化 另一台机器就…

腾讯云微服务11月产品月报 | TSE 云原生 API 网关支持 WAF 对象接入

2023年 11月动态 TSE 云原生 API 网关 1、支持使用私有 DNS 解析 服务来源支持私有 DNS 解析器&#xff0c;用户可以添加自己的 DNS 解析器地址进行私有域名解析&#xff0c;适用于服务配置了私有域名的用户。 2、支持 WAF 对象接入 云原生 API 网关对接 Web 安全防火墙&…

一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读

A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结&#xff1a; 论文标题&#xff1a;A VIDEO ANOMALY DETECTION FRA…

锐捷配置完全stub区域

一、实验拓扑 二、实验目的 在运行OSPF协议的网络中&#xff0c;配置STU区域可以减少路由器的路由条目&#xff0c;减小路由器的压力&#xff0c;有效提高路由器的性能。 三、实验配置 第一步&#xff1a;全局配置OSPF R1 ruijie>enable R1#conf terminal R1(config)#hos…

Postman使用总结--生成测试报告

1.执行生成的命令格式 newman run 用例集文件 .json -e 环境文件 .json -d 数据文件 .json/.csv -r htmlextra --reporter- htmlextra-export 测试报告名 .html -e 和 -d 是 非必须的。 如果没有使用 环境&#xff0c;不需要指定 -e 如果没有使用 数据…

数据结构与算法之美学习笔记:37 | 贪心算法:如何用贪心算法实现Huffman压缩编码?

目录 前言如何理解“贪心算法”&#xff1f;贪心算法实战分析解答开篇内容小结 前言 本节课程思维导图&#xff1a; 接下来几节&#xff0c;我会讲几种更加基本的算法。它们分别是贪心算法、分治算法、回溯算法、动态规划。更加确切地说&#xff0c;它们应该是算法思想&#x…

XZ_iOS 之 M1 M2 M3的M系列芯片的Mac苹果电脑安装cocoapods

安装的前提&#xff0c;应用程序->终端->右键-显示简介->勾选 使用Rosetta打开&#xff0c;如下图&#xff0c;然后重启终端 安装的顺序如下&#xff1a;Homebrew->rvm->ruby->cocoapods 1、安装Homebrew /bin/bash -c "$(curl -fsSL https://raw.git…

eclipse的安装与配置

1、下载 eclipse 下载地址&#xff1a;https://www.eclipse.org/downloads/ 点击 【Download Package】 找到JavaEE IDE&#xff0c;点击【Windows x86_64】 点击【Select Another Mirror】&#xff0c;然后点击国内任意一个大学镜像下载即可&#xff01; 下载成功后&…

0086-Java_四种进制介绍

文章目录 1 进制(程序员的基本功)1.1 进制介绍1.2 进制的转换(基本功)1.2.1 进制转换的介绍 1.3 二进制在运算中的说明1.4 原码、反码、补码(重点 难点) 1 进制(程序员的基本功) 1.1 进制介绍 对于整数&#xff0c;有四种表示方式&#xff1a; 二进制&#xff1a;0,1 &#x…

新手上路:自动驾驶行业快速上手指南

文章目录 1.自动驾驶技术的发展1.1 工业革命驱动自动驾驶技术发展1.2 想象中的未来&#xff1a;科幻作品中的自动驾驶汽车1.3 自动驾驶技术萌芽与尝试1.4 百花争鸣&#xff1a;自动驾驶科技巨头与创业公司并进 2.个人开发者&#xff0c;如何玩转自动驾驶&#xff1f;2.1 灵活易…

OO DiskRecovery 14 - 专业硬盘SSD数据恢复工具软件

在数据丢失时&#xff0c;让O&O DiskRecovery 14为您挽回宝贵的信息。 概述 O&O DiskRecovery 14是一款专业级别的硬盘SSD数据恢复工具软件&#xff0c;专为在数据丢失或意外删除时进行高效恢复而设计。无论是硬盘、U盘、SD卡还是数字相机&#xff0c;O&O DiskR…

10 v-html指令

概述 v-html主要是用来渲染富文本内容&#xff0c;比如评论信息&#xff0c;新闻信息&#xff0c;文章信息等。 v-html是一个特别不安全的指令&#xff0c;因为它会将文本以HTML的显示进行渲染&#xff0c;一旦文本里面包含一些恶意的js代码&#xff0c;可能会导致整个网页发…

org.slf4j日志组件实现日志功能

slf4j 全称是Simple Logging Facade for Java。facade是一种设计模式。 slf4j 是一个抽象程度更高的日志组件&#xff0c;本身并不提供实际的日志功能。实际的日志功能是通过log4j等日志组件实现&#xff0c;而使用者只需要关心 slf4j 给出的API。 slf4j 仅仅是一个为Java程序提…

SQL面试题挑战01:打折日期交叉问题

目录 问题&#xff1a;SQL解答&#xff1a;第一种方式&#xff1a;第二种方式&#xff1a; 问题&#xff1a; 如下为某平台的商品促销数据&#xff0c;字段含义分别为品牌名称、打折开始日期、打折结束日期&#xff0c;现在要计算每个品牌的打折销售天数&#xff08;注意其中的…

maven 项目导入异常问题

问题如下 一、 tomcat正再运行的包是哪一个 不同构建、打包情况下分别运行 out\artifacts下 当直接去Project Structure下去构建artifacts 后&#xff0c;运行tomcat 则会在out下target下 reimport项目后,则会在artifacts自动生成部署包。删除tomcat之前deployment 下的包(同…

2023_Spark_实验三十:测试Flume到Kafka

实验目的&#xff1a;测试Flume采集数据发送到Kafka 实验方法&#xff1a;通过centos7集群测试&#xff0c;将flume采集的数据放到kafka中 实验步骤&#xff1a; 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…

Python轴承故障诊断 (八)基于EMD-CNN-GRU并行模型的故障分类

目录 前言 1 经验模态分解EMD的Python示例 2 轴承故障数据的预处理 2.1 导入数据 2.2 制作数据集和对应标签 2.3 故障数据的EMD分解可视化 2.4 故障数据的EMD分解预处理 3 基于EMD-CNN-GRU并行模型的轴承故障诊断分类 3.1 训练数据、测试数据分组&#xff0c;数据分ba…